Why does this not work?
What happens is, the main menu loads, then when I click
it starts but for some reason a different screen is loaded.
And the game doesnt seem to be functioning at all.
I know this is incomplete so no comments about that
What im not sure of is why the castle isnt being rendered
and why the cannon isnt and why the attackers arent there.
Entire Source:
http://www.freewebs.com/attotheriveronus/CastleDefence.zip
What happens is, the main menu loads, then when I click
it starts but for some reason a different screen is loaded.
And the game doesnt seem to be functioning at all.
I know this is incomplete so no comments about that
What im not sure of is why the castle isnt being rendered
and why the cannon isnt and why the attackers arent there.
Entire Source:
http://www.freewebs.com/attotheriveronus/CastleDefence.zip
Graphics 900,700,32,2 Global Castle = LoadImage("Castle.jpg") Global Cannon = LoadImage("Cannon.jpg") Global CannonBall = LoadImage("CannonBall.jpg") Global Arrow = LoadImage("Arrow.jpg") Global Knight = LoadImage("Knight.jpg") Global Rammer = LoadImage("Rammer.jpg") Global GameMenu = LoadImage("Menu1.jpg") Global NextLevelMenu = LoadImage("LevelMenu.jpg") MaskImage Castle,255,0,0 MaskImage Cannon,255,0,0 MaskImage CannonBall,255,0,0 MaskImage Arrow,255,0,0 MaskImage Knight,255,0,0 MaskImage Rammer,255,0,0 Type Attacker Field vx#,img,hp,typeA,x,y End Type Type Projectile Field dmg,typeP,img,xv#,yv#,dist,x,y End Type Global CANNONS = 10 Global ARROWS = 25 Global Lives = 10 Global Angle = 0 Global Attackers = 0 Global Level = 1 Global MaxA = 0 Global KILLS = 0 Global GAME_MODE = 2 Global NotLoaded = False While Not KeyHit(1) Cls If NotLoaded = False CANNONS = 10 ARROWS = 25 Lives = 10 Angle = 0 Attackers = 0 Level = 1 MaxA = 0 KILLS = 0 GAME_MODE = 2 NotLoaded = True EndIf Select GAME_MODE Case 1 DrawScenery() AimControl() FireControl() UpdateAttackers() UpdateLevel() UpdateProjectiles() Case 2 UpdateMenu() ; Case 3 ; UpdateShopMenu() End Select Flip Wend Function StartNewGame() GAME_MODE = 1 End Function Function DrawScenery() DrawImage Castle,0,500 DrawImage Cannon,200,500 End Function Function UpdateMenu() DrawImage GameMenu,0,0 If MouseHit(1) And (MouseX() > 0 And MouseX() < 900) If MouseY() > 0 And MouseY() < 700 Cls StartNewGame() EndIf EndIf End Function Function AimControl() If KeyDown(200) Angle = Angle + 2 EndIf If KeyDown(208) Angle = Angle - 2 EndIf End Function Function UpdateProjectiles() For PX.projectile = Each projectile PX\dist = PX\dist + 1 PX\y = PX\y + PX\yv# PX\x = PX\x + PX\xv# For A.attacker = Each attacker If ProjectileCollide(PX,A) A\hp = A\hp - PX\dmg FreeImage PX\img Delete PX EndIf Next Next End Function Function UpdateAttackers() If Attackers < 3 A.attacker = New attacker A\typeA = Rand(0,1) Select A\typeA Case 0 A\img = Knight A\hp = 2 A\vx = -3 Case 1 A\img = Rammer A\hp = 5 A\vx = -2 End Select For B.Attacker = Each Attacker B\x = B\x + B\vx If B\hp < 1 FreeImage B\img Delete B KILLS = KILLS + 1 EndIf Next EndIf End Function Function UpdateLevel() MaxA = ((Level + 2)^2) * (2/3) If Lives < 0 GameOverScreen() GAME_MODE = 2 Cannons = 10 Arrows = 25 Lives = 10 Angle = 0 Attackers = 0 Level = 1 EndIf If Kills >= MaxA ShowLevelScreen(Level+1) Level = Level + 1 Kills = 0 Cannons = Cannons + Level Arrows = Arrows + (3/2) * Level Delay(3000) GameMode = 1 EndIf End Function Function GameOverScreen() Cls HSData = OpenFile("HighScores.dat") A$ = Input("Name: ") WriteInt(HSData,Kills) WriteString(HSData,A$) CloseFile HSData Kills = 0 End Function Function FireControl() If KeyHit(Asc("A")) If Arrows < 1 Goto Ending EndIf A.Projectile = New Projectile A\dmg = 1 A\img = Arrow A\typeP = 1 A\xv# = GetXV#(Angle) A\yv# = GetYV#(Angle) A\x = 200 A\y = 400 .Ending EndIf If KeyHit(Asc("B")) If Cannons < 1 Goto Ending2 EndIf A.Projectile = New Projectile A\dmg = 3 A\img = CannonBall A\typeP = 2 A\xv# = GetXV#(Angle) A\yv# = GetYV#(Angle) A\x = 200 A\y = 400 .Ending2 EndIf End Function Function ProjectileCollide(PR.Projectile,AT.attacker) If ImagesOverlap(PR\img,PR\X,PR\Y,AT\img,AT\X,AT\Y) Return True EndIf End Function Function ShowLevelScreen(levelX) DrawImage NextLevelMenu,0,0 Text "Level " + Level,450,350 End Function Function GetXV#(ang#) Return Cos#(ang#) End Function Function GETYV#(ang#) Return Sin#(ang#) End Function