SCREEN 800,600,0 'FrameLimit 100 Type EFFECTS Field x Field y Field t Field mode As String End Type Type ENEMIES Field obj End Type verdanabig = LoadFont("Verdana",64) SetFont verdanabig enemy_img = MakeImage(16,16) player_img = MakeImage(16,16) gplayer_img = MakeImage(16,16) overlay_img = MakeImage(800,600) DrawToImage enemy_img Color cbred Circle 0,0,16 Color 1,1,1 Circle 0,0,16,0 DrawToImage player_img Color 0,0,255 Circle 0,0,16 Color 1,1,1 Circle 0,0,16,0 DrawToImage gplayer_img Color 125,125,125 Circle 0,0,16 Color 1,1,1 Circle 0,0,16,0 DrawToScreen mouse_obj = MakeObject(1) player = MakeObject(4) PaintObject player, -player_img reset: ScreenPositionObject player,400,300 effect_timer = Timer() boost = 780 enemy_spawn = Timer() spawnrate = 300 health = 5 player_ghost = False faderate = 70 deletecount = 30 hover# = 0 Repeat Color 210,210,210 Text 640,530, "BETA" If health > 0 enemyspeed = Deletecount/10 Else enemyspeed = 0 EndIf ClsColor cbwhite SetWindow "Pallopeli v1.0 FPS:"+Str(FPS()) If player_ghost = True PaintObject player, -gplayer_img If Timer()-ghost_timer > 1000 player_ghost = False PaintObject player, -player_img EndIf EndIf If MouseDown(1) RotateObject player, GetAngle2(player, mouse_obj) MoveObject player, 3+turbo EndIf If MouseDown(2) And boost > 0 turbo = 3 turboloader = Timer() If Timer()-turbotimer > 1 boost = boost - 5 turbotimer = Timer() EndIf Else turbo = 0 turbotimer = Timer() If Timer()-turboloader > 50 And boost < 780 boost + 2 turboloader = Timer() EndIf EndIf If ObjectX(player) > 190 Then MoveObject player, -2 If ObjectX(player) < -190 Then MoveObject player, 2 If ObjectY(player) > 390 Then MoveObject player, 0, 2 If ObjectY(player) < -390 Then MoveObject player, 0, -2 ScreenPositionObject mouse_obj, MouseX(), MouseY() If timer()-effect_timer > faderate effect_timer = Timer() effect.EFFECTS = New(EFFECTS) effect\x = ObjectX(player)+392 effect\y = 600-ObjectY(player)-308 effect\t = Timer() effect\mode = "player" For enemy.ENEMIES = Each ENEMIES effect.EFFECTS = New(EFFECTS) effect\x = ObjectX(enemy\obj)+392 effect\y = 600-ObjectY(enemy\obj)-308 effect\t = Timer() effect\mode = "enemy" Next enemy EndIf If Timer()-enemy_spawn > spawnrate And enemyspeed > 0 enemy.ENEMIES = New(ENEMIES) enemy\obj = MakeObject(4) PaintObject enemy\obj, -enemy_img randpos= Rand(3) If randpos = 0 ScreenPositionObject enemy\obj, 0, Rand(600) ElseIf randpos = 1 ScreenPositionObject enemy\obj, 800, Rand(600) ElseIf randpos = 2 ScreenPositionObject enemy\obj, Rand(800), 0 ElseIf randpos = 3 ScreenPositionObject enemy\obj, Rand(800), 600 EndIf TurnObject enemy\obj, GetAngle2(enemy\obj, player) enemy_spawn = Timer() EndIf For effect.EFFECTS = Each EFFECTS elapsed = (Timer()-effect\t)/4 If effect\mode = "player" If player_ghost = False Color elapsed,elapsed,255 Circle effect\x, effect\y, (245-elapsed)/15 If elapsed > 245 Then Delete effect Else Color elapsed,elapsed,elapsed Circle effect\x, effect\y, (245-elapsed)/15 If elapsed > 245 Then Delete effect EndIf Else Color 255,elapsed*4,elapsed*4 Circle effect\x, effect\y, (50-elapsed)/4 If elapsed > 50 Then Delete effect EndIf Next effect For enemy.ENEMIES = Each ENEMIES MoveObject enemy\obj, enemyspeed If ObjectX(enemy\obj) > 400 Or ObjectX(enemy\obj) < -400 DeleteObject enemy\obj Delete enemy deletecount + 1 ElseIf ObjectY(enemy\obj) > 300 Or ObjectY(enemy\obj) < -300 DeleteObject enemy\obj Delete enemy deletecount + 1 ElseIf ObjectsOverlap(enemy\obj, player, 3) And player_ghost = False Then DeleteObject enemy\obj Delete enemy health = health - 1 player_ghost = True ghost_timer = Timer() EndIf Next enemy DrawGame If health < 1 If hover > 5 hoverdir = 0 ElseIf hover < -5 hoverdir = 1 EndIf If hoverdir = 0 hover-0.5 ElseIf hoverdir = 1 hover+0.5 EndIf scoretext$ = (deletecount-30) Color cbsilver Text 400-TextWidth(scoretext$)/2+2,300-TextHeight(scoretext$)/2+2+hover, scoretext$ Color cbblack Text 400-TextWidth(scoretext$)/2,300-TextHeight(scoretext$)/2+hover, scoretext$ If MouseHit(1) For enemy.ENEMIES = Each ENEMIES DeleteObject enemy\obj Delete enemy Next enemy For effect.EFFECTS = Each EFFECTS Delete effect Next effect Goto reset EndIf EndIf For i = 0 To health-1 Color 255,i*51,i*51 Box 10+i*156,35, 156, 10 Next i Color cbblue Box 10,10,boost,20 Color cbblack Box 10,10,780,20,0 Box 10,35,780,10,0 DrawScreen Forever