スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

うっ 

むぃー
生活リズム直さんといけんな
朝起きたら授業終わってる時間だったよ

最近はHSP勉強してるんだけども
序盤って事でやればやるほど知識になるから
面白くてつい遅くにまで。。

第一目標は簡単なテトリスやブロック崩しを作る事
そのあとまだ頭のキャパに余裕あれば何か作りたいっすね
まぁその頃には飽きてそうだけども ('A`)


スポンサーサイト

コメント

例のテトリスのソースを烏賊にうpしといた。

ある程度コツが分かると格ゲのコンボみたいにスパスパンと決まるから楽しくなってくるよ!頑張れ!

http://emanoname.web.fc2.com/
ファイルに直リンできなかった('A`)

thanks!
参考にさせていただきやす
んでちょいと聞きたいんだけも
例えばenter押すと画面が変わるってのはどうやるの?

*tesuto
getkey a, 13
if a!1 :goto *tesuto
cls 4

だとあんまりスッキリしないんすよ
個人的には

if ennterを押す : cls4

みたいなのにしたいんだけど
これって可能?

要するにデータの流れ出なくて行動に対してプログラム組みたいのね。

マクロ使えばいけるけど、あくまで内部での動きはこうなっているんだということは頭にインサートしとかないと駄目だよ。

あと getkey よりも stick のほうがトリガタイプ指定できて便利。
トリガタイプは押したときだけを検出するものっす。離すまで無効ってヤツ。

#define pushkey(%1) if (key = %1)

#const ENTER  32
#const SPACE  64

  stick key
  pushkey ENTER: mes "pushed enter key"
  pushkey SPACE: mes "pushed space key"

stickをヘルプで調べてみたんだが分からんとこが多々

stick p1, p2

このp2って何だろ
例えばenterを押したか調べたいなら

stick p1, 32

とすればいいって事なんだろうか
何か違う気がしてならない

ヘルプ読めw(調べたい命令ドラッグ反転させて F1)

getkey はキーコードを指定して、そのキーの状態を返す。

stick はキーの状態をある程度の範囲にしぼって(enter とか ctrl)調べて、そのキーに対応する値を返す。二進数にしたらわかるんだけど

0000 0000 0000 0001
0000 0000 0000 0010
0000 0000 0000 0100

のような値が帰ってくる。同時押しの場合は合計値が。のでひとつのキーの確認したい場合は論理積をとってやるといい。

stick の第二パラメータはトリガタイプ指定、指定したい stick 用のキーコードを論理和してやるといい。

むむ
まだ良く分かってないんだが
getkyeとstickは同じようなものでキーコードの種類が多いか少ないかって事かな?
いや、ほんと理解力なくてごめんよ
これでもヘルプ片手に奮闘してるんすよ。。

ちょっと誇大解釈するなら getkey はキーの状態を調べる、stick はキーボードの状態を調べる、かな。

getkey は「~の状態を調べて、結果を変数に返す」で

getkey key, ~

  内部では

  1. ~のキーが押されているか調べる
  2. 押されていたら 1、押されていなかったら 0 を返す。


ってことをしてる。


stick は「押されているキーの番号を返す」で

stick key, p2

  内部では

  1. カーソルキー左 が押されているか?
    1.5. 「それが押した瞬間なら」
     1.5.5. key = key | 0b00000000001
  2. カーソルキー上 が押されているか?
    1.5. 「それが押した瞬間なら」
     1.5.5. key = key | 0b00000000010
  3. カーソルキー右 が押されているか?
    1.5. 「それが押した瞬間なら」
     1.5.5. key = key | 0b00000000100
  ...

と、ヘルプに書いてある 0b00000000001 から 0b10000000000 までを調べて論理和していく。0b0000 は二進数ね、普通はヘルプに書いてあるとおりの十進でいいよ。十六進なら 0xABCD って C のときにやったでしょ。その時に 0b00000000001 っていうキーが第二パラメータで渡されていた場合、

stick key, 0b00000000001

  内部では

  1. カーソルキー左 が押されているか?
    1.5. 「それが押した瞬間なら」あるいは「p2 の指定がこのキーなら」
     1.5.5 key = key | 0b00000000001
...

0b00001100101 というコードが返って来た場合、

スペースキー(十進 = 16, 二進 = 0b00000010000)を調べる場合、

  if (key = 0b00000010000)

を調べれば完全一致、つまりはスペースキーのみ押されている状態、を調べられる。

  if (key & 0b00000010000)

を調べれば、帰ってきたキー情報のうち最下位から 5 番目のビットがオンになっているか?ということを調べられる。If は比較式の値が真か偽か、偽は 0、真はそれ以外という動作になっている。

つまりは if (15) も真だし if (-5) も真。二進にしたら分かるけど、二つの数字に差はないんだよ。0 か、それ以外かの判断を if はしてる。

論理和・論理積が分からないのなら勉強しなきゃいかん、これを知らないのは計算の掛け算と割り算を知らないようなもんだ。

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://rakira.blog11.fc2.com/tb.php/234-4f32b3ca

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。