Tossa alla Blitz3D syntaksia.
Järjen mukaan koodin pitäisi piirtää 11x15 kokoinen palikka-alue mutta neljälle ylimmälle riville ei tule kuin ensimmäinen pala.
Kuka hoksaa missä vika?
gmode=GfxModeExists(800,600,32)
If gmode<>1 Then
Print"Your graphicsadapter does NOT support"
Print"video mode 800x600 with 32 bit color depth."
Print"Press esc to exit."
While Not KeyHit(1)
Wend
End
End If
Graphics 800,600,16,1
VWait(50)
Global gfxLeft=LoadImage("gfx\hleft.png")
Global gfxRight=LoadImage("gfx\hright.png")
Global gfxUp=LoadImage("gfx\huppalkki.png")
Global gfxPanel=LoadImage("gfx\panel.png")
Global gfxBack=LoadImage("gfx\back.png")
Global gfxMaila64=LoadImage("gfx\maila64.png")
Global gfxBall=LoadImage("gfx\ball.png")
Global gfxBrick=LoadImage("gfx\bricks.png")
Global gfxFont=LoadAnimImage("gfx\fonts.png",20,24,0,47)
MaskImage gfxBall,0,66,0
Dim MCOS#(360)
Dim MSIN#(360)
SeedRnd MilliSecs()
Dim BrickOn%(11,15)
Dim BrickType%(11,15)
Dim BrickLx%(11,15)
Dim BrickLy%(11,15)
SetBuffer BackBuffer()
AlustaAlue()
While KeyHit(1)=0
Draw()
DrawBricks()
Flip
Wend
FreeGfx()
End
Function FreeGfx()
FreeImage(gfxLeft)
FreeImage(gfxRight)
FreeImage(gfxUp)
FreeImage(gfxPanel)
FreeImage(gfxBack)
FreeImage(gfxMaila64)
FreeImage(gfxBall)
FreeImage(gfxBrick)
End Function
Function AlustaAlue()
gy%=34
gx%=232
For y%=0 To 14
gx=232
For x%=0 To 10
BrickLx(y,x)=gx
BrickLy(y,x)=gy
BrickType(y,x)=3
BrickOn(y,x)=1
gx=gx+48
Next
gy=gy+26
Next
End Function
Function DrawBricks()
For y%=0 To 14
For x%=0 To 10
If BrickOn(y,x)=1 Then DrawImageRect (gfxBrick,BrickLx(y,x),BrickLy(y,x),BrickType(y,x)*46,0,45,23)
Next
Next
End Function
Function Draw()
DrawBlock gfxPanel,0,0
DrawBlockRect gfxLeft,192,0,leftflash*32,0,32,600
DrawBlockRect gfxUp,224,0,0,upflash*32,544,32
DrawBlockRect gfxRight,768,0,rightflash*32,0,32,600
DrawBlock gfxBack,224,32
flashspeed=flashspeed+1
If (flashspeed>14) Then
leftflash=leftflash+1
If leftflash=2 Or leftflash>3 Then leftflash=0
rightflash=rightflash+1
If rightflash=2 Or rightflash>3 Then rightflash=0
upflash=upflash+1
If upflash=2 Or upflash>3 Then upflash=0
flashspeed=0
End If
End FunctionMod. korjasi kooditagit!
Ainakin taulukkosi ulottuvuudet ovat väärin: taulukon määrittelyssä lukee (11, 15), kuitenkin kaikki silmukat menevät kohtaan (14, 10) eivätkä (10, 14). Ei vaikuta myöskään kovin fiksulta laskea arvoja BrickLx ja BrickLy taulukoihin noin, kun ne voisi aivan hyvin (ja olisi loogisempaa ja nopeampaakin) laskea aina piirtovaiheessa eli DrawImageRect-rivillä.
Kiitos,sain toimimaan. Miten en huomaa itse noin itsestään selvää vikaa. No pääsen jatkamaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.