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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0127
ラクタンシェ自機弾の消去について6解決


ラクタンシェ

リンク

2012/1/27(Fri) 22:33:19|NO.44567

こんばんは
先週お世話になったものです
DirectXを使ってSTGを作っています
今回質問したいのは、自機弾が的に当たったら当たった弾だけを消す方法なのですが、
3way弾なんですがes_killだと一列まるまる消えてしまうし、es_clearだと全て消えてしまいます
なにかいい方法はないでしょうか?



この記事に返信する


暇人

リンク

2012/1/28(Sat) 00:34:21|NO.44568

es_killは指定したスプライト1個消す命令

>3way弾なんですがes_killだと一列まるまる消えてしまう
3way弾を3個のスプライトで出してるのに一列消えるなら
それは自分で一列分es_killを繰り返してるだけ

まず本当に弾一つしか当たってないのか確かめる



ラクタンシェ

リンク

2012/1/28(Sat) 02:11:57|NO.44569

>>暇人さん
お久しぶりです
思いついたのがes_getで自機弾のx,yを求めて敵との当たり判定内にあるか求める‥‥なんですけどやってみてもできませんでした
一応スクリプトです

es_check ehit,1,6 if ehit!=-1{ if ef=2{ ehp=ehp-atk if eg>10:eg=eg-atkg if ehp<0:ecnt--:goto*ボスゲージ if ecnt<0:egf=0 } } es_get hitx,sp,3 es_get hity,sp,5 if (abs(hitx-ex)<100.0)&(abs(hity-ey)<100.0):es_kill sp return
あと一応自機弾のスクリプトも貼っておきます

sdelay-=1 ;自機弾ディレイ値を減らす if (zkey=0) | (sdelay>0):return if tkey=0{ sdelay=2 ;ディレイリセット(ここで指定した値が発射間隔となる) repeat jts es_exnew sp,10 es_set sp,x+10,y+5,1,1,5 es_type sp,2 es_effect sp,,,0,0,10-(10*cnt)//自機弾の角度合わせる→10-(10*cnt) es_adir sp,190-cnt*10,1500//基準は真下で0度。-cnt*5で少しずつずらしていく loop }



暇人

リンク

2012/1/28(Sat) 04:09:42|NO.44571

> es_get hitx,sp,3
> es_get hity,sp,5
> if (abs(hitx-ex)<100.0)&(abs(hity-ey)<100.0):es_kill sp

ここで使ってるspには何処でどうやってスプライトNOを入れてるのか



ラクタンシェ

リンク

2012/1/28(Sat) 10:07:35|NO.44575

>>暇人さん
自機弾の処理の方でex_newでとっているので大丈夫かと思ったんですけどダメですか?
順番的には自機弾の処理→当たり判定です



暇人

リンク

2012/1/28(Sat) 13:55:35|NO.44579

>自機弾の処理の方でex_newでとっているので大丈夫かと思ったんですけどダメですか?
レザーの時に発射時と移動時でスプライトNOの収得方法は違ったでしょ

>es_check ehit,1,6
ここで当たった弾のスプライトNO収得してるならspじゃ無くehitになるんじゃないの?



ラクタンシェ

リンク

2012/1/28(Sat) 21:50:39|NO.44583

>>暇人さん
spとehit間違えてました!
解決しましたありがとうございます!



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