HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0926
mmy337シューティング?でレーダー 自機の向きによる画面上の敵の位置移動4解決


mmy337

リンク

2010/9/26(Sun) 14:16:32|NO.35146

質問なのですが、現在作っているゲームは全方位シューティングといっていいのかわからないのですが
2Dでマップ上を自由に走り周り敵を撃つゲームを作っています。
それでメイン画面としてレーダー画面を作っているのですが、
distance2を使って自機キャラから敵の距離を計算し近づいたらレーダーに表示するまではできたのですが
自機キャラが向いている方向とレーダー上での敵の位置
敵が自機から東の位置にいる場合、自機が東を向いた場合、レーダー上では敵が北側に来るようにしたいのです
マップ上
→○
レーダー上


自機の向いている方角がレーダーでの上になるようにするといえばいいのでしょうか。
教えてください



この記事に返信する


ORZ

リンク

2010/9/26(Sun) 14:22:14|NO.35147

算数で点や線をxxx度回転させた座標を求める方法を習うので勉強しましょう。



f3d

リンク

2010/9/26(Sun) 15:20:32|NO.35148

atanを使えば二点間の角度を求めることが出来ます。
atanに二点間の座標の差を与えましょう。

#module #defcfunc dis double x,double y, double xx,double yy return sqrt((xx-x)*(xx-x)+(yy-y)*(yy-y)) #global screen 0,600,300 gosub *素材用意 gsel 0 rot = 0.0 num_enemy = 8; repeat num_enemy//敵用意 x(cnt) = rnd(300) y(cnt) = rnd(300) loop repeat redraw 0 stick key,5 if key&1:rot -= 0.05; if key&4:rot += 0.05; color:boxf 0,0,300,300//操作画面描画 pos 150,150:grotate 2,0,0,rot color 200,0,0 repeat num_enemy//敵描画 boxf x(cnt)-4,y(cnt)-4,x(cnt)+4,y(cnt)+4 loop pos 300,0//レーダー描画 gcopy 1,0,0,300,300 repeat num_enemy//レーダーに表示する位置を求める rad = atan(x(cnt)-150,y(cnt)-150)//敵のいる角度を求める distance = dis(150,150,x(cnt),y(cnt))//距離をもとめる px = sin(rot+rad)*distance +150 +300 py = cos(rot+rad)*distance +150 +0 color 255,0,0 boxf px-4,py-4,px+4,py+4 loop await 12 redraw 1 loop *素材用意 buffer 1,300,300//レーダー画面描画 color:boxf color 255,255,255 line 150,290,150,10 line 290,150,10,150 color 0,200,0 circle 15,15,285,285,0 circle 80,80,220,220,0 circle 120,120,180,180,0 color 0,0,200 boxf 146,146,154,154 color 0,255,255 buffer 2,10,10 color:boxf font msgothic,10 color 0,0,200:mes "▲" return



GENKI

リンク

2010/9/26(Sun) 17:23:45|NO.35151

> 算数で点や線をxxx度回転させた座標を求める方法を習うので勉強しましょう。

さすがに算数では習わなかったかと。数学で習います。(…どうでもいい話ですね。)

参考資料:http://hspdev-wiki.net/?Math%2F%CA%BF%CC%CC%B2%F3%C5%BE



mmy337

リンク

2010/9/26(Sun) 18:45:39|NO.35152

ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.