自機のセレクト
投稿者 : HIKKY(red07.cable-net.ne.jp)
- 2003/07/19(Sat) 10:41
No.3951
|
|
|
|
|
はじめまして。 今シューティングを作っているのですが、自機のセレクトがうまくいきません。カーソルキーの←→でオブジェクトを切り替えたいのですが (aというオブジェクトをカーソルキーでbに、もう一度同じ方向にカーソルキーでaというように表示したい)、 カーソルキーの→でb、もう一度同じ方向にカーソルキーでa・・になりません。(←でaには戻せますが)よくわからなくてすみません。とりあえずa→b→a→b…やa←b←a←bのようにセレクトできないでしょうか。 (setVisibleメソッドをつかって表示・非表示をしました)
|
Re: 自機のセレクト
投稿者 : 通りがかりの五流(n131089.ap.plala.or.jp)
- 2003/07/19(Sat) 20:20
No.3956
|
|
|
|
今覚えていないのですが、過去のスレッドが色々あります。また、参考になりそうなプログラムも数々ありますので、そういったものも利用してみては・どうでしょうか
|
Re: 自機のセレクト
投稿者 : N.(158.78.244.43.ap.livedoor.jp)
- 2003/07/19(Sat) 21:41
No.3958
|
|
|
|
例えば、
if (getkey(32)==1 && select=="a"){ select="b"; }else{ if (getkey(32)==1 && select=="b"){ select="a"; } }
で、スペースを押すたびにselectがaとbを繰り返すはずです。 このように、選択肢一つ一つに対して判断させる方法もあります。
|
Re: 自機のセレクト
投稿者 : HIKKY(red07.cable-net.ne.jp)
- 2003/07/20(Sun) 10:58
No.3960
|
|
|
|
通りがかりの五流さんへの返信 過去のスレッドにあるセレクトは自機のオブジェクトが画面に並んであって、それを動くカーソルかなんかで選択するやつが多いのですが(例えばA,Bのオブジェクトがあると、
A B △ △がカーソル。これで上のA、Bを選ぶ)
僕がやりたいのは、「画面にAだけが見えている→カーソルキーを押す→画面にBが表示される」としたいので。このような過去ログありましたら教えてください。見つからなかったので。
N.さんへの返信 select,a,bはすべてオブジェクトでしょうか、これをselectというオブジェクトにかいてa,bにはupdateメソッドをしとけばいいでしょうか?なかなかうまくいきません。(^^;
|
Re: 自機のセレクト
投稿者 : shen(p3164-ipad02sizuokaden.shizuoka.ocn.ne.jp)
- 2003/07/20(Sun) 15:35
No.3963
|
|
|
|
N.さんじゃないんですが・・・ if (getkey(32)==1 && select==1){ select=2; }else{ if (getkey(32)==1 && select==2){ select=1; } }
として、
if(select==1){ 処理 update(); } if(select==2){ 処理 update(); }
とすればできるのではないでしょうか。
|
Re: 自機のセレクト
投稿者 : N.(138.7.244.43.ap.livedoor.jp)
- 2003/07/20(Sun) 20:05
No.3966
|
|
|
|
selectは変数、a,bはその値です。(オブジェクト名は多くの場合先頭に$をつけて使います) shenさんのように、変数をスイッチとして使う方法です。 また、文字やカーソルなどはdrawTextやdrawSpriteで描いた方がオブジェクトの種類が膨大にならなくていいと思います。 ちなみにupdate();はwhileループの最後に書いておくだけでいいはずです。
|
Re: 自機のセレクト
投稿者 : HIKKY(red06-2.cable-net.ne.jp)
- 2003/07/21(Mon) 13:13
No.3970
|
|
|
|
shenさんの言うとおりにして、処理のところにdrawSpriteでオブジェクトを表示するようにしましたが、drawSpriteは定義されていませんとエラーが出てきます。ヘルプを見ても乗ってないので、どこがおかしいか見てもらえないでしょうか。
extends SpriteChar; while(1) { if (getkey(32)==1 && select==1){ select=2; }else{ if (getkey(32)==1 && select==2){ select=1; } }
if(select==1){ drawSprite(250,120,21); // 21は青い球の絵 update(); } if(select==2){ drawSprite(250,120,4);// 4は黄緑色の箱の絵 }
update(); }
|
Re: 自機のセレクト
投稿者 : shen(p3210-ipad28sizuokaden.shizuoka.ocn.ne.jp)
- 2003/07/21(Mon) 13:21
No.3971
|
|
|
|
select=1; while(1) { if (getkey(32)==1 && select==1){ select=2; }else{ if (getkey(32)==1 && select==2){ select=1; } }
if(select==1)drawSprite(250,120,21); // 21は青い球の絵
if(select==2)drawSprite(250,120,4);// 4は黄緑色の箱の絵
update(); }
これでできます。
|
Re: できました!!
投稿者 : HIKKY(red07.cable-net.ne.jp)
- 2003/07/22(Tue) 09:56
No.3974
|
|
|
|
ありがとうございました。これで左右のカーソルキーで自機を選択することができました。
extends SpriteChar; select=1; while(1) { if (getkey(39)==1 && select==1){ select=2; }else{ if (getkey(39)==1 && select==2){ select=1; } }
if (getkey(37)==1 && select==1){ select=2; }else{ if (getkey(37)==1 && select==2){ select=1; } }
if(select==1)drawSprite(250,120,21); // 21は青い球の絵
if(select==2)drawSprite(250,120,4);// 4は黄緑色の箱の絵
update(); }
|
|