Zivot
AS _UNSIGNED _BYTE ' zivot. Nektere subjekty pujdou znicit, zalezi to na kontrolnim podprogramu, pro ktery typ to dovoli Typ
AS _UNSIGNED _BYTE ' typ. Jestli se jedna o kostku s domem, muze byt pevne stanovena velikost
Prvku = 1000
DIM SHARED posX
, posY
, imX
, imY
, Pohyb2
', WaterIMG&
imX = 1: imY = 1
'aby se vykreslovalo plynule vse, musim stanovit maximalni velikost nejvetsiho objektu v pixelech:
posX = 150
posY = 150
water WaterIMG& 'aqua
tank tankImg0&
tank1 tankImg1&
'umele naplnim pole objektu nahodnymi prvky:
X
= X
+ 150:
IF X
> 4500 THEN y
= y
+ 150: X
= 0 CASE 31 TO 40: tp
= 3 + (T
- 30)
O(R).X = X 'INT(RND + 1 * 10000)
O(R).Zivot = 100
O(R).Typ = tp 'INT(RND * 5)
O(R).Y = y 'INT(RND + 1 * 10000)
'necham vygenerovat 10 typu stromu
Tree TreeImg0&
', rndpoleY
'O(1).X = 1800: O(1).Y = 1800: O(1).Typ = 2
'kurzory pro DRAW
UP$ = "C" + Ri$ + " R4 U6 R6 H8 G8 R6 D6 BR1 BU1 P" + R$ + "," + Ri$
LFT$ = "TA90 C" + Ri$ + " R4 U6 R6 H8 G8 R6 D6 BR1 BU1 P" + R$ + "," + Ri$
DN$ = "TA180 C" + Ri$ + " R4 U6 R6 H8 G8 R6 D6 BR1 BU1 P" + R$ + "," + Ri$
RGHT$ = "TA270 C" + Ri$ + " R4 U6 R6 H8 G8 R6 D6 BR1 BU1 P" + R$ + "," + Ri$
Normal$ = "TA22 C" + Ri$ + " R4 U12 R6 H8 G8 R6 D12 BR1 BU1 P" + R$ + "," + Ri$
'vlastni vykresleni:
water WaterIMG&
' tank tankImg0&
' tank1 tankImg1&
'-------------- jeden typ posunu najetim na okraj --------------------
' IF TIMER > prodleva AND TIMER > 0 THEN
' ----------------- posun stiskem praveho tlacitka ------------------------
'---------------------------------------------------------------------------
' END IF
' END IF
IF O
(vykresli
).X
> posX
- 800 AND O
(vykresli
).X
< posX
+ 800 AND O
(vykresli
).Y
> posY
- 600 AND O
(vykresli
).Y
< posY
+ 600 THEN CASE 0: Trava O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
CASE 1:
_PUTIMAGE (O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
), WaterIMG&
, 0, (0, 0)-(150, 150) CASE 2: Trava O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
_PUTIMAGE (O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
)-(O
(vykresli
).X
- posX
+ 80, O
(vykresli
).Y
- posY
+ 50), tankImg0&
, 0, (0, 0)-(319, 199) CASE 3: Trava O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
_PUTIMAGE (O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
)-(O
(vykresli
).X
- posX
+ 80, O
(vykresli
).Y
- posY
+ 50), tankImg1&
, 0, (0, 0)-(319, 199) CASE 4 TO 13: Trava O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
_PUTIMAGE (O
(vykresli
).X
- posX
, O
(vykresli
).Y
- posY
)-(O
(vykresli
).X
- posX
+ 80, O
(vykresli
).Y
- posY
+ 50), TreeType&
(O
(vykresli
).Typ
- 3), 0, (0, 0)-(240, 320)
IF Lb
AND posX
+ mX
> O
(vykresli
).X
AND posX
+ mX
< O
(vykresli
).X
+ 24 AND posY
+ mY
> O
(vykresli
).Y
AND posY
+ mY
< O
(vykresli
).Y
+ 30 THEN PRINT O
(vykresli
).X; O
(vykresli
).Y; O
(vykresli
).Zivot; O
(vykresli
).Typ
Lb = 0
pohyb
SUB Trava
(x
, y
) 'zeleny obdelnik LINE (x
, y
)-(x
+ 150, y
+ 150), Zelena&
, BF
pruchod = pruchod + 1
pruchod = 0
sinus = sinus + .011 ' + RND / 25
SUB pohyb
'simulace pohybu jednotek - v tomto pripade to bude hnedy obdelnik, simuluje letoun ' IF TIMER MOD 2 = 0 THEN
IF pohybX
> 10000 OR pohybX
< 0 THEN imX
= imX
* -1 pohybX = pohybX + pohybMx / 10
IF pohybY
> 10000 OR pohybY
< 0 THEN imY
= imY
* -1 pohybY = pohybY + pohybMy / 10
'doplnit podminku, aby vykresleni probehlo pouze pri viditelnosti - zavislost na PosX a PosY OK
IF posX
- 150 < pohybX
AND posX
+ 800 > pohybX
AND posY
- 150 < pohybY
AND posY
+ 600 > pohybY
THEN LINE (pohybX
- posX
, pohybY
- posY
)-(pohybX
- posX
+ 25, pohybY
- posY
+ 30), _RGB32(116, 61, 0), BF
' END IF
SUB Tree
(TreeImg0&
) 'generator TREE ' CLS
LINE (72, 160 - prumer
)-(78, 200 + prumer
), 187, BF
X
= 75 + SIN(koruna
) * prumer
koef = kf / 10
Y
= 120 + COS(koruna
) * prumer
/ koef
'.5 LINE (oldX
, oldY
)-(X
, Y
), 2
G = G + 20
PAINT (60, 70), 19, 15 'vybarveni podvozku PAINT (64, 154), 19, 15 'vybarveni podvozku
OVAL 30, 100, 100, 145, 15
LINE (40, 96)-(40, 148), 166 'leva cara na tankove vezi LINE (45, 96)-(45, 148), 160 ' prava cara na tankove vezi LINE (85, 96)-(85, 148), 160 'leva cara na tankove vezi LINE (90, 96)-(90, 148), 166 ' prava cara na tankove vezi LINE (40, 95)-(55, 30), 22, BF
'delo LINE (90, 95)-(75, 30), 22, BF
'delo 2
LINE (47, 95)-(47, 30), 15 LINE (83, 95)-(83, 30), 15
podvozek Pohyb2
'------------- NAMALOVANY PODVOZEK S PASAMA ---------------------------
OVAL 50, 120, 80, 145, 15 'TANKOVA VEZ
CIRCLE (65, 132), 10, 15 'Vrchni poklop
LINE (60, 115)-(70, 40), 22, BF
'delo LINE (65, 115)-(65, 40), 20 '"odlesk" v delu / horni cara
LINE (35, PASY
+ 15)-(45, PASY
), CL
, BF
'LEVY PAS LINE (85, PASY
+ 15)-(95, PASY
), CL
, BF
'PRAVY PAS OVAL 40, 60, 90, 160, 15
OVAL 45, 65, 85, 155, 15
SUB OVAL
(x1
, y1
, x2
, y2
, BARVA
)
CIRCLE (x1
+ 10, y1
+ 5), 10, BARVA
, 1.5, 3.1 ' levy horni oblouk CIRCLE (x2
- 10, y1
+ 5), 10, BARVA
, 6.2, 1.5 ' pravy horni oblouk CIRCLE (x1
+ 10, y2
- 5), 10, BARVA
, 3, 4.8 ' levy spodni oblouk CIRCLE (x2
- 10, y2
- 5), 10, BARVA
, 4.7, .2 'pravy spodni roh
LINE (x1
+ 7, y1
- 5)-(x2
- 7, y1
- 5), BARVA
'horni cara LINE (x1
, y1
+ 5)-(x1
, y2
- 5), BARVA
'leva strana LINE (x1
+ 7, y2
+ 5)-(x2
- 7, y2
+ 5), BARVA
'spodni cara LINE (x2
, y2
- 5)-(x2
, y1
+ 5), BARVA
'prava strana