Lisää bugeja: animoidut objektit eivät tunnu toimivan, jos animaatio on jaettu usealle riville. Ensimmäisen rivin framet näkyvät oikein, mutta seuraaville riveille Y-sijainti heittää (esim. ukon pää on kuvan alareunassa ja ylemmän rivin jalat näkyvät sen päällä). Animoidut kuvat sekä yksiriviset animaatiot toimivat normaalisti.
Abs ei näytä toimivan, ja CenterText kaataa syystä tai toisesta seuraavan ohjelman. En onnistunut jälkimmäistä pienellä koodimäärällä tuottamaan uudelleen joten tässä on pelin koodi (joskus muinoin tekemäni peli):
Code: Select all
Include "cbE.cb"
FrameLimit 50
SCREEN 500, 500
Type Ball
Field Size#
Field X#
Field Y#
Field VelX#
Field VelY#
Field ColR
Field ColG
Field ColB
End Type
Const DefSize = 7
Const MaxSize = 110
FontBig = LoadFont("Impact", 40)
FontSmall = LoadFont("Impact", 18)
Game:
Level + 1
For i = 1 To level * 15
nBall.Ball = New(Ball)
nBall\Size = DefSize
nBall\X = Rand(500)
nBall\Y = Rand(500)
A = Rand(259) : P# = Rnd(.5, 3)
nBall\VelX = Cos(A)*P#
nBall\VelY = Sin(A)*P#
nBall\ColR = Rand(50, 255) : nBall\ColG = Rand(50, 255) : nBall\ColB = Rand(50, 255)
Next i
SetWindow "ChainBoom - level "+Level
ClsGamma = 255
Frame = 0
Repeat
Frame + 1
BallCount = 0
For iBall.Ball = Each Ball
If Not (iBall\ColR = 200 And iBall\ColG = 200 And iBall\ColB = 200) Then BallCount + 1
iBall\X = iBall\X + iBall\VelX
iBall\Y = iBall\Y + iBall\VelY
If iBall\X > 500 Or iBall\X < 0 Then iBall\VelX = -iBall\VelX
If iBall\Y > 500 Or iBall\Y < 0 Then iBall\VelY = -iBall\VelY
Color iBall\ColR, iBall\ColG, iBall\ColB
cbeColor(iBall\ColR, iBall\ColG, iBall\ColB, 192)
If iBall\Size => DefSize Then
Circle iBall\X - iBall\Size/2, iBall\Y - iBall\Size/2, iBall\Size,1
Else
Circle iBall\X - (MaxSize + iBall\Size)/2, iBall\Y - (MaxSize + iBall\Size)/2, (MaxSize + iBall\Size),1
EndIf
If iBall\Size > DefSize Then
If iBall\Size < MaxSize Then iBall\Size = CurveValue(MaxSize, iBall\Size, 10)
ElseIf iBall\Size = DefSize Then
For aBall.Ball = Each Ball
If aBall <> iBall And aBall\Size <> DefSize Then
Size = (iBall\Size + aBall\Size)/2
If aBall\Size =< 0 Then Size = (iBall\Size + (MaxSize + aBall\Size))/2
If Distance(iBall\X, iBall\Y, aBall\X, aBall\Y) < Size Then
iBall\Size = DefSize + 1
iBall\VelX = iBall\VelX*.3
iBall\VelY = iBall\VelY*.3
ClsGamma = Min(ClsGamma + 15, 255)
Exit
EndIf
EndIf
Next aBall
EndIf
If Int(iBall\Size) => MaxSize Then
iBall\Size = 0
ElseIf iBall\Size =< 0 Then
iBall\Size - 1
EndIf
If iBall\Size =<-MaxSize
Delete iBall
EndIf
Next iBall
If MouseHit(1) Then
nBall.Ball = New(Ball)
nBall\Size = DefSize+1
nBall\X = MouseX()
nBall\Y = MouseY()
nBall\ColR = 200 : nBall\ColG = 200 : nBall\ColB = 200
Clicks + 1
End If
SetFont FontSmall
Color 255,255,255
Text 1, 1, "Balls left: " + BallCount
Text 1, 16, "Clicks: " + Clicks
'Text 1, 31, FPS()
If Frame < 100 Then
SetFont FontBig
Gamma = 255 - Abs(250 - (Frame * 5))
Print "Gamma raw: " + Gamma
Gamma = Max(0, Min(255, Gamma))
Print "Gamma final: " + Gamma
Color Gamma, Gamma, Gamma
Print "Color changed."
CenterText 250, 250, "Level " + Level, 2 //TÄSSÄ KAATUU..............
EndIf
If BallCount > 1 Then ClsGamma = CurveValue(0, ClsGamma, 20) Else ClsGamma = CurveValue(255, ClsGamma, 20)
ClsColor ClsGamma, ClsGamma, ClsGamma
DrawScreen
Until BallCount = 0
If level < 5 Then Goto Game
ClsColor 255,255,255
Cls
Color 0,0,0
SetFont FontBig
CenterText 250, 200, "You won!"
CenterText 250, 300, "Clicks: " + Clicks
SetFont FontSmall
CenterText 250, 470, "Press any key to quit"
DrawScreen
WaitKey
Kaatuu rivin 105 kohdalla. Myöskään taustaväri ei näytä vaihtuvan.
cbE ei tunnista kaikkia samoja Windowsin mukana tulleita fontteja, esim. fixedsys ei löydy. Vai pitääkö fontin olla ttf-muodossa?