8685でお世話になった者です
投稿者 : 蝶蚊(58x80x133x75.ap58.ftth.ucom.ne.jp)
- 2005/09/04(Sun) 09:37
No.8696
|
|
|
|
|
8696.zip
何度もすみません。ずっと頑張ってみたのですが、やっぱりだめです。キャラ交代は出来るようになりました。でもジャンプが出来なくなったり、落下出来なくなったり、二つのキャラの速さを同じにしてるのに若干差が出たりと・・・。 プログラムを添付しておきます。よろしくお願いします。
|
Re: 8685でお世話になった者です
投稿者 : N@N(actkyo089062.adsl.ppp.infoweb.ne.jp)
- 2005/09/05(Mon) 01:39
No.8698
|
|
|
|
8698.zip
非操作時の処理の中に、落下計算が含まれていなかったのが原因です。 control=2で、どの部分を通過するのか追いかけてみてください。
/*と*/を含文を消せば、操作キャラにつられて非操作キャラもジャンプするようになっています。
|
Re: 8685でお世話になった者です
投稿者 : 蝶蚊(58x80x133x75.ap58.ftth.ucom.ne.jp)
- 2005/09/05(Mon) 11:44
No.8699
|
|
|
|
ありがとうございます。頭で思い浮かべているものに、近づいてきました^^ らっか・・・けいさんですか・・・
あ、ところで操作時はジャンプするといつまでも飛び続けるのですが・・・。何度もすみません
|
Re: 8685でお世話になった者です
投稿者 : N@N(actkyo081205.adsl.ppp.infoweb.ne.jp)
- 2005/09/06(Tue) 00:27
No.8701
|
|
|
|
ジャンプは、vx=-10により上方向の速度を上げることで発生します。 そこを、(この場合)↑ボタンを押した瞬間のみ実行するようにすればよいのです。 ヘルプのgetKeyのページも参考になるかと思います。
念のため、落下計算とは if ($map.getAt(x,y+24)==$pat_Block+0) {//下がブロックだったら vy=0;//下方向の速度は0。 $B.hop=0; } else {//そうでなかたら vy+=0.5;//下方向にだんだん速くなる } この部分のことです。ここを通って初めて、落ちるようになります。
|
Re: 8685でお世話になった者です
投稿者 : 蝶蚊(58x80x133x75.ap58.ftth.ucom.ne.jp)
- 2005/09/06(Tue) 11:05
No.8702
|
|
|
|
ありがとうございます。押した瞬間のみ実行・・・(ー△ー;)§ 頑張ってみま・・す。おかげ様で完成まで後少しです。
|
Re: 8685でお世話になった者です
投稿者 : 蚊蝶(58x80x133x75.ap58.ftth.ucom.ne.jp)
- 2005/09/19(Mon) 11:13
No.8772
|
|
|
|
「ジャンプし続ける」という件、実はまだ解決出来てなかったり・・・。押した瞬間のみ実行というのは、その落下計算が関係あるのですか?
|
正解は
投稿者 : N@N(actkyo086149.adsl.ppp.infoweb.ne.jp)
- 2005/09/19(Mon) 11:24
No.8774
|
|
|
|
ヘルプの、getkeyメソッド(Objectクラス) の説明の中に、次のような記述があります。 戻り値: 0:押されていない 1:今押されたばかり 2以上:押しっぱなしになっている つまり、例えば k=getKey(32); を実行した時に、スペースキーが押されて1フレーム目だったならば、k=1になる、ということです。 これを判定に使い、 if (getKey(32)==1){vy=-10;} こうすることで、スペースキーが押しっぱなしでも上昇し続けることはなくなります。
|
Re: 8685でお世話になった者です
投稿者 : 蝶蚊(58x80x133x75.ap58.ftth.ucom.ne.jp)
- 2005/09/27(Tue) 20:04
No.8804
|
|
|
|
お返事送れて申し訳ありませんでした。 そして、どうもありがとうございました。
|
|