無題
投稿者 : Ryu(user1.ttv.ne.jp)
- 2003/01/21(Tue) 14:44
No.2425
|
|
|
|
|
いま、スクロールシューティングゲームを作っているのですが、 extends SpriteChar; sx=x;sy=y; while(1) { gotoScreen(sx,sy); $map.scrollTo(0,t); t-=1; if (getkey(37) && x>$viewX) x-=3; // 左 if (getkey(39) && x<$viewX+$screenWidth) x+=3; // 右 if (getkey(38) && y>$viewY) y-=3; // 上移動 if (getkey(40) && y<$viewY+$screenHeight) y+=3; update(); } と、書くと、自機の移動ができなくなってしまうのですが、 どうしたらよいですか?
|
Re: 無題
投稿者 : おもちメタル(p3009-ipbf01hodogaya.kanagawa.ocn.ne.jp)
- 2003/01/21(Tue) 17:27
No.2426
|
|
|
|
if (getkey(37) && x>$viewX) じゃなくて、 if (getkey(37)>0 && x>$viewX) じゃないですか? (ほかの3つも。)
|
Re: 無題
投稿者 : ナオヤン(EAOcf-101p148.ppp15.odn.ne.jp)
- 2003/01/21(Tue) 17:50
No.2427
|
|
|
|
if (getkey(37) && x>$viewX) と if (getkey(37)>0 && x>$viewX) は同じ意味です。
if (getkey(37)) //0以上のとき(もしくは以下) if (!getkey(37)) //0のとき
|
Re: 無題
投稿者 : おもちメタル(p3009-ipbf01hodogaya.kanagawa.ocn.ne.jp)
- 2003/01/21(Tue) 18:30
No.2428
|
|
|
|
Re: 無題
投稿者 : T(catv-149-091.tees.ne.jp)
- 2003/01/21(Tue) 19:30
No.2429
|
|
|
|
最初にsx=x;sx=y;と設定していて、 while(1)の中にgotoScreen(sx,sy);とあるので いくらxとyの値を変えてもsxとsyの値は変わらないため 動かなかったのでしょう。 自分はあまりgotoScreen()を使わないので、 gotoScreen()を使わないで書き直すとこうなります: extends SpriteChar;
while(1){ $map.scrollTo(0,t); t-=1; if (getkey(37) && x>$viewX) x-=3; // 左 if (getkey(39) && x<$viewX+$screenWidth) x+=3; // 右 if (getkey(38) && y>$viewY) y-=3; // 上移動 if (getkey(40) && y<$viewY+$screenHeight) y+=3; update(); }
試してないんで動くかどうかの保証はできませんが(汗) gotoScreen()を使って動作させたいならちょっと考えさせてください(笑)
|
・・・?
投稿者 : Ryu(user1.ttv.ne.jp)
- 2003/01/21(Tue) 20:53
No.2431
|
|
|
|
みなさんありがとうございます! Tさんのようにやりましたが、背景と一緒に自機が動いてしまうのですが・・・(焦 背景を動かないようにするにはどうすればいいですか? 一応ヘルプ等参考にしていますが、どうも上手くゆきません。 よろしければ、もう一度教えていただけないでしょうか? すいません。
|
Re: 無題
投稿者 : JAM(pl006.nas322.okayama.nttpc.ne.jp)
- 2003/01/21(Tue) 23:29
No.2432
|
|
|
|
extends SpriteChar; sx=x;sy=y; while(1) { gotoScreen(sx,sy); $map.scrollTo(0,t); t-=1; if (getkey(37) && x>$viewX) sx-=3; // 左 if (getkey(39) && x<$viewX+$screenWidth) sx+=3; // 右 if (getkey(38) && y>$viewY) sy-=3; // 上移動 if (getkey(40) && y<$viewY+$screenHeight) sy+=3; update(); }
こっちか
extends SpriteChar; while(1){ $map.scrollTo(0,t); t-=1; y-=1; if (getkey(37) && x>$viewX) x-=3; // 左 if (getkey(39) && x<$viewX+$screenWidth) x+=3; // 右 if (getkey(38) && y>$viewY) y-=3; // 上移動 if (getkey(40) && y<$viewY+$screenHeight) y+=3; update(); }
こっちか. 上の方だとスクロールの速さを変えるときちょっとだけ手間が省けますね.
|
Re: 無題
投稿者 : Ryu(user1.ttv.ne.jp)
- 2003/01/22(Wed) 09:06
No.2433
|
|
|
|
ありがとうございます!できました! これからもよろしくお願いします!
|
|