mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-02-03 22:35:52 +00:00
New HGR sprite shoot-em up demo
This commit is contained in:
parent
b6a7b72fe1
commit
41071de12f
1
src/samplesrc/sfm.pla
Normal file
1
src/samplesrc/sfm.pla
Normal file
@ -0,0 +1 @@
|
||||
include "inc/cmdsys.plh"
include "inc/hgrlib.plh"
include "inc/hgrsprite.plh"
include "inc/lines.plh"
include "inc/joybuzz.plh"
sysflags reshgr1|reshgr2 // Reserve HGR page 1 and 2
byte egg = $88,$83,$33,$33,$38,$88
byte = $88,$33,$11,$11,$33,$88
byte = $83,$31,$11,$11,$13,$38
byte = $33,$11,$11,$11,$11,$33
byte = $33,$11,$11,$11,$11,$33
byte = $33,$11,$11,$11,$11,$33
byte = $33,$11,$11,$11,$11,$33
byte = $83,$31,$11,$11,$13,$38
byte = $88,$33,$11,$11,$33,$88
byte = $88,$83,$33,$33,$38,$88
byte dummy = $88,$88,$88,$88
byte = $88,$88,$88,$88
byte = $88,$88,$88,$88
byte = $88,$88,$88,$88
byte = $88,$88,$88,$88
byte = $88,$88,$88,$88
byte = $88,$88,$88,$88
byte = $88,$88,$88,$88
byte ship = $CC,$CC,$CC,$77,$CC,$CC,$CC
byte = $CC,$CC,$C7,$77,$7C,$CC,$CC
byte = $CC,$CC,$C7,$77,$7C,$CC,$CC
byte = $CC,$CC,$C7,$77,$7C,$CC,$CC
byte = $CC,$CC,$C7,$77,$7C,$CC,$CC
byte = $77,$CC,$77,$66,$77,$CC,$77
byte = $77,$CC,$77,$66,$77,$CC,$77
byte = $77,$CC,$77,$66,$77,$CC,$77
byte = $77,$CC,$77,$77,$77,$CC,$77
byte = $77,$CC,$77,$77,$77,$CC,$77
byte = $77,$CC,$77,$77,$77,$CC,$77
byte = $77,$C7,$77,$77,$77,$7C,$77
byte = $77,$77,$77,$77,$77,$77,$77
byte = $77,$77,$75,$55,$57,$77,$77
byte missle = $CC,$55,$CC
byte = $CC,$55,$CC
byte = $CC,$55,$CC
byte = $CC,$55,$CC
byte = $CC,$55,$CC
byte = $CC,$55,$CC
byte = $C5,$55,$5C
byte = $55,$55,$55
var sprtEgg, sprtShip, sprtMissle, sprtDummy
def moire#0
var i
setlinespans(@hgrHlin, @hgrVlin)
setlineplot(@hgrXorPlot)
hgrColor(7)
for i = 0 to 191 step 8
linespans(0, i, 279, 191 - i)
next
for i = 0 to 279 step 9
linespans(i, 0, 279 - i, 191)
next
end
def game(eggnum)#0
var[14] xegg, yegg, ixegg, iyegg
var xship, xmissle
byte yship, ymissle
byte k, xdelta, ydelta, btn0, btn1
xship = 140
ymissle = 255
xegg[0] = 100
ixegg[0] = 1
yegg[0] = 60
iyegg[0] = -1
for k = 1 to 13
xegg[k] = ((xegg[k - 1] ^ 37) + 97) & 255
ixegg[k] = -ixegg[k - 1]
yegg[k] = ((yegg[k - 1] ^ 29) + 53) & 63
iyegg[k] = -iyegg[k - 1]
next
repeat
for k = 0 to 13
if yegg[k] <> 255
xegg[k] = xegg[k] + ixegg[k]
if xegg[k] < -5 or xegg[k] > 284
ixegg[k] = -ixegg[k]
fin
yegg[k] = yegg[k] + iyegg[k]
if yegg[k] < -5 or yegg[k] > 64
iyegg[k] = -iyegg[k]
fin
spritePosIndex(xegg[k], yegg[k], k+2)
fin
next
xdelta, ydelta, btn0, btn1 = joypos(ymissle/4)
xship = xship + (xdelta / 4 - 10)
if xship < 0; xship = 0; fin
if xship > 279; xship = 279; fin
if btn0 and ymissle == 255
spriteAdd(1, sprtMissle)
xmissle = xship
ymissle = 172
fin
if ymissle <> 255
if ymissle < 8
spriteDel(1)
ymissle = 255
else
ymissle = ymissle - 8
spritePosIndex(xmissle, ymissle, 1)
for k = 0 to 13
if yegg[k] <> 255
if ymissle >= yegg[k] - 5 and ymissle <= yegg[k] + 5
if xmissle >= xegg[k] - 5 and xmissle <= xegg[k] + 5
//
// Hit
//
yegg[k] = 255
ymissle = 255
spriteAdd(k + 2, spriteDup(sprtDummy))
spritePosIndex(0, 0, k + 2)
spriteDel(1)
fin
fin
fin
next
fin
fin
spritePosIndex(xship, 190, 0)
spriteDrawList()
spriteDrawBuf(hgrSwap())
until ^$C000 > 127
end
hgrMode
spriteDrawBuf(hgrDrawBuf(0)) // So we can see the compile process
sprtShip = spriteCompile(14, 14, 7, 13, @ship)
sprtMissle = spriteCompile( 6, 8, 3, 0, @missle)
sprtEgg = spriteCompile(12, 10, 6, 5, @egg)
sprtDummy = spriteCompile( 7, 8, 0, 0, @dummy)
hgrColor(8)
hgrClear()
moire
memcpy($4000, $2000, $2000) // Copy to both buffers
spriteDrawBuf(hgrDrawBuf(1))
spriteAdd(0, sprtShip)
spriteAdd(2, sprtEgg)
spriteAdd(3, spriteDup(sprtEgg))
spriteAdd(4, spriteDup(sprtEgg))
spriteAdd(5, spriteDup(sprtEgg))
spriteAdd(6, spriteDup(sprtEgg))
spriteAdd(7, spriteDup(sprtEgg))
spriteAdd(8, spriteDup(sprtEgg))
spriteAdd(9, spriteDup(sprtEgg))
spriteAdd(10, spriteDup(sprtEgg))
spriteAdd(11, spriteDup(sprtEgg))
spriteAdd(12, spriteDup(sprtEgg))
spriteAdd(13, spriteDup(sprtEgg))
spriteAdd(14, spriteDup(sprtEgg))
spriteAdd(15, spriteDup(sprtEgg))
game(14)
getc
txtMode
done
|
Loading…
x
Reference in New Issue
Block a user