二十歩目 おーしーたーなー
いったい何をやるのだと 思わせる題ですが
ココでは ボタン(スペースキーとかEnterキーとか)が押されたことを
わかるような命令を作ります つまりシュウティングゲームで
スペースを押すと弾が発射されるようにするという動作をさせる
命令を紹介します
〜キー入力判断.〜
キーの入力には(僕が知っている限りで)二つありますが
そのうちの一つを紹介しましょう
stick 君です ではまずプログラムを見てください
今回からプログラムの説明は プログラムの右に書くことにします
screen 0,200,200 ;ウインドウ0を 200,200の大きさに mozi="スペースキーを押してくれ" ;moziという変数に スペースキーを押してくれ を入力 repeat ;繰り返しの始め redraw 2 ;ココから下は仮想画面に描く color 0,0,0:boxf ;黒で画面を塗りつぶす color 255,255,255 ;描画色を白に pos 0,0 ;X座標0 Y座標0の位置に print mozi ;文字という変数の中に入っているものを表示 stick key ;keyに押されたキー番号を入力 if key=16:mozi="おーしーたーなー" ;keyが16だったらmoziにおーしーたーなーを入力 redraw 1 ;今まで仮想画面に描かれていたものを一気にウインドウ0に描画 wait 1 ;待つ loop ;repeat へ戻る |
なんとなく今回は プログラムをココ(インターネット)に置くことにしました
これは ちゃんと切り取ってHSPに貼りつければ実行できます
この画像を右クリックして 「名前をつけて保存」をすれば プログラムを
保存できます(^^)
さてと 説明にはいるか といっても まだやってないやつね
〜stickの使い方〜
stick は押されたキーのキー番号が入ると説明したが
パソコンがキー番号を判別するまで まず人間がキーを押します(猫でもいい) でキーボードの中の機械が押されたキーが どのキーなのかを判別して そして その押されたキーの番号(数字)がパソコン に送られる こうして 押されたキーのキー番号がわかるのである (下手な絵ですいません) |
ちなみに キーボードのキーをすべて判別するにはもう一方の
HSPの命令しかできません あくまでstickはよく使うキーしか
判別することはできないのすで
それから下にあるのがstickのキーとキー番号です
確かこれ以外にも あったような無かったような
カーソルキー(←) | 1 |
カーソルキー() | 2 |
カーソルキー() | 4 |
カーソルキー() | 8 |
スペースキー | 16 |
Enterキー | 32 |
Ctrlキー | 64 |
ESCキー | 128 |
マウスの左ボタン | 256 |
マウスの右ボタン | 512 |
TABキー | 1024 |
〜ちょっとした stick のかかえた問題〜
あと一つ stick はずーと押してるボタンは反応しないのです
だから例えばスペースをずーっと押しても押したその瞬間だけ
指定した変数に スペースの番号(16)が入るが
それ以降(あとという意味)は反応しないのです(つまり0のまま)
でも それに対応させる方法があります
その stick key,16 (別に変数名はkeyじゃなくても良いんだよ
僕が分かりやすいからそうしただけ べつにbotanでもいいし何でもいい)
とするとスペースをずーっと押してても
ずーっと16のままなのですそれは 変数のあとにある 16という数字のおかげ
ここに例えばEnterキーをずーっと押したままでもちゃんと
数字が入るようにしたいのなら 変数の名前の後ろに
(もちろんその変数と数字の間は , ではさむ)
そのキーの番号(数字)を入れとくとOKなのだ
もし スペースと Enter を どっちともずーっと押したまんまでも
変数に数字が入るようにしたいのなら そのスペースの番号(16)と
Enterの番号(32)を足した数字(48)を
変数の後ろの数字のとこに置いとけば ボタンを
どちらかを押し続けても(2つをいっぺんに押すという意味ではない)
ちゃんとその数字が入る
まあずーっと押し続けの判定が必要なのはシュウティングゲームの
弾の発射なんかだな
まみむめもの ”ま”で まとめ(意味不明) stick・・・押されたキーのキー番号を指定した 変数に入力 stick key |