VB厨が作ったゲーム
■ このスレッドは過去ログ倉庫に格納されています
0001あきまさ(VB厨であり、リ厨)
01/11/18 12:03ID:aaVnfHyi友達(だと思ってる奴)にやらしてもつまらんとか言うし。
どうすれば面白くなるかネタくれませんか?
ゲーム名は"realUFO"。
できるだけネタ盗り込もうと思っているのでよろしく。
まぁ、自分で言うのもなんだけど糞スレの予感…。
0415名前は開発中のものです。
02/01/07 13:00ID:???0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, ...
と数えていく。
で、2進数のある桁に注目すると、'0'と'1'しかないわけだから、
デジタル機器なんかでは、これを'OFF', 'ON'に対応付けて考えたりする。
2進数表記の何桁目っていうのを、何ビット目と呼んだりもする。
ジョイスティックのボタンも↑のように、各桁がボタンのON,OFFの状態に割り当てられてる。
dwButtonsは、32ビット整数だから、1桁目から32桁目までがそれぞれボタン1〜ボタン32に割り当てられてるわけだ(多分)。
たとえば、ボタン4が押されたときは、00001000と4桁目が1になる。
ボタン5の場合は、00010000と5桁目が、両方押された場合は、00011000と2つの桁が1になる。
ちなみに、0001000を16進数にすると'&H10'(10進で'16')になる。
00001000は、'&H08'(10進で'8')だ。
次に論理演算(ビット演算とも言う)、and, orについて。
これらは、2進数表記での各桁の数字同士を計算する演算子で、
andは、両方'1'なら計算結果は'1'、それ以外なら'0'、
orは、どちらか片方が'1'なら計算結果は'1'、両方'0'なら'0'という様に計算される。
0110 and 0010 => 0010
0101 or 1010 => 1111
ここまではOK?
0416名前は開発中のものです。
02/01/07 13:01ID:???良いわけだから、たとえばボタン5なら、
dwButtons and 00010000
の計算結果を見ると、dwButtonsの5桁目のみを取り出せて(以下適当な例
011001001 and 00010000 => 00000000
011101001 and 00010000 => 00010000
)、その計算結果が0でなければ、ボタン5が押されていることが分かるという仕組み。
VBだと2進数は直接使えないみたいだから、
If (j.dwButtons and &H10) <> 0 then ....
とするわけ。
複数のボタンが押されていることを確かめたければ、上のIF文の条件式をandでつなげていくだけ。
If (j.dwButtons and &H10) <> 0 and (j.dwButtons and &H08) <> 0 then ...
>>406ができなかったのは、'... <> 0'が無いと、
j.dwButtons = 00011000だった時に、
(j.dwButtons and &H10) and (j.dwButtons and &H08)
=> (00011000 and 00010000) and (00011000 and 00001000)
=> (00010000) and (00001000)
=> 00000000
となってしまい、Ifの条件式は偽になってしまうから。
こんな感じで分かるかな?
■ このスレッドは過去ログ倉庫に格納されています