はじめまして。
c言語をはじめたばかりの超初心者です。
質問なんですが、今HPを見ながらDXライブラリの勉強をしてて、ふたつ分からないことがありました。
ひとつは、ソースを短くするという項目に
(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE])
というのがありまして、関数ひとつひとつに、[!]がついている意味が分かりません。
自分が勉強不足な面もあるかと思いますが、もしかしたら基本的なことが
分かってないのかも知れません。
二つ目は、キャラを四方向に移動という項目に
[(ch.x%32+ch.y%32)/8+ch.muki*4];
があったのですが、自分の脳みそをフル稼働させてもさっぱりでしたw
基本は勉強したのですが、応用的なものは苦手なんです‥
よろしければ、分かりやすく教えてくださいm(_ _)m
初心者です
Re:初心者です
!は論理演算子の否定です。
以下のサイト等を見てみてください。
http://www.geocities.jp/ky_webid/c/012.html
http://dixq.net/g/#22
以上うまく説明できるか分かりませんが・・・
例えば+x方向(右)に歩かせるとします。
この時、muki=3です。
その時yの座標は32で割り切れるところにいます。
ゆえにch.y%32=0です。
ch.xですが、歩き始めるとインクリメントされていきます。
ch.xは0,1,2,3,....と1ずつ増加するということです。
この時画像を歩いているようにしたいのですが、
今回サンプルで用いている画像は右歩きに4枚の画像があります。
一区間32なのですから、一区間で一枚の画像の表示に使う区間は32/4=8です。
ゆえに8の倍数ごとに画像を切り替えればよいのです。
なので(ch.x%32+ch.y%32)/8としています。
今回の場合、ch.xを32で割った余りが
0~7のとき右歩き画像0番目
8~15のとき右歩き画像1番目
16~23のとき右歩き画像2番目
24~31のとき右歩き画像3番目
ch.muki*4はキャラチップ(char.png)を見たらわかるのですが、
配列に格納する時は
http://dixq.net/g/#17
のようになっています。
右向き画像は12~15です。
上でもう順番はできています。あと必要なのは?
12を足すことです。
ゆえにmuki*4は右歩きの時
3*4=12
となります。
以下のサイト等を見てみてください。
http://www.geocities.jp/ky_webid/c/012.html
http://dixq.net/g/#22
以上うまく説明できるか分かりませんが・・・
例えば+x方向(右)に歩かせるとします。
この時、muki=3です。
その時yの座標は32で割り切れるところにいます。
ゆえにch.y%32=0です。
ch.xですが、歩き始めるとインクリメントされていきます。
ch.xは0,1,2,3,....と1ずつ増加するということです。
この時画像を歩いているようにしたいのですが、
今回サンプルで用いている画像は右歩きに4枚の画像があります。
一区間32なのですから、一区間で一枚の画像の表示に使う区間は32/4=8です。
ゆえに8の倍数ごとに画像を切り替えればよいのです。
なので(ch.x%32+ch.y%32)/8としています。
今回の場合、ch.xを32で割った余りが
0~7のとき右歩き画像0番目
8~15のとき右歩き画像1番目
16~23のとき右歩き画像2番目
24~31のとき右歩き画像3番目
ch.muki*4はキャラチップ(char.png)を見たらわかるのですが、
配列に格納する時は
http://dixq.net/g/#17
のようになっています。
右向き画像は12~15です。
上でもう順番はできています。あと必要なのは?
12を足すことです。
ゆえにmuki*4は右歩きの時
3*4=12
となります。