loadtiles tiles,8,256 LoadTiles bulletData,1,264 palettes palette0,0,0,16 palettes palette1,1,0,16 tank=addsprite(2,2) propsprite tank,256,0 tank_x=280 tank_y=232 Body=0 'Zagotovka spryta puli sozdana spryatana za ekranom bullet1=AddSprite(1,1) PropSprite bullet1,264,0 MoveSprite bullet1,0,480 bullet_1=0 'Zagotovka spryta vraga sozdana raspolagaetsya randomno v ramkah ekrana Enemy1=AddSprite(2,2) PropSprite Enemy1,256,1 MoveSprite Enemy1,128+RND(304),128+RND(112) Enemy_1=10 '10 popadaniy on vblank gosub main enable interrupt vblank end main: j=joypad(0) x=j.3-j.2 y=j.1-j.0 if x then tank_x+=x propsprite tank,260+hfliptile(j.2),0 elseif y then tank_y+=y propsprite tank,256+vfliptile(j.1),0 endif movesprite tank,tank_x,tank_y If j.6 and bullet_1=0 Then If Body=0 Then 'Pulya poyavlyaetsya vverhu MoveSprite bullet1,SpritePosX(tank)+8,SpritePosY(tank) bullet_1=1 ElseIf Body=1 Then 'Pulya poyavlyaetsya vnuzu MoveSprite bullet1,SpritePosX(tank)+8,SpritePosY(tank)+16 bullet_1=2 ElseIf Body=2 Then 'Pulya poyavlyaetsya slevo MoveSprite bullet1,SpritePosX(tank),SpritePosY(tank)+8 bullet_1=3 ElseIf Body=3 Then 'Pulya poyavlyaetsya spravo MoveSprite bullet1,SpritePosX(tank)+16,SpritePosY(tank)+8 bullet_1=4 EndIf End If 'Bit Hex Decimal Button '0 &h001 1 Up '1 &h002 2 Down '2 &h004 4 Left '3 &h008 8 Right '4 &h010 16 B '5 &h020 32 C '6 &h040 64 A '7 &h080 128 Start '8 &h100 256 Z (6-Button) '9 &h200 512 Y (6-Button) '10 &h400 1024 X (6-Button) '11 &h800 2048 Mode (6-Button) If j.0 Then Body=0 ElseIf j.1 Then Body=1 ElseIf j.2 Then Body=2 ElseIf j.3 Then Body=3 EndIf If bullet_1=1 Then ShiftSprite bullet1, 0,-2 ElseIf bullet_1=2 Then ShiftSprite bullet1, 0,2 ElseIf bullet_1=3 Then ShiftSprite bullet1, -2,0 ElseIf bullet_1=4 Then ShiftSprite bullet1, 2,0 EndIf 'Udalenie puli (skritie za ekran), esli ona vihodit za granici vidimogo ekrana (nachalo ekrana-verhniy ugol dlya spraytov x=128 y=128) If bullet1>0 Then If SpritePosX(bullet1) < 128 or SpritePosX(bullet1) > 440 or SpritePosY(bullet1) < 128 or SpritePosY(bullet1) > 352 Then MoveSprite bullet1,0,480 bullet_1=0 EndIf EndIf ' esli pulya kasaetsa protivnika Enemy1 If Enemy_1>0 Then If SpritePosX(bullet1) > SpritePosX(Enemy1)-1 and SpritePosX(bullet1)+8 < SpritePosX(Enemy1)+14+8 Then 'Left and Right Enemy If SpritePosY(bullet1) > SpritePosY(Enemy1)-1 and SpritePosY(bullet1)+8 < SpritePosY(Enemy1)+14+8 Then 'Up and Down Enemy 'pulya skrivaetsya i deactiviruetstya MoveSprite bullet1,0,480 bullet_1=0 'otnimaetsa jizn u protivnika i on peremeshaetsya Enemy_1-- If Enemy_1>0 Then MoveSprite Enemy1,128+RND(304),128+RND(112) Else MoveSprite Enemy1,0,0 EndIf EndIf EndIf EndIf If tank_x < 128 Then tank_x=128 If tank_x > 432 then tank_x=432 If tank_y < 128 then tank_y=128 If tank_y > 336 then tank_y=336 return palette0: dataint $0000,$0EEC,$0864,$0420,$0642,$0280,$0CA8,$000E dataint $0200,$0000,$0000,$0000,$0000,$0000,$0000,$0000 palette1: dataint $0000,$0CCA,$0642,$0220,$0422,$0260,$0C86,$000C dataint $0200,$0000,$0000,$0000,$0000,$0000,$0000,$0000 tiles: datalong $00000001 datalong $00000001 datalong $00000001 datalong $00100007 datalong $02100001 datalong $02600201 datalong $22600621 datalong $22600621 datalong $22500666 datalong $25600646 datalong $26617886 datalong $26261186 datalong $26266282 datalong $26266282 datalong $26600004 datalong $04400000 datalong $20000000 datalong $20000000 datalong $40000000 datalong $70000600 datalong $20000230 datalong $20200230 datalong $22600433 datalong $32600433 datalong $36600533 datalong $34600453 datalong $68876443 datalong $68664343 datalong $28644343 datalong $28644343 datalong $40000443 datalong $00000330 datalong $03333333 datalong $34444453 datalong $34333445 datalong $00444600 datalong $00446700 datalong $00666866 datalong $00888846 datalong $04226633 datalong $04226666 datalong $00888846 datalong $00221866 datalong $00661700 datalong $00666100 datalong $46222665 datalong $46666652 datalong $02222222 datalong $33000000 datalong $33330000 datalong $44226000 datalong $00000000 datalong $00000000 datalong $66200000 datalong $22000000 datalong $32227422 datalong $11117111 datalong $22000000 datalong $66200000 datalong $00000000 datalong $00000000 datalong $66611000 datalong $22220000 datalong $22000000 bulletData: DataLong $FF300000 ' Tile: 0 DataLong $FF300000 DataLong $00000000 DataLong $00000000 DataLong $00000000 DataLong $00000000 DataLong $00000000 DataLong $00000000