title "スカッシュゲーム(Ver.1.0) By Takumitsu" ;2001/2/25 初版 ;変数 ; @xmin x座標最小値 ; @xmax x座標最大値 ; @y パドル上端位置 ; @bsize ボールの大きさ ; @gamex ゲーム領域(横) ; @gamey ゲーム領域(縦) ; @bf ボールフラグ(0=ボール無し、1=有り) ; @r 乱数 ; @bx ボールx座標 ; @by ボールy座標 ; @bxx @bx前回値 ; @byy @by前回値 ; @dy ボールy増分数 ; @dx ボールx増分数 ; @x マウスx座標、パドル左端位置 ; @xx @x保存 ; @count 点数 ; @high ハイスコアー ; @wait 待ち時間 ; @level レベル screen 0,600,480,0 cls 4 randomize sndload "hit.wav",1,0 @xmin=0:@xmax=winx-100 @y=350:@bsize=8 @gamex=winx-@bsize:@gamey=winy-(40-@bsize-@dy) @high=0 *mainlp gosub *ballmove gosub *ballput gosub *memove gosub *newball await @wait goto *mainlp ;ボールの発生 *newball if @bf!0:return rnd @r,400 @bx=50+@r rnd @r,4 @dy=5+@r @by=1:@dx=5:@bf=1 @count=-1 gosub *score return ;ボールの移動 *ballmove if @bf=0:return @bx=@bx+@dx if @bx<0:@bx=0:@dx=0-@dx:snd 1 if @bx>@gamex:@bx=@gamex:@dx=0-@dx:snd 1 @byy=@by @by=@by+@dy @hf=0 if @by<0:@by=0:@dy=0-@dy:snd 1 if (@byy<@y)&(@by>=@y):goto *rcheck if @by>@gamey:@bf=0 return ;ラケットチェック *rcheck if @bx<(@x-@bsize):return if @bx>(@x+100):return @by=350:@dy=0-@dy:@hit=1:snd 1:gosub *score return ;ボール表示 *ballput if @bf=0:return color 0,0,0 boxf @bxx,@byy,@bxx+@bsize,@byy+@bsize color 255,255,255 boxf @bx,@by,@bx+@bsize,@by+@bsize @bxx=@bx:@byy=@by return ;パドルの移動 *memove @x=mousex if @x<@xmin:@x=@xmin if @x>@xmax:@x=@xmax if @xx!@x { color 0,0,0 boxf @xx,@y,@xx+100,@y+10 } color 100,100,255 boxf @x,@y,@x+100,@y+10 @xx=@x return ;点数 *score color 0,255,0 boxf 0,winy-40,winx,winy font "",20 if @count>=@high:@high=@high+1 @count=@count+1 color 255,0,255 pos 10,winy-35 mes "Score" pos 80,winy-35 mes @count color 255,0,0 pos 150,winy-35 mes "Hight Score" pos 270,winy-35 mes @high @wait=20-(@count/10) @level=20-@wait+1 if @wait<5:@wait=5:@level="Max" color 255,100,0 pos 350,winy-35 mes "Level" pos 420,winy-35 mes @level return