This week's SmileBASIC game is currently an incredibly bland looking Space Invaders clone.
-=-=-
I coded the majority of the game in a couple of hours, last night.
You. Enemy. Bullets. Bangs. Background. Stars. Player Two. Job done.
I've even balanced the baddies weapons enough to make a decent enough game.
*shrugs*
It is what it is, I guess.
I'd love to be able to add something interesting into the mix, but .. My mind's gone completely blank at this point.
Too much coding, perhaps?!
Maybe.
I also can't think of anything interesting to do for the LowRezJam other than the obvious SpikeDislike in 64x64 pixels.
Bah, humbug.
Maybe I need to have a retro gaming session, and pinch some fresh/old ideas for a bit...?
Yeah, I might go and do that.
To the GPDxd!!
// SpikeDislike 64x64
// by Jayenkai
// Created 2021/4/13, tweaked 2014/8/1
Symbol 0,"0__20!203044030,30030,404404004044040,30030,304403020!2";
Symbol 1,"0__0_0_0AA0?A9BB0.ABBC0?BC";
Symbol 2,"0__0_0_40040?440!440?4004";
Border 30,30,80
Graphics 64,64, 3
// Where 0 is tiny
// 1 is scaled mathematically
// 2 is also scaled mathematically, but made to fit your screen better
// 3 is pixel scaled
AA Off
SetFont "Cabaret"
Dim Spike(20)
Dim SpikePos(20)
Dim BallGhost(50)
Dim flies(10,10)
FlyTo=0
Highscore=0
if FileExists==1
LoadFile
Highscore=ReadFile(1)
endif
Gosub Restart
Repeat
Button=Gamepad(ButtonA) or Gamepad(ButtonB) or Gamepad(ButtonRight)>0 or MouseDown()
if Button==0 then bdis=0
If Ingame==0 then Gosub Menu
If Ingame==1 then Gosub Game
Flip
Forever
@Menu
SetFont "ZX"
JMStop
if Score>Highscore then Highscore=Score:WriteFile 1,Highscore:SaveFile
ResetDraw
DrawImg ScreenWidth*0.5,ScreenHeight*0.5,0,0
ResetDraw
SetFontSize 8
SetCol 0,96,0
Rect 0,(ScreenHeight()-6),ScreenWidth(),6
SetCol 80,40,0
Rect 0,(ScreenHeight()-4),ScreenWidth(),4
SetCol 255,255,255
Text ScreenWidth()*0.5,ScreenHeight()-3,Highscore,1
if Button==1 and bdis==0 then Gosub Restart
Return
@Restart
Passed=0
Score=0
Combo=0
ComboTick=0
SuperCombo=0
Gap=360
Speed=0.6
Bounce=3.5
BounceRot=0
SpikesMade=0
BNoise=0
Delta=1
SpikeScroll=640
Ingame=1
bdis=1
For n=0 to 10
SeedRnd SpikesMade
Spike(n)=Rand(0,7)
SpikesMade=SpikesMade+1
SpikePos(n)=SpikesMade
flies(n,0)=0
next
flyto=0
JMTrackr 120,"C16E16G16<C16>C16E16G16<C16>C16E16G16<C16C32r32>G32r32E32r32G32r32C16E16G16<C16>C16E16G16<C16>C16E16G16<C16C8r8|>G8r16<C16r4>G8r16<C16r4G8r16E16r4C8r16E16r4|r8E16E16r4r8G16G16r4r8E16E16C16r4r16C16E16C16r16>G16r16|r8C16E16G16r16A16G16E16r2r16C16E16G16E16C16r2r16|r1|[d]|C8G+8C8G+8C8G+8C8G+8C8G+8C8G+8C8G+8C16G+8G+16|C8G+8D8G+16D16C8G+8D8G+8C8G+8D8G+16D16C16D16C16G+16D8D16D16|C4C4C4C4C4C4C4C8C8|r1|"
return
@Game
CLS;ResetDraw
if Button<0.5 then SuperCombo=0
dx=0
if Button>0.5 and bdis==0 then dx=Neg(-16)
SpikeScroll=SpikeScroll+dx
SetRot 0
was=Abs(Sin(BounceRot) * (32))
BounceRot=BounceRot+(Bounce*Delta)
is=Abs(Sin(BounceRot) * (32))
if is<was then BNoise=0
if is>was and BNoise==0 then PlaySFX("Beeper_Jingle_Up",1):BNoise=1
dead=0
ComboTick=ComboTick-2.5
if ComboTick<0 and Combo>0 then
PlaySFX("Beeper_2tone_Down"):Combo=0:SuperCombo=0
endif
//endif
SetAlpha 0.5
SetCol 100,250,100
if ComboTick>0 then Rect ScreenWidth/2,4,Floor(ComboTick*0.2),4,1
SetAlpha 1
SetCol 0,96,0
Rect 0,(ScreenHeight()-6),ScreenWidth(),6
SetCol 80,40,0
Rect 0,(ScreenHeight()-4),ScreenWidth(),4
SetSize 0.25
for n=0 to 18
BallGhost(n)=BallGhost(n+1)+dx*0.1
BallGhost(n+30)=BallGhost(n+31)
if n % 2==0
SetAlpha n/30
DrawImg Floor(BallGhost(n)),Floor(BallGhost(n+30)),1,0;
endif
next
SetAlpha 1
DrawImg 4,Floor((ScreenHeight()-6)-is),1,0;
px=4;py=((ScreenHeight()-6)-is);
BallGhost(19)=px:BallGhost(49)=py;
if SpikeScroll<0-Gap
For n=0 to 10
h=Spike(n+1)
Spike(n)=h
h=SpikePos(n+1)
SpikePos(n)=h
Next
SeedRnd SpikesMade
Spike(10)=Rand(0,7)
SpikesMade=SpikesMade+1
SpikePos(10)=SpikesMade
SpikeScroll=SpikeScroll+Gap
endif
SetSize 0.25
// Draw Spikes
For n=0 to 10
x=((Gap*n)+SpikeScroll)*0.1
h=Spike(n)
y=(ScreenHeight()-9)-(h*4)
DrawImg(Floor(x),Floor(y),2,h)
h=SpikePos(n);
d=Pyth(x,y,px,py)
if d<4 then dead=1
if x<74 and h>Passed then
Passed=h
if h>2 then
Combo=Combo+1
ComboTick=160
SuperCombo=SuperCombo+1
Score=Score+(Combo*SuperCombo)
pitch=((Combo)/20)+1
if SuperCombo<2 then PlaySFX("beeper_2tone_up",pitch)
if SuperCombo>1 then PlaySFX("beeper_4tone_up",pitch)
endif
endif
Next
ResetDraw:SetFont "CPC"
SetFontSize 8
Text ScreenWidth()/2,5,Score,1
If dead==1 then bdis=1:Ingame=0:PlaySFX("Explode_Low_1"):PlaySFX("Explode_Low_2"):PlaySFX("Beeper_Fall",1.2,1):PlaySFX("Beeper_Fall",0.7,1)
Return