HSP | 弾幕っぽいもの

HSP | 弾幕っぽいもの

前回の改良版です。デザインが若干向上したのと、バグをいくつか直しました。
・安全地帯消した
・一番下 or 一番右だとまったくあたらなかった。あたり判定をちゃんとした。(なってないけど変えた)
・弾幕の発生のさせ方が一部ミス?
・カスリ判定追加
・得点が入る。(画面の上ほど高得点が入る。一番下でも最低限は得点入る。)

title "ケルパニ弾幕"

dim id,1024
dim x,1024
dim y,1024
ddim kakudo,1024
kakudo2=0.0
speed=3,4

my_x=320
my_y=420

enemy_x=320
enemy_y=240

dead=0

waitcount=4

*top
redraw 0
getkey gkey,'Z'
if gkey=1 : goto *main
color 255,255,255 : boxf
color : pos 0,0
font "MS Pゴシック",30 : mes "[Z]キーでスタート"
redraw
await 50
goto *top

*main
redraw 0
stick key,15
if key&1 : my_x-6 : if my_x<0 : my_x=0
if key&2 : my_y-6 : if my_y<0 : my_y=0
if key&4 : my_x+6 : if my_x>=640 : my_x=639
if key&8 : my_y+6 : if my_y>=480 : my_y=479
color 255,255,255 : boxf
color 90,97,82 : circle enemy_x-12,enemy_y-12,enemy_x+12,enemy_y+12
color ,255 : circle enemy_x-10,enemy_y-10,enemy_x+10,enemy_y+10
if timer>199 & timer\200=0 {
speed(0)=int(1.333333333*speed(0))
speed(1)=int(1.333333333*speed(1))
waitcount=int(0.76*waitcount) : if waitcount=0 : waitcount=1
}
repeat 1024
if id(cnt)>0 {
color ,,255 : circle x(cnt)-5,y(cnt)-5,x(cnt)+5,y(cnt)+5
color ,255,255 : circle x(cnt)-3,y(cnt)-3,x(cnt)+3,y(cnt)+3
if id(cnt)=1 : kakudo(cnt)-atan(speed(id(cnt)-1), sqrt((x(cnt)-320)*(x(cnt)-320)+(y(cnt)-240)*(y(cnt)-240)) )/2
x(cnt)+=cos(kakudo(cnt))*speed(id(cnt)-1)
y(cnt)+=sin(kakudo(cnt))*speed(id(cnt)-1)
if sqrt((my_x-x(cnt))*(my_x-x(cnt))+(my_y-y(cnt))*(my_y-y(cnt)))<=10 : graze+=1 : score+3
if sqrt((my_x-x(cnt))*(my_x-x(cnt))+(my_y-y(cnt))*(my_y-y(cnt)))<=5 : dead=1
if x(cnt)<-30 | 670<x(cnt) | y(cnt)<-30 | 510<y(cnt) : id(cnt)=0
}
loop
if dead=1 : dialog "ピチューン",,"ゲームオーバー" : end
color 255 : circle my_x-5,my_y-5,my_x+5,my_y+5
score+500*(480-my_y)/480
if timer\waitcount=0 {
repeat 1024
if id(cnt)=0 {
if 0<=count & count<=9 {
id(cnt)=1
x(cnt)=320.0+cos(M_PI*2*count/10+kakudo2)*12
y(cnt)=240.0+sin(M_PI*2*count/10+kakudo2)*12
kakudo(cnt)=M_PI*2*count/10+kakudo2
}
if 10<=count & count<=19 {
id(cnt)=2
x(cnt)=64.0*(count-10)
y(cnt)=0.0
kakudo(cnt)=M_PI/2
}
count+
if count=20 : break
}
loop
kakudo2+=0.05
count=0
}
timer+
title "Score : "+score+"   Graze : "+graze
redraw
await 50
goto *main

あたり判定、前回のpgetでやるとかいうふざけたのはやめましたが、でも、弾のスピード上がるとこの方法だと衝突しないのでもうちょっとちゃんとしなければなりません…。

あと、適当に弾のスピードがだんだん上がっていくようにしたため、スピード上がると隙間が狭くなってしまいます。(隙間変わらないように作りたかったのだが…)
あと、敵とのあたり判定ありません。
玉が増えすぎたときに上限の1024個超えて上から降ってくる玉が消えます。
↓誰かクリックお願いします~。


「HSP | 弾幕っぽいもの」への2件のフィードバック

  1. はい、自分でも思いましたw
    でもまあまだまだ造りかけなので、いつかは絶対つけます。
    いつもすごいものを作ろうとしてできなくてそのまま言っちゃったりするんでこれは少しづつ頑張っていきたいと思います。

コメントは受け付けていません。