忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

中ボスの爆破を追加しました。
819.jpg
8方向に広がっていく爆風をボス本体上にランダムで表示させて、後ろに向かっていく爆風と組み合わせて表示させています。

スクリプトはこんな感じ↓で表示させています。
*************************************
*bossbomb
bomb132-;爆風カウントをマイナス
if bomb132>1{;爆風カウントが1以上の時
pos ex,ey
gmode 2
es_copy 3,0,288,398,144;ボス画像表示
bex=(ex+50)+rnd(200);爆風X軸設定
bey=ey+rnd(100);爆風Y軸設定
es_exnew temp,251,499
if temp=-1 : return
es_set temp,bex,bey,90;爆風設置
es_effect temp,80,80,0,0,0
es_type temp,16; 効果type値(16)
es_adir temp,180,600;上に移動させる
es_flag temp,%1000001100100001;爆風を消滅させる
}
if bomb132>1{
if gtime¥5=0{
repeat 8
es_exnew temp,10,249
if temp=-1 : return
es_set temp,bex,bey,21;爆風設置
es_effect temp,64,64,0,0,0,ESB_ALPHA,150; 爆風設置
es_type temp,16; 効果type値(16)
es_adir temp,cnt*45,400;8方向に移動させる
es_flag temp,%1000001100100001;爆風消滅
loop
}
}
return
*************************************
雑魚キャラの時は爆風を一回表示させて終わりだったのですが、さすがにそれでは「倒した感」が薄いなぁと思って、300フレームの間
爆風が表示されるようにしました。
ボス爆破用の変数を作って、1フレームごとに1マイナスしていき、0になるまで爆風が表示されるようにしています。
本当は壊れたボス画像を作りたかったのですが、私の画力では書けませんでした(汗)

しかし、先日も書いたgmode 2を使うを画面がちらつく問題が解決していないんですよね・・・
でも、他のパソコンだとちらつかないので、開発マシン側の問題なのかなぁ?と思っているんですが、まったく解決方法が思い浮かびません・・・
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
>先日も書いたgmode 2を使うを画面がちらつく

私の所もgmodeはいろいろ使ってますが
チラついたりしませんねぇ
変な値を設定して、画面が写らない
とかはありましたが・・
簡単なサンプルを載せていただければ
こちらでも検証しますよ^^
ふろんてあ 2006/08/19(Sat)13:05:03 編集
無題
ありがとうございます。
色々スクリプト組みなおしたり、パソコンのドライバ
アップデートしてみたりしたんですが、治らないンですよね…
今日は今から仕事なので、明日にでも簡単なサンプル載せますんで
検証よろしくお願いしますm(_ _)m
kt. 2006/08/19(Sat)16:44:30 編集
無題
どうもはじめまして。
私もHSPdxfixでSTGゲームを製作中でして、
参考にさせていただいてます^^
ただいま画面上から出てきた敵が真っ直ぐ下へ進み、一発だけ自機を狙って撃たせるよう製作中なのですが
敵弾の生成が、敵が消えるまで弾を発射し続けて弾の画像が途切れないぐらい発射されてしまいます^^;
あれこれ他のサイトも参考にして改良を試みたのですが、うまくいきません;;
そこでお願いなのですが、ぜひ参考にしたいので
kt.さんの敵弾生成のスクリプトを載せていただけないでしょうか?^^;
いきなりのお願いですいませんm(_ _)m
M,I 2006/08/20(Sun)00:46:28 編集
無題
>M,Iさん
はじめまして。私のブログを参考にして頂いているとは光栄です^^
HSPdxfixのスクリプトは長すぎて載せれないので
標準命令での簡単なスクリプトを作ってみましたので、参考になるかわかりませんが試してみて下さい。
多分、敵が画面にいる時にずっと敵弾生成を行っているのだと思うので
敵の生成時間の変数を導入して、任意フレーム時に発射とすれば良いのかな?と思って作ってみました。
37行目のecnt=100の数字を変えれば発射時間を変える事が出来ます。
**************************
screen 0,240,320,0,0,0 ;メインウインドウ0を240×320で用意
px=112:py=304 ;自機の初期位置
ex=10:ey=0 ;敵の初期位置
dx=0:dy=1 ;敵の移動量
ecnt=0;敵生成時間

*main
redraw 0 ;仮想画面を指定
color 0,0,0 ;色に黒を指定
boxf 0,0,240,320 ;指定色で画面を塗りつぶす

;自機移動処理
stick ky,15 ;キーボードのチェック
if ky&1 :px-=4 :if px<0 :px=0
if ky&4 :px+=4 :if px>224 :px=224
if ky&2 :py-=4 :if py<0 :py=0
if ky&8 :py+=4 :if py>304 :py=304
pos px,py ;自機の座標指定
color 0,0,255 : mes "▲" ;青で▲を表示

;敵移動処理
ecnt+;敵生成時間をプラス
ex=ex+dx ;敵座標に移動量をプラス
if(ex<0)|(ex>224) :dx=-dx ;画面端で反転
ey=ey+dy
if(ey>320) : ex=rnd(230) : ey=-10 : ecnt=0;敵が画面から消えたら再配置
pos ex,ey
color 255,0,0 : mes "■" ;敵表示
mes ""+ecnt+""

;敵弾処理
if etf=0 { ;敵弾が画面にない時{}内の処理を行う
ds=5 ;敵弾の速さ
r=atan(py-ey, px-ex) ;敵と自機との角度を求める
etxv = cos(r)*ds ;敵弾のx軸方向の移動量
etyv = sin(r)*ds ;敵弾のy軸方向の移動量
if ecnt=100 : etf=1 ;100フレーム時に弾の存在を有にする
etx=ex : ety=ey ;敵弾の初期座標
}
if etf=1 { ;敵弾が画面に有る時{}内の命令を行う
etx=etxv+etx ;敵弾のx軸の座標指定
ety=etyv+ety ;敵弾のx軸の座標指定
pos etx,ety ;敵弾の座標指定
color 255,255,0 : mes "●" ;弾表示

if etx>240 : etf=0 ;敵弾が画面から消えたら存在をなしにする
if etx<0 : etf=0
if ety>320 : etf=0
if ety<0 : etf=0
}
redraw 1 ;画面を更新
await 1
getkey syuryo,27:if syuryo=1:end;ESCを押すと強制終了
goto *main ;*mainに戻る
kt. 2006/08/20(Sun)11:56:41 編集
無題
わざわざすみませんm(_ _)m
これを改良して自分のプログラムにあてはめて
がんばってみます^^
本当にありがとうございました^^
M,I 2006/08/20(Sun)21:02:29 編集
この記事へのトラックバック
この記事にトラックバックする:
Twitter
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]