Ну шо, таки допилил Онимацию, теперь почти настоящий боудер получился :)
https://i.postimg.cc/TP6XsWys/1.gif
Как обычно сырки:
boulder.mfk:
блок спрайтов без измененийКод:import stdio
import sprites
array titleStr = "Boulder Dash ]["
array(byte) heroSpr0a = [0,$24,$3c,$5a,$5a,$3c,$18,$3c,$42,$18,0,$18,0]
array(byte) heroSpr0b = [0,$24,$3c,$7e,$5a,$3c,$18,$3c,$42,$18,0,$18,0]
array(byte) heroSpr0c = [0,$24,$3c,$7e,$7e,$3c,$18,$3c,$42,$18,0,$18,0]
array(byte) heroSpr1a = [0,$18,$42,$18,0,$18,0,0,$66,0]
array(byte) heroSpr1b = [0,$18,$24,$18,0,$18,0,0,$66,0]
array(byte) heroSpr1c = [0,$18,$24,$18,0,$18,0,$60,$06,0]
array(byte) heroSpr2a = [0,$24,$24,$24,0]
array(byte) heroSpr2b = [0,$24,$24,$04,0]
array(pointer) aFrames0 = [
heroSpr0a, heroSpr0b, heroSpr0c,
heroSpr0a, heroSpr0b, heroSpr0c,
heroSpr0a, heroSpr0b, heroSpr0c,
heroSpr0a, heroSpr0a, heroSpr0a, heroSpr0a,
heroSpr0a, heroSpr0a, heroSpr0a, heroSpr0a,
heroSpr0a, heroSpr0a, heroSpr0a, heroSpr0a
]
array(pointer) aFrames1 = [
heroSpr1a, heroSpr1a, heroSpr1a,
heroSpr1a, heroSpr1a, heroSpr1a,
heroSpr1a, heroSpr1a, heroSpr1a,
heroSpr1b, heroSpr1c, heroSpr1b, heroSpr1c,
heroSpr1b, heroSpr1c, heroSpr1b, heroSpr1c,
heroSpr1b, heroSpr1c, heroSpr1b, heroSpr1c
]
array(pointer) aFrames2 = [
heroSpr2a, heroSpr2a, heroSpr2a,
heroSpr2a, heroSpr2a, heroSpr2a,
heroSpr2a, heroSpr2a, heroSpr2a,
heroSpr2a, heroSpr2b, heroSpr2a, heroSpr2b,
heroSpr2a, heroSpr2b, heroSpr2a, heroSpr2b,
heroSpr2a, heroSpr2b, heroSpr2a, heroSpr2b
]
array(byte) aTime = [
150, 3, 3,
150, 3, 3,
150, 3, 3,
10, 10, 10, 10,
10, 10, 10, 10,
10, 10, 10, 10
]
byte color0 = $56
byte color1 = $0e
byte color2 = $c6
noinline asm void wait(byte register(a) f) {
clc
adc os_RTCLOK.b2
.rt_check:
cmp os_RTCLOK.b2
bne .rt_check
rts
}
void printAt(byte x, byte y, byte i) {
poke(84, y)
poke(85, x)
putword(i)
putstrz(" "z)
}
void main() {
byte pX
byte pY
byte joy
byte posFrame
byte curTime
word curFrame0
word curFrame1
word curFrame2
sprInit()
putstr(titleStr , titleStr.length)
new_line()
putstrz("Use JoyStick, LOOK!"z)
new_line()
pX = 120
pY = 116
putstrz("PosX: "z)
putword(pX)
new_line()
putstrz("PosY: "z)
putword(pY)
new_line()
joy = peek(632)
putstrz("JoyStick: "z)
putword(joy)
posFrame = 0
curTime = aTime[posFrame]
curFrame0 = aFrames0[posFrame]
curFrame1 = aFrames1[posFrame]
curFrame2 = aFrames2[posFrame]
sprShow(0, curFrame0, heroSpr0a.length, color0, pX, pY)
sprShow(1, curFrame1, heroSpr1a.length, color1, pX, pY+7)
sprShow(2, curFrame2, heroSpr2a.length, color2, pX, pY+11)
while (true) {
wait(1)
joy = peek(632)
if (joy == 11 || joy == 10 || joy == 9) {
pX -= 1
} else if (joy == 7 || joy == 6 || joy == 5) {
pX += 1
}
if (joy == 14 || joy == 10 || joy == 6) {
pY -= 1
} else if (joy == 13 || joy == 9 || joy == 5) {
pY += 1
}
if (joy != 15) {
sprShow(0, curFrame0, heroSpr0a.length, color0, pX, pY)
sprShow(1, curFrame1, heroSpr1a.length, color1, pX, pY+7)
sprShow(2, curFrame2, heroSpr2a.length, color2, pX, pY+11)
printAt(8, 2, pX)
printAt(8, 3, pY)
printAt(12, 4, joy)
} else {
printAt(12, 4, joy)
}
curTime -= 1
if (curTime == 0) {
posFrame += 1
if (posFrame == aTime.length) {
posFrame = 0
}
curTime = aTime[posFrame]
curFrame0 = aFrames0[posFrame]
curFrame1 = aFrames1[posFrame]
curFrame2 = aFrames2[posFrame]
sprShow(0, curFrame0, heroSpr0a.length, color0, pX, pY)
sprShow(1, curFrame1, heroSpr1a.length, color1, pX, pY+7)
sprShow(2, curFrame2, heroSpr2a.length, color2, pX, pY+11)
}
}
}

