古典的ながら選択肢
投稿者 : ごま太郎(t166189.ap.plala.or.jp)
- 2004/07/08(Thu) 13:39
No.6540
|
|
|
|
|
6540.lzh
続けざまの質問申し訳ありませんm(_ _)m //*****最初に表示されるメニューの文字 setFont("MS ゴシック",1); drawText($viewX+25,$viewY+20,"アイテム",$clWhite,9,-200); drawText($viewX+25,$viewY+35,"セーブ",$clWhite,9,-200); drawText($viewX+25,$viewY+50,"終了",$clWhite,9,-200); drawText($viewX+10,$viewY+†y,"†",$clWhite,9,-200); setFont("MS ゴシック",0); //メニュー中の基本フォント設定
//*****メニューでのカーソル移動 if (menu==0) { //他のメニュー操作中に動かないようにする //メインメニューの↑↓カーソル移動 if (getkey(40)==1) { if (†k==1) {†y+=15;†k=2;} //↓ else if (†k==2) {†y+=15;†k=3;} else if (†k==3) {†y=20;†k=1;} } if (getkey(38)==1) { if (†k==1) {†y=50;†k=3;} //↑ else if (†k==2) {†y-=15;†k=1;} else if (†k==3) {†y-=15;†k=2;} } }
//*****メニューでの決定(xキー) if (†k==1 && getkey(88)==1) menu=1; //アイテムメニュー if (†k==2 && getkey(88)==1) menu=2; //セーブメニュー if (†k==3 && getkey(88)==1) menu=3; //終了メニュー
//*****終了メニューの文字 if (menu==3) { //終了メニュー drawText($viewX+25,$viewY+90,"終了してもよろしいですか?",$clWhite,9,-200); drawText($viewX+25,$viewY+105,"はい",$clWhite,9,-200); drawText($viewX+25,$viewY+120,"いいえ",$clWhite,9,-200); drawText($viewX+10,$viewY+†y4,"†",$clWhite,9,-200); //*****終了メニューでのカーソル移動 if (getkey(40)==1) { if (†k4==1) {†y4+=15;†k4=2;} //↓ else if (†k4==2) {†y4=105;†k4=1;} } if (getkey(38)==1) { if (†k4==1) {†y4=120;†k4=2;} //↑ else if (†k4==2) {†y4-=15;†k4=1;} } //*****終了メニューでの決定(xキー) if (getkey(88)==1) { if (†k4==1) {menu=0;†k4=1;†y4=105;$projectManager.loadPage($page_title);} //はい if (†k4==2) {menu=0;†k4=1;†y4=105;} //いいえ } } //*****メニューを消す if (getkey(90)==1) {timestop.releaseAll();timestop=null;menu=0;setFont("MS 明朝");†k=1;†k2=1;†k3=1;†k4=1;†y=20;†y2=0;†y3=0;†y4=105;} } このようなプログラムを書いてメニュー表示を行っているのですが、『最初に表示されるメニュー』の決定キーと『終了メニュー』の決定キーが同じxであるために終了メニューを選択し決定すると同時にif (†k4==1) {menu=0;†k4=1;†y4=105;$projectManager.loadPage($page_title);}が実行されてしまいます。
update();を入れるなどしてワンクッションおけばこの不都合が起きないのですが、それだと再描写で一度一瞬ウィンドーがまたたいて見栄えが悪いです。 過去ログやらサンプルやらにありそうなので検索しまくってみたのですが、微妙にずれていて結局分からずじまいでした。 きれいに移行させる方法をよろしくお願いしますm(_ _)m
|
Re: 古典的ながら選択肢
投稿者 : bluesnow(i137107.ap.plala.or.jp)
- 2004/07/08(Thu) 22:04
No.6551
|
|
|
|
//*****メニューでの決定(xキー) のあとに各メニューの処理をするのがよくないとおもいます。
終了メニューをえらんだときのgetkey(88)がのこったまま はい・いいえの選択を調べているのでgetkey(88)は>0のままです。
というわけなので //*****メニューでの決定(xキー)を後ろにもっていけばいいとおもいます。
ただし終了したときにすぐNewを選んでしまう場合があるのでそちらも注意。
|
Re: 古典的ながら選択肢
投稿者 : ごま太郎(s109104.ap.plala.or.jp)
- 2004/07/09(Fri) 23:33
No.6562
|
|
|
|
なるほど、参考になりました。 …ということは、メニューを作れば作るほど込み合ってきてひどい目に^^;;;; とりあえず、プログラムの書き換えとupdate()どちらが楽&見栄えがいいかいろいろやってみます。 ありがとうございましたm(_ _)m
|
|