無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/21(Sat) 23:00
No.11870
|
|
|
|
|
自機を動かすプログラムをやってみたのですが向きが変わるだけどなにもおこらず向きが変わるだけで終わってしまいます。 下がそのプログラムです extends SpriteChar; while(1) { if (getkey(39)>=2) {vx=-wsp;f=-1;} //右キーが押されたら速度を-2に、向きを右にする if (getkey(37)>=2) {vx=-wsp;f=1;} //左キーが押されたら速度を-2に、向きを左にする update(); }
|
Re: 無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/22(Sun) 00:01
No.11871
|
|
|
|
すみません 自己解決いたしました
それで次の質問なのですが 銃などを撃った時に右をむいていたら右にでて左を向いていたら左に弾がでるというのはどうやればいいのでしょうか?
|
Re: 無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/22(Sun) 00:19
No.11872
|
|
|
|
すみません 自己解決いたしました
それで次の質問なのですが 銃などを撃った時に右をむいていたら右にでて左を向いていたら左に弾がでるというのはどうやればいいのでしょうか?
|
Re: 無題
投稿者 : イッカ!(p7167-ipad306hodogaya.kanagawa.ocn.ne.jp)
- 2008/06/22(Sun) 01:17
No.11873
|
|
|
|
どうも、一応書いておきますが弾出現は Appear (new 弾(X座標,Y座標,キャラパターン,向き(省略化))); ですよ(
まぁ要するに右に撃ったり左に撃ったりってことですよね。 同じような質問があったような気もしますが…(汗 これは色々やり方があります・・・多分(ぁ
1)出現場所をいじる 「弾を撃つ」==「弾を出現させる」なんですが、この出現場所を変えます。 (右を向いている時は少し右側に、左を向いている時は少し左側に 次に弾、銃を持っている人より右にいるか、左にいるかで区別します。 もし銃を持っている人より右にいたら右に進むループ。 もし銃を持っている人より左にいたら左に進むループ。という感じで
2)クラスで区別 要するに、「右に進む弾」と「左に進む弾」を作って、それぞれの向きに合った弾を出現させるだけです。
3)向きを弾に 出現させる時の命令を Appear (new 弾(x,y,画像,f)); にして、弾をfでコントロールします。 右向きの時、弾のfも-1なのでwhile(f==-1)で右に進むように。 左向きの時、弾のfも1なのでwhile(f==1)で左に進むように。 といった感じで。
4)グローバルに グローバル変数は共有可能という特性を生かしたやり方。 $MUKIで変数を作って、右向いた時に1,左向いたら0になるようにします。 後は(3)みたいに弾の動きを$MUKIで制御すれば大丈夫b
これぐらいしか思いつきませんでした|||orz お勧めはBですね、なんか格好いいので( では頑張ってくださいb
|
Re: 無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/22(Sun) 08:07
No.11874
|
|
|
|
if (f==0 && getkey(88)==1){appear (new (x.y.$pat_+4)); if (f==1 && getkey(88)==1){appear (new (x.y.$pat_+4)); プログラムはこの用にしてみたのですがXキーを押しても弾がでずにおわってしまいました。 どこか間違ってますでしょうか?
|
Re: 無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/22(Sun) 08:15
No.11875
|
|
|
|
if (f==0 && getkey(88)==1){appear (new (x.y.$pat_+4)); if (f==1 && getkey(88)==1){appear (new (x.y.$pat_+4)); プログラムはこの用にしてみたのですがXキーを押しても弾がでずにおわってしまいました。 どこか間違ってますでしょうか?
|
Re: 無題
投稿者 : イッカ!(p6008-ipad302hodogaya.kanagawa.ocn.ne.jp)
- 2008/06/22(Sun) 10:22
No.11876
|
|
|
|
(記事を書き込んだ後、更新すると再試行と判断され、2度書き込むはめになるので注意したほうがいいですよb)
if (f==0 && getkey(88)==1){appear (new (x.y.$pat_+4)); if (f==1 && getkey(88)==1){appear (new (x.y.$pat_+4)); 1)弾のクラスがない もし、「TAMA」という名前で弾を作ったなら appear (new TAMA(x,y,$pat_+4)); としないといけません、もし「弾」という名前で弾を作ったなら appear (new 弾(x,y,$pat_+4)); としないといけません。
2)向きが違う 「f==0」とありますが、最初のカキコの所では「f=-1」となっています。 統一しましょうb
質問 どんな方法でやろうとしているんですか? あと$pat_+4ってあってるんでしょうか?
|
Re: 無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/22(Sun) 18:59
No.11884
|
|
|
|
>どんな方法でやろうとしているんですか? 弾を二つ作って右向きのときはAを出すというかんじのです つまり2です >あと$pat_+4ってあってるんでしょうか? ええ、あっています。 連続書き込みすみませんでした 削除キーを忘れていて更新ボタン押してしまったので 気をつけます。 弾というのでつくって一応弾って書いたのですがやはり だめでした ちなみにプログラムはこんな感じです while(1){ if (f==0 && getkey(88)==1)appear(new 弾(x.y.$pat_+4)); if (f==1 && getkey(88)==1)appear(new 弾2(x.y.$pat_+4)); update(); }
|
Re: 無題
投稿者 : イッカ!(p16093-ipad46hodogaya.kanagawa.ocn.ne.jp)
- 2008/06/22(Sun) 21:19
No.11885
|
|
|
|
成る程、2のやり方ですか・・・ あ、さっきも書きましたけど「f」の値が「0」になってますy( 一番最初に「f」が「-1」になるようにしたなら、条件式の「f==0」は「f==-1」にしましょうb とりあえず今までのまとめを投下しますw
//自分 extends SpriteChar; f==1; while(1) { if (getkey(39)>=2) {vx=-wsp;f=-1;} //右キーが押されたら速度を-2に、向きを右にする if (getkey(37)>=2) {vx=-wsp;f=1;} //左キーが押されたら速度を-2に、向きを左にする if (f==-1 && getkey(88)==1)appear(new 弾(x.y.$pat_+4)); if (f==1 && getkey(88)==1)appear(new 弾2(x.y.$pat_+4)); //Xが押された時、右を向いていたら弾を、左を向いていたら弾2を出現 update(); }
//弾 extends SpriteChar; while(1) { x+=8; //右に進む if (ScreenOut()) {die();} //画面外に出たら死ぬ }
//弾2 extends SpriteChar; while(1) { x-=8; //左に進む if (ScreenOut()) {die();} //画面外に出たら死ぬ }
多分こんな感じで大丈夫だと思います^^; コピぺせず、見比べて何処が違っているのか比べてみてくださいb ※ひょっとしたらこっちが間違えているかもしれない(汗
|
Re: 無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/22(Sun) 22:18
No.11886
|
|
|
|
11886.txt
一応コピペもしたのですが やっぱダメでした。もうプログラム(テキストにしたもの)送りますので見てくださいお願いします。
ご丁寧に回答ありがとうございます。 本当すみません><
|
Re: 無題
投稿者 : イッカ!(p7242-ipad405hodogaya.kanagawa.ocn.ne.jp)
- 2008/06/23(Mon) 16:20
No.11887
|
|
|
|
11887.lzh
流石に長すぎなのでそろそろUsr投下させて貰いますw かなり適当なやつです、参考程度にどーぞb
そうですね・・・ コピぺしたのに「,(コロン)」が「.(ピリオド/ドット)」になってるのはなんででしょうk( あと、なにが「ダメ」だったのかを書いてくれないとちょっとorz
|
Re: 無題
投稿者 : イッカ!(p7242-ipad405hodogaya.kanagawa.ocn.ne.jp)
- 2008/06/23(Mon) 16:30
No.11888
|
|
|
|
ん、よく見たら自分が間違っていt(死 ×appear (new 弾(x.y.$pat_+4)); ○appear (new 弾(x,y,$pat_+4)); ごめんなさいm(_ _;)m
|
Re: 無題
投稿者 : くっく(245.114.44.61.fbb.aol.co.jp)
- 2008/06/23(Mon) 19:54
No.11889
|
|
|
|
ありがとうございました 攻撃するようになりました 本当にありがとうございました
|
|