またすみません
投稿者 : 大(p28177-adsao03douji-acca.osaka.ocn.ne.jp)
- 2004/07/21(Wed) 14:42
No.6662
|
|
|
|
|
UFOを下上にうごかすんだったら、どうすればいいのですか? 画面の下にきたら、上にいき、画面の上にきたら、下に行くみたいなんがやりたいんですけど、いまいちわかりません。 どうか教えてください。
|
Re: またすみません
投稿者 : 海ンちゅー(tsechttp04.sec.ppp.nifty.com)
- 2004/07/21(Wed) 17:49
No.6664
|
|
|
|
シューティングのサンプルからXをYにしました。
extends SpriteChar; function appearEnemy() { if (rnd( 10 )==0) appear(new Enemy(x,y,$pat_Sample+2)); } while(1) { while(y<$screenWidth) { y=y+2; appearEnemy(); update(); } while(y>0) { y=y-2; appearEnemy(); update(); } }
つまり、UFOの動くところのXをYにするといいと思います。
|
Re: またすみません
投稿者 : デックン(YahooBB220018124018.bbtec.net)
- 2004/07/21(Wed) 20:44
No.6666
|
|
|
|
海ンちゅーさんのバグ修正版です。
extends SpriteChar; function appearEnemy() { if (rnd( 10 )==0) appear(new $screenHeight(x,y,$pat_Sample+2)); } while(1) { while(y<$screenWidth) { y=y+2; appearEnemy(); update(); } while(y>0) { y=y-2; appearEnemy(); update(); } }
|
Re: またすみません
投稿者 : デックン(YahooBB220018124018.bbtec.net)
- 2004/07/21(Wed) 20:46
No.6667
|
|
|
|
すみません。。。 ミスしましたw コチラでいけると思います。
extends SpriteChar; function appearEnemy() { if (rnd( 10 )==0) appear(new Enemy(x,y,$pat_Sample+2)); } while(1) { while(y<$screenHeight) { y=y+2; appearEnemy(); update(); } while(y>0) { y=y-2; appearEnemy(); update(); } }
|
Re: またすみません
投稿者 : 大(p28177-adsao03douji-acca.osaka.ocn.ne.jp)
- 2004/07/21(Wed) 23:59
No.6668
|
|
|
|
どうもありがとうございます。 でも動作が遅くなる・・・
|
Re: またすみません
投稿者 : kenji(YahooBB220010104149.bbtec.net)
- 2004/07/23(Fri) 00:26
No.6672
|
|
|
|
動作が遅いのは1つのループ内で2つupdate()を呼び出しているからです。
extends SpriteChar; function appearEnemy() { if (rnd( 10 )==0) appear(new Enemy(x,y,$pat_Sample+2)); } while(1) { while(y<$screenHeight) { y=y+2; appearEnemy(); } while(y>0) { y=y-2; appearEnemy(); } update(); }
こうすれば、速くなります。
|
update()
投稿者 : nuntora(210-20-67-194.home.ne.jp)
- 2004/07/23(Fri) 01:55
No.6673
|
|
|
|
updateは1フレームについて1つ必要ですので、 while(1) { while(y<$screenHeight) { y=y+2; appearEnemy(); update(); } while(y>0) { y=y-2; appearEnemy(); update(); } } で正しく動作します。よって、原因はほかにあると思われます。 while(1) { while(y<$screenHeight) { y=y+2; appearEnemy(); } while(y>0) { y=y-2; appearEnemy(); } update(); } これだと一見よさそうなのですが、 while(y<$screenHeight) {・・・} と while(y>0) {・・・} のフレームにおいて、移動後にupdate関数が呼ばれないので処理が重くなってしまいます。つまり、yが画面下に行き(y<$screenHeight)、それから画面の上に戻って(y>0)初めてupdateが呼ばれ、それまでに一度もupdateが呼ばれないからです。
|
Re: またすみません
投稿者 : kenji(YahooBB220010104149.bbtec.net)
- 2004/07/23(Fri) 02:06
No.6674
|
|
|
|
Re: またすみません
投稿者 : でぶちん(ntkyto001143.kyto.nt.isdn.ppp.infoweb.ne.jp)
- 2004/07/23(Fri) 17:16
No.6678
|
|
|
|
単にrndのとこの値を10より多くすればいいだけとか? あるいは他のオブジェクトに原因があると思います。
|
Re: またすみません
投稿者 : 大(p1178-adsau07doujib2-acca.osaka.ocn.ne.jp)
- 2004/07/24(Sat) 21:11
No.6682
|
|
|
|
ああ、そうだったんですか。 わかりました。 解決しました。
|
|