無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
喜久雄

無題

#1

投稿記事 by 喜久雄 » 15年前

[1]http://dixq.net/rp/57.html
ここのサイトで上のページを見せてもらいましたが、
Vertex[0].pos.x = 320.0F - 50.0F ;
について
なぜ左辺は.が二つあるのですか? Fってなんですか?
この二つが分かりません。

[2]http://dixq.net/rp/59.html
Ob->Img = ImgHandle;//画像ハンドル
の->の演算子って何ですか?

[3]よくゲームセンターのコインなどの数を表すために表示される、デジタル数字は
ゲームでは画像処理であらわす以外ないんですか?

よろしくお願いします。

softya

Re:無題

#2

投稿記事 by softya » 15年前

>なぜ左辺は.が二つあるのですか? Fってなんですか?

Vertex[0].pos.xは、構造体に含まれる構造体の参照だからです。
Fはfloat型定数を表す接尾語です。
これについては、Cの入門書をお読み下さい。

>の->の演算子って何ですか?

Obが構造体のポインタだからです。
->は構造体のメンバを参照する参照演算子です。
これについても、Cのポインタについて入門書などで学んで下さい。

>デジタル数字はゲームでは画像処理であらわす以外ないんですか?
パソコンなどで機器が文字フォントを持っていて、その文字フォントで構わないなら文字フォントで表示することは可能です。
画像

喜久雄

Re:無題

#3

投稿記事 by 喜久雄 » 15年前

すいません。
もう少し詳しくいいですか?

320.0FってなんでFをつけてるのですか? 320.0でも同じなのか分からないんですが・・・
Fをつけることでfloat型に変換されるんですかね? float(a);のように


>パソコンなどで機器が文字フォントを持っていて、その文字フォントで構わないなら文字フォントで表示することは可能です。

DXライブラリ+windowsのフォントでは可能ですか?

softya

Re:無題

#4

投稿記事 by softya » 15年前

>320.0FってなんでFをつけてるのですか? 320.0でも同じなのか分からないんですが・・・

320.0Fはfloat型ですが、320.0はdouble型です。
使う場所によってはエラーとなりますので、ちゃんと日頃から使わい分けておいた方が良いです。

>Fをつけることでfloat型に変換されるんですかね? float(a);のように
変換と言うより定数ですので、コンパイラが型を認識します。

>float(a);
(float)aの事ですか?
これはキャストと言って、型を変換するときに使います。
これは実行時に型変換が行われる動的なものです。

>DXライブラリ+windowsのフォントでは可能ですか?

それなら、DrawString()関数を使われてはどうでしょうか?

喜久雄

Re:無題

#5

投稿記事 by 喜久雄 » 15年前

ついでなんで
この二つも教えてください。
よくfor( ;; )
if(bstrNamespace)
など、普通学校の授業で習わない演算子を難しいプログラムでは目にします。
この
for( ;; )やif(bstrNamespace)
はどういう意味を表してるんですか?
よろしくお願いします。

box

Re:無題

#6

投稿記事 by box » 15年前

> >の->の演算子って何ですか?
>
> Obがポインタだからです。
> ->はポインタ参照演算子です。

なんだか誤解を招きそうです。
ちゃんと、Obは「構造体を指す」ポインタである、と書いてあげないと…。

kazuoni

Re:無題

#7

投稿記事 by kazuoni » 15年前

> よくゲームセンターのコインなどの数を表すために表示される、デジタル数字は
> ゲームでは画像処理であらわす以外ないんですか?

できますよ。
一応ちょっと前に自作してみました。
本当は海外ドラマ24のオープニングを見て
「これが作りたい!」
って思ったのがきっかけだったんですが、途中で中折れしましたw

http://www1.axfc.net/uploader/Sc/so/74032
Key : kazuoni

とりあえず、
関数DigitalNum::DrawDigitalValueを実行すれば数値がデジタル表記できます。

int DrawDigitalValue(int x, int y, int value, int Color, int Size, int Thinck, int Cinterval);

x 描写するx座標左上
y 描写するy座標左上
value デジタル表記したい数値
Color 数値の色
Size だいたいの数値の大きさ
Thinck 太さ
Cinterval 文字間隔

戻り値 1

こんな感じです。いろいろとパラメータいじると、デジタル数字ではなく、
ホラー系の文字が出るときがありますが・・・それはご愛敬ってやつで^^;

添付したexeでは、エンターキーを押すと文字の拡大、Zキーで縮小出来ます


#相変わらず、需要のないもの作ってるなぁ・・・。

softya

Re:無題

#8

投稿記事 by softya » 15年前

>ちゃんと、Obは「構造体を指す」ポインタである、と書いてあげないと…。

あっ、そうですね。訂正します。
構造体ポインタのメンバを参照する参照演算子です。元も直しておきました。

>よくfor( ;; )if(bstrNamespace)など、普通学校の授業で習わない演算子を難しいプログラムでは目にします。

C言語の規約が良く分かってくると書ける書き方ですね。

>for( ;; )
条件式が省略されているので、無限ループです。
ループ中から、何らかの方法で抜け出さない限り無限ループとなります。
抜け出すには、break,return,gotoいずれかの方法が必要です。

>if(bstrNamespace)
if文で条件演算をせずに、変数に条件演算結果が入っている場合ですね。
if文は値が0なら偽、値が0以外なら真として動作します。

喜久雄

Re:無題

#9

投稿記事 by 喜久雄 » 15年前

みなさん詳しい解説やプログラムを感謝します。
つまり
for( ;; )はwhileルールの感覚
if(bstrNamespace)はif(flag==True)を省略したような感じでしょうか?
質問はこれで終わりとします。

閉鎖

“C言語何でも質問掲示板” へ戻る