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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0422
床の衝突判定8解決


リンク

2008/4/22(Tue) 19:45:26|NO.15304

先日は、坂の衝突判定について投稿したのですが、少しも返答がなかったので変えました

それで、マ●オのようなゲームで、
ゆかと接触しているかを調べるにはどうすればいいのですか



この記事に返信する


SYAM

リンク

2008/4/22(Tue) 20:03:59|NO.15307

坂は何気に難しいのですよー。
水平な床や壁なら、一番簡単なとこでは
移動先が 行ける場所なら移動して
行けない場所(壁や床)なら移動しない
だけで、とりあえずできるかと思います。

ただし、一度に移動する距離が壁の厚みより大きいと突き抜けますが。



As

リンク

2008/4/22(Tue) 21:43:18|NO.15314

三角形の範囲条件式を作り、その範囲内にキャラクターポイントがあったら
三角形の範囲条件式を抜ける位置になるまで上昇させます。



レヴィン

リンク

2008/4/23(Wed) 20:02:30|NO.15342

>>一度に移動する距離が壁の厚みより大きいと突き抜けますが
SYAMさん、通行判定をする時に1ループ前の座標を記録しておいて
移動後と移動前の座標を直線で結んでその間に壁や床が無いかチェックするとか
工夫すればある程度は改善できるかと思います。もっとも、これをやることで、
また引っかかるとかのバグが出るかもしれませんが^^;



GENKI

リンク

2008/4/23(Wed) 21:17:49|NO.15345

既にあるものを参考にするのもひとつの手です。
http://hspdev-wiki.net/?cmd=read&page=%BE%AE%A5%EF%A5%B6%2F%A5%A2%A5%AF%A5%B7%A5%E7%A5%F3%2F%B4%F0%CB%DC%C6%B0%BA%EE
http://hspdev-wiki.net/?%A5%A2%A5%AF%A5%B7%A5%E7%A5%F3%A5%B2%A1%BC%A5%E0%A5%BD%A1%BC%A5%B9%B8%F8%B3%AB
HSP2のスクリプトもまざっていますが、基本的な考え方は同じです。



SYAM

リンク

2008/4/23(Wed) 22:45:55|NO.15347

>レヴィンさん


または、速度(一回の移動距離)が壁抜けしてしまう大きさにならないよう制限するなんていう乱暴な手もあります。
ゲームに使う分には、案外それでコト足りたりして。。。

※ルール上許容できなかったら、遮蔽を検出するしかないですが。



リンク

2008/4/25(Fri) 21:24:37|NO.15384

ありがとうございました。
さっそく、作ってみます。



テイル

リンク

2008/4/25(Fri) 22:40:24|NO.15389

明日、参考になりそうな?プログラムをアップしますね。



テイル

リンク

2008/4/26(Sat) 11:21:21|NO.15404

だいぶ昔に作ったものですが・・・。

cls buffer 1 picload "L1.bmp" buffer 2 picload "map1.bmp" screen 0,665,300 gmode 2 #define 速さ 8 #define 高さ 160 #define 速度 8 x=320 : y=240 : jp=0 :sjp=0:maxT=高さ ;メインプログラム *ALOOP redraw 2 pos 0,0 :gcopy 2,0,0,665,300 stick key,23 if (key&1)&&(x>0) : x-=6 if ((key&4)==4)&&(x<640) : x+=6 if ((key&2)==2)&&(jp==0) : jp++ :maxT=高さ if ((key&16)==16)&&(jp==0) :jp++:sjp++:maxT=20 if jp : jp+=速度 if sjp : sjp+=速さ if jp > 180 : jp=0:x=x-sjp:sjp=0 if x<0 :x=0 ;はみ出し修正 if x>610 :x=610 pos x-sjp,y-sin(3.14159*jp/180)*maxT gcopy 1,0,0,95,100 ;buffer1のキャラ範囲指定 redraw 1 ;画面ちらつき防止 await 30 y=180 ;地面設定 goto *ALOOP



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