マウス操作で…
投稿者 : Fel(p2174-ip03sasajima.aichi.ocn.ne.jp)
- 2009/05/01(Fri) 01:25
No.12327
|
|
|
|
|
プログラミング初心者なので初歩的な質問になってしまいますが、 マウスをクリックした時に自キャラがマウスカーソルの方へ飛んでいくようにするにはどうすればいいのでしょうか?
|
Re: マウス操作で…
投稿者 : Triangle Ld.(i218-47-199-58.s06.a011.ap.plala.or.jp)
- 2009/05/01(Fri) 16:00
No.12328
|
|
|
|
こんな感じでしょうか。 extends SpriteChar; //お約束
mx = 0; //マウスX座標 my = 0; //マウスY座標 while (1){ if (getkey(1) == 1){ //画面上で左クリックされたとき mx = $mouseX; my = $mouseY; } a = $Math.angle(mx-x, my-y); x += cos(a); y += sin(a); update(); } と、三角関数cos,sinを使います。 $Math.angleのところは本来angleでもいいのですが、Mathのangleのほうが 精度がいいようなのでこちらを使いました。 $mouseX,$mouseYはマウスの座標です。 これはスクリーン座標というもので、マップのスクロールには影響しないです。 もし自機をスクロールさせるなら、以下のようにするといいです。 $Math.angle(mx-x, my-y); ↓ $Math.angle(($viewX+mx)-x, ($viewY+my)-y); 以上、長い説明でした。 我慢してじっくり読んでください。
|
Re: マウス操作で…
投稿者 : Fel(p10197-ip02sasajima.aichi.ocn.ne.jp)
- 2009/05/01(Fri) 23:50
No.12329
|
|
|
|
ありがとうございます!参考にさせていただきました。 一応基本的な部分は掴めたのですが、自分で色々といじってみても分からない部分があったので、恐縮ですが再度質問させていただきます。
現在サイドビュー型のアクションを制作しているのですが、マウスカーソルの地点まで移動するのではなく、カーソルの方向へちょっとだけ跳ぶ感じにするにはどうしたらいいのでしょうか? また、移動する方向によってキャラクタの絵を変えるにはどのようにすればいいのでしょうか?(真上へ移動する時はジャンプする絵に、横へ移動する時はダッシュする絵に、という感じです)
質問ばかりで本当に申し訳ありません…m(_ _;)m
|
Re: マウス操作で…
投稿者 : Triangle Ld.(softbank219014226155.bbtec.net)
- 2009/05/02(Sat) 00:13
No.12332
|
|
|
|
こういう系のプログラミングの基礎は、「変数」と「制御文(if•whileなど)」です。 >キャラの絵を変える。 変数pをつかいます。 アニメーションさせるならAnimationAdaptor(アニメーションの道具)を事前にanimなどに用意して、 anim.loop(最初のパターン,最後のパターン,速さ); anim.swing(最初のパターン,最後のパターン,速さ); とします。 というよりここらはプロジェクトボードにある作品たちをみて、それで中身を拝見させてもらえればいいとおもいます。 >マウスカーソルの方向にすこしとぶ うーん...こんなかんじですかね。 No.12328より 省略 a=$Math.angle(mx-x,my-y); x+=cos(a); vy=-sin(a)*7; if($map.getAt(x,y+16)==-1){ vy+=0.4; } y+=vy; あと分からないところはヘルプとにらめっこして解決してください。それでもわからなかったら質問するようにしましょう。 実際私がその例なので。
|
Re: マウス操作で…
投稿者 : Fel(p1011-ip03sasajima.aichi.ocn.ne.jp)
- 2009/05/02(Sat) 12:22
No.12335
|
|
|
|
ありがとうございます。 「変数」と「制御文(if•whileなど)」が基礎、ということは理解しているつもりなのですが、テクニックというか、応用の仕方がなかなか思い付かないです…プログラミングって本当に難しいです。 マウス関連も難しいですね。初心者には敷居が高すぎるんでしょうか…
今更ながら、質問を連発した自分に自己嫌悪しています… 他人に頼りすぎてしまっていたような気がします。 こういうことはもっと自力でやるようにしたほうがいいですよね。 質問に丁寧に答えてくださったTriangle Ld.さんに感謝します。
|
|