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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0131
リュウこの弾幕の評価を付けてください212解決


リュウ

リンク

2014/1/31(Fri) 23:05:50|NO.59573

2回目です
下記のスクリプトを実行させた際の弾幕の評価をつけてほしいです。
また、お時間がありましたらスクリプトをじっくり見て
「ここをこうしたらもっと処理速度が速くなるよ」等、アドバイスをいただければ幸いです。

//乱数の初期化 randomize //画面初期化 screen 0,500,500 //仮想画面読み込 buffer 1 color 0,0,0:boxf color 255,25,0 mes "●" color 1,0,0 mes"▲" gsel 0 //変数の宣言 frame = 0 shot_max = 500 jiki_x = 250.0 jiki_y = 250.0 ddim shot_f,shot_max ddim shot_x,shot_max ddim shot_y,shot_max ddim shot_vx,shot_max ddim shot_vy,shot_max dim shot_type,shot_max //弾の動き方:1ならば左端から、2ならば右端から弾が発射される *main redraw 0 color 255,255,255:boxf //キー入力 stick k,31 if(k&1){ jiki_x-=2.0 if(k&16):jiki_x+=1.0 } if(k&2){ jiki_y-=2.0 if(k&16):jiki_y+=1.0 } if(k&4){ jiki_x+=2.0 if(k&16):jiki_x-=1.0 } if(k&8){ jiki_y+=2.0 if(k&16):jiki_y-=1.0 } if(k&128):end //弾の発射 if(frame\4=1){ gosub*shot_search if(number!-1){ shot_f(number) = 1.0 shot_type(number) = 1 + number\2 if(shot_type(number)==1):shot_x(number) = -8.0:else:shot_x(number) = 508.0 shot_y(number) = 0.0+rnd(500) if(shot_type(number)==1):shot_vx(number) = 1.0+rnd(2):else:shot_vx(number) = (1.0+rnd(2))*(-1.0) shot_vy(number) = 0.0 } } //弾の移動 repeat shot_max shot_x(cnt)+=shot_vx(cnt) shot_y(cnt)+=shot_vy(cnt) if(shot_x(cnt)>508.0)or(shot_x(cnt)<-8.0):shot_f(cnt) = 0.0 dx = shot_x(cnt)-jiki_x : dy = shot_y(cnt)-jiki_y dx*=dx : dy*=dy if(dx+dy<36.0):end loop //自機の描画 color 0,0,0 pos jiki_x-8,jiki_y-8 gmode 4,16,16,255 gcopy 1,0,16 //弾の描画 repeat shot_max if(shot_f(cnt)==1.0){ color 0,0,0 pos shot_x(cnt)-8,shot_y(cnt)-8 gmode 4,16,16,255 gcopy 1,0,0 } loop redraw 1 await 10 frame++ goto*main //弾番号の検索 *shot_search number = -1 repeat shot_max if(shot_f(cnt)!1.0):number = cnt:break loop return



この記事に返信する


check

リンク

2014/1/31(Fri) 23:10:57|NO.59575

評価と言われても、どういった観点で評価すればいいのか……。

取り敢えず、自機を移動させないと当たり判定が出ないというバグがある。



リュウ

リンク

2014/1/31(Fri) 23:34:11|NO.59576

すみません、評価に関してですが

弾幕の避けやすさ(難易度)
でつけてください。
皆さんはどれぐらいの弾幕までなら避けられるのかというのを
今後弾幕STGをつくる参考にしたいので。
難易度の変更は主に

if(frame\4=1)
の4の部分の数値を減らせば弾幕の密度は濃くなります。

それと、自機が移動しないとあたり判定が出ないというバグに関してですが、
こちらのスクリプトではそのバグが発見できないのですが…



リンク

2014/2/1(Sat) 00:05:23|NO.59578

自機を移動しなくても当たり判定は出るけど、
微妙に当たってるのに当たり判定が出ない場合がある。
多分それが、「自機を移動しないと当たり判定が出ない」に見えたんだと思う。
自分も最初、そう見えた。

あと、if(frame\4=1)は4の値を上げれば密度が下がるのでは?



リュウ

リンク

2014/2/1(Sat) 00:11:52|NO.59579

おそらく、微妙に当たっているのにあたり判定が出ないというのは

if(dx+dy<36.0):end
の36.0の部分だと思います。本来ならば文字は16*16の大きさなので
半径の8を2乗して64.0になるのですが、それだと見た目の通りの
判定になってしまうんです。一応、弾が大量に出るプログラムなので
見たまんま判定だと厳しいかなぁと思い、ちょっと弾のあたり判定を
小さくしました。原因はこれかと思われます。



ZAP

リンク

2014/2/1(Sat) 00:16:12|NO.59580

真横からしか飛んでこないので避けていても面白くない。
自機を狙った弾がこないと避けている気がしない。



テンクス

リンク

2014/2/1(Sat) 18:22:57|NO.59597

横から来てばっかで、面白くないし、敵が前にいるのならば横ばっか気にしてしまって前にいる敵にダメージを与えにくいきがして、難しい。
http://alienshootertenkusu.jimdo.com/
今作ってるSTGです。
よかったら参考にしてくだい。
HGIMG3を使っているのですが。



saracena

リンク

2014/2/2(Sun) 08:56:32|NO.59607

モジュールを使えば、*shot_search は不要でもっとスッキリするのでは?
shot_f を実数型にする必要もないと思いますが。



Ve

リンク

2014/2/2(Sun) 11:13:35|NO.59608

弾幕というとシューティングの方が印象が強いので、
避けゲーとしたほうが分かりやすくて良いと思う。

一番下からスタートして一番上へ目指して進むみたいな。



ミント

リンク

2014/2/2(Sun) 20:34:56|NO.59617

こんばんはー。同じくSTGを作っている者です。

東方風に言っちゃって申し訳ないけど・・・
>>弾幕の避けやすさ(難易度)
初期値の「if(frame\4=1)」だと、ノーマルって感じでいい感じの難易度。
ボス座標参照の3ウェイ(ボスが動く)か、自機狙いどちらか1つでもあると難しくできる。
「if(frame\2=1)」だとルナティックって感じ。

この弾幕は東方で言う「マミゾウ」の 【伍番勝負「鳥獣戯画」】【ワイルドカーペット】に似ている。
http://www.nicovideo.jp/watch/sm15573980
ニコニコで申し訳ない。こんな感じのだと自機狙いなどは必要ない。


ちなみに前回の質問終わっているのなら解決にしたほうがいいよ〜。
あと、お礼をしない人は回答がつきにくいからどうするかは自己判断に任せます。



MillkeyStars

リンク

2014/2/3(Mon) 00:08:08|NO.59624

前回・前々回の質問から判断するに、弾の動きに関しての評価と判断します。

弾の動きとしては、問題ないと思う。
ミントさんの提示した動画を見る限りには、リュウさんの弾軌道は良いと思う。



たんす

リンク

2014/2/3(Mon) 18:58:36|NO.59634

//弾の発射
if(shot_type(number)==1):shot_x(number) = -8.0:else:shot_x(number) = 508.0 if(shot_type(number)==1):shot_vx(number) = 1.0+rnd(2):else:shot_vx(number) = (1.0+rnd(2))*(-1.0)
ここのif条件式が同じなので、まとめられますね。



リュウ

リンク

2014/2/4(Tue) 18:29:01|NO.59660

皆様多くの感想、意見ありがとうございました^^



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