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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0902
仙山甲あたり判定について11未解決


仙山甲

リンク

2010/9/2(Thu) 22:45:54|NO.34798

ゲーム作成が初めてで全く解りません

画像や旗を使わず敵の機体を出すところまで来たんですが

あたり判定のしかただけどうもできません

どのようにすればいいか教えてください



この記事に返信する


f3d

リンク

2010/9/2(Thu) 23:10:47|NO.34799

質問に答えるためにはもっと情報が必要です。
・拡張プラグインなどを使っているか。
 hspdx、hgimg、Easy3Dならばそれぞれ専用のあたり判定命令があります。
 マニュアルを参照してください。
 標準命令onlyなら簡単な線分や領域で判定してみてください。
 調べればいろいろ資料があります。


 



仙山甲

リンク

2010/9/2(Thu) 23:27:54|NO.34803

回答ありがとうございます!

標準命令onlyでやらせてもらってます

線分で判定させたいんですがプログラムが組めないんです

パラメータが多いとかなんとか



くうき

リンク

2010/9/2(Thu) 23:48:04|NO.34804

あなたの質問からすると2Dのシューティングゲームか何かでしょう
その場合中心からの距離の当たり判定を使ってみればいいのでは
簡単に言うと期待の中心にコンパスで書いたような円がありその円同が触れたときが当たり
えっとあなたの年齢はわかりませんが理解して頂けるとうれしいのですが
X軸とY軸がわかっているのだから三角形の斜辺を求めればいいわけです
中学生で習ったと思いますが 三角形の縦の二乗+三角形の横の二乗=三角形の斜辺の二乗
文字ばっかじゃややこしくなるので一応サンプル(計算の部分だけ)

;機体1の位置 x1=100 y1=100 ;機体2の位置 x2=250 y2=190 ;当たり判定 ;まず2機のxyそれぞれの距離を出す x=x1-x2 y=y1-y2 ;2機の距離を求める kyori=sqrt(x*x+y*y) if kyori=>100 ;2間の距離が100以上(1機あたりの当たり判定の範囲が50)ならば〜
とこんな感じで単純な当たり判定はできます
玉によって当たり判定の範囲が変動する場合は話が別ですがこれをベースにすればそれも簡単にできるでしょう



くうき

リンク

2010/9/3(Fri) 00:05:17|NO.34809

すみません気づいたらスレされてました
ちなみに線分の当たり判定とはどのようなときに用いろうと思っているのでしょうか
たとえばレーザー光線とか?



GENKI

リンク

2010/9/3(Fri) 00:22:32|NO.34810




仙山甲

リンク

2010/9/3(Fri) 00:46:36|NO.34812

ありがとうございます!

パラメータが多いと言われて何もできないんですが

どうすればいいでしょうか?



f3d

リンク

2010/9/3(Fri) 01:03:17|NO.34813

そりゃパラメータが多いんでしょう。

もう一度見直して、引数が間違っていないかチェックしてみてください。



ORZ

リンク

2010/9/3(Fri) 01:33:48|NO.34814

とりあえず君の質問内容はパラメータが足りなすぎる。
どの行でエラーが起きてるのか調べて、それが何の命令か調べて、ヘルプを読んで直しなさい。



SYAM

リンク

2010/9/3(Fri) 10:42:37|NO.34815

「パラメータが多いと言われて何もできない」
…あたりから察するに、「パラメータ」という語の意味が解っていないのではないですか?
解っていれば 何もできない はずがないので…。

おそらくHSPからのエラーメッセージにそう書かれていたのだと思いますが、そこでいう「パラメータ」というのは 命令に与える数値や文字列などのデータのことです。
たとえば

screen 0,640,480,0
…というようなスクリプトを書いた場合、 0 と 640 と 480 と 0 が「パラメータ」です。命令にくっつけて実行させるデータをそう呼ぶのです。

ここまで解れば、「パラメータが多すぎます」っていうエラーが出たときにどうしたらいいかは 考えることができますよね?



SYAM

リンク

2010/9/3(Fri) 10:51:14|NO.34816

>くうき さん

2者の距離の判定だけでは、
「1回の移動&あたり判定の処理で、あたり判定の大きさよりも大きな距離を移動した」
…というような場合に、衝突を見逃してしまうのです。移動物体が速いと起こり得ます。

これを防ぐには、移動前と移動後の座標を結ぶ線分が交差していたら衝突とみなす処理が必要になるのです。



くうき

リンク

2010/9/3(Fri) 16:17:35|NO.34817

>SYAM さん
たしかにそうなってしまいますね
大きな範囲の当たり判定ならいけそうですね
ありがとうございます
>仙山甲 さん
あなたの当たり判定をどうしたいのかというイメージがまったくわからないのですが
ほかに皆さんもおっしゃっておられますが
まず自分のスクリプトの問題と思われる部分を抜き出し皆に見てもらうことで
もっと早く解決すると思うんですが



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