Page Menu
Home
Phabricator (Chris)
Search
Configure Global Search
Log In
Files
F130454
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
42 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/Barrier.h b/Barrier.h
index 24886fe..832f72c 100644
--- a/Barrier.h
+++ b/Barrier.h
@@ -1,29 +1,29 @@
#pragma once
#include<allegro5\allegro.h>
#include<allegro5\allegro_image.h>
using namespace std;
class Barrier
{
public:
Barrier();
void SetBarrierpos(int x, int y);
void setLife(int l);
void drawIfActive(float x, float y);
int x_pos;
int y_pos;
int life_points;
bool active;
ALLEGRO_BITMAP *CurrentImage;
const int BHeight = 31;
const int Bright = 100;
const int Bleft = 0;
};
-static const char *Images[5] = { "B4.png","B3.png","B2.png","B1.png","B0.png" };
\ No newline at end of file
+static const char *Images[5] = { "Pictures/B4.png","Pictures/B3.png","Pictures/B2.png","Pictures/B1.png","Pictures/B0.png" };
\ No newline at end of file
diff --git a/Blast-SoundBible.com-2068539061.wav b/Blast-SoundBible.com-2068539061.wav
deleted file mode 100644
index 43ea366..0000000
Binary files a/Blast-SoundBible.com-2068539061.wav and /dev/null differ
diff --git a/DarthInvaders.sdf b/DarthInvaders.sdf
index f0bcdc3..8c5d8f3 100644
Binary files a/DarthInvaders.sdf and b/DarthInvaders.sdf differ
diff --git a/Fonts/Legacy.ttf b/Fonts/Legacy.ttf
new file mode 100644
index 0000000..d9a235c
Binary files /dev/null and b/Fonts/Legacy.ttf differ
diff --git a/Fonts/Roboto-Light.ttf b/Fonts/Roboto-Light.ttf
new file mode 100644
index 0000000..664e1b2
Binary files /dev/null and b/Fonts/Roboto-Light.ttf differ
diff --git a/Fonts/STARWARS.TTF b/Fonts/STARWARS.TTF
new file mode 100644
index 0000000..0d633c0
Binary files /dev/null and b/Fonts/STARWARS.TTF differ
diff --git a/Fonts/Starjedi.ttf b/Fonts/Starjedi.ttf
new file mode 100644
index 0000000..1f4020b
Binary files /dev/null and b/Fonts/Starjedi.ttf differ
diff --git a/Goodpic.png b/Goodpic.png
deleted file mode 100644
index ea9ecd9..0000000
Binary files a/Goodpic.png and /dev/null differ
diff --git a/Highscores.cpp b/Highscores.cpp
new file mode 100644
index 0000000..a3b40a9
--- /dev/null
+++ b/Highscores.cpp
@@ -0,0 +1,12 @@
+#include "Highscores.h"
+
+
+
+Highscores::Highscores()
+{
+}
+
+
+Highscores::~Highscores()
+{
+}
diff --git a/Highscores.h b/Highscores.h
new file mode 100644
index 0000000..807f7bc
--- /dev/null
+++ b/Highscores.h
@@ -0,0 +1,13 @@
+#pragma once
+#include <string>
+using namespace std;
+
+class Highscores
+{
+public:
+ int score;
+ string name;
+ Highscores();
+ ~Highscores();
+};
+
diff --git a/Laser Blasts.mp3 b/Laser Blasts.mp3
deleted file mode 100644
index f4d3c55..0000000
Binary files a/Laser Blasts.mp3 and /dev/null differ
diff --git a/Pictures/1.png b/Pictures/1.png
new file mode 100644
index 0000000..0f9c384
Binary files /dev/null and b/Pictures/1.png differ
diff --git a/Pictures/2.png b/Pictures/2.png
new file mode 100644
index 0000000..46e6ed9
Binary files /dev/null and b/Pictures/2.png differ
diff --git a/Pictures/3.png b/Pictures/3.png
new file mode 100644
index 0000000..5474f5f
Binary files /dev/null and b/Pictures/3.png differ
diff --git a/Pictures/4.png b/Pictures/4.png
new file mode 100644
index 0000000..a478350
Binary files /dev/null and b/Pictures/4.png differ
diff --git a/Pictures/5.png b/Pictures/5.png
new file mode 100644
index 0000000..ca4da66
Binary files /dev/null and b/Pictures/5.png differ
diff --git a/Pictures/6.png b/Pictures/6.png
new file mode 100644
index 0000000..b183706
Binary files /dev/null and b/Pictures/6.png differ
diff --git a/Pictures/B0.png b/Pictures/B0.png
new file mode 100644
index 0000000..211501c
Binary files /dev/null and b/Pictures/B0.png differ
diff --git a/Pictures/B1.png b/Pictures/B1.png
new file mode 100644
index 0000000..f97a164
Binary files /dev/null and b/Pictures/B1.png differ
diff --git a/Pictures/B2.png b/Pictures/B2.png
new file mode 100644
index 0000000..2bea1ed
Binary files /dev/null and b/Pictures/B2.png differ
diff --git a/Pictures/B3.png b/Pictures/B3.png
new file mode 100644
index 0000000..fc21ecf
Binary files /dev/null and b/Pictures/B3.png differ
diff --git a/Pictures/B4.png b/Pictures/B4.png
new file mode 100644
index 0000000..a1440cb
Binary files /dev/null and b/Pictures/B4.png differ
diff --git a/Pictures/B5.png b/Pictures/B5.png
new file mode 100644
index 0000000..69ba80c
Binary files /dev/null and b/Pictures/B5.png differ
diff --git a/Pictures/Lazer.png b/Pictures/Lazer.png
new file mode 100644
index 0000000..1503879
Binary files /dev/null and b/Pictures/Lazer.png differ
diff --git a/Pictures/blank.png b/Pictures/blank.png
new file mode 100644
index 0000000..24d2c16
Binary files /dev/null and b/Pictures/blank.png differ
diff --git a/Pictures/enemy.png b/Pictures/enemy.png
new file mode 100644
index 0000000..e16cc0b
Binary files /dev/null and b/Pictures/enemy.png differ
diff --git a/Pictures/logo.png b/Pictures/logo.png
new file mode 100644
index 0000000..f6532eb
Binary files /dev/null and b/Pictures/logo.png differ
diff --git a/Pictures/oldstarMG.png b/Pictures/oldstarMG.png
new file mode 100644
index 0000000..15c000c
Binary files /dev/null and b/Pictures/oldstarMG.png differ
diff --git a/Pictures/player1.png b/Pictures/player1.png
new file mode 100644
index 0000000..928d951
Binary files /dev/null and b/Pictures/player1.png differ
diff --git a/Pictures/player2.png b/Pictures/player2.png
new file mode 100644
index 0000000..b51bb15
Binary files /dev/null and b/Pictures/player2.png differ
diff --git a/Pictures/starBG.png b/Pictures/starBG.png
new file mode 100644
index 0000000..131ba50
Binary files /dev/null and b/Pictures/starBG.png differ
diff --git a/Pictures/starFG.png b/Pictures/starFG.png
new file mode 100644
index 0000000..6369a24
Binary files /dev/null and b/Pictures/starFG.png differ
diff --git a/Pictures/starMG.jpg b/Pictures/starMG.jpg
new file mode 100644
index 0000000..b39282d
Binary files /dev/null and b/Pictures/starMG.jpg differ
diff --git a/S1.png b/S1.png
deleted file mode 100644
index de45a3d..0000000
Binary files a/S1.png and /dev/null differ
diff --git a/S10.png b/S10.png
deleted file mode 100644
index 338aa27..0000000
Binary files a/S10.png and /dev/null differ
diff --git a/S11.png b/S11.png
deleted file mode 100644
index f2e820a..0000000
Binary files a/S11.png and /dev/null differ
diff --git a/S12.png b/S12.png
deleted file mode 100644
index d4b4006..0000000
Binary files a/S12.png and /dev/null differ
diff --git a/S13.png b/S13.png
deleted file mode 100644
index d26e5c6..0000000
Binary files a/S13.png and /dev/null differ
diff --git a/S14.png b/S14.png
deleted file mode 100644
index a35a29c..0000000
Binary files a/S14.png and /dev/null differ
diff --git a/S15.png b/S15.png
deleted file mode 100644
index b5d1daa..0000000
Binary files a/S15.png and /dev/null differ
diff --git a/S16.png b/S16.png
deleted file mode 100644
index 15d0e44..0000000
Binary files a/S16.png and /dev/null differ
diff --git a/S17.png b/S17.png
deleted file mode 100644
index 2d01035..0000000
Binary files a/S17.png and /dev/null differ
diff --git a/S18.png b/S18.png
deleted file mode 100644
index 0aec3f9..0000000
Binary files a/S18.png and /dev/null differ
diff --git a/S19.png b/S19.png
deleted file mode 100644
index b064589..0000000
Binary files a/S19.png and /dev/null differ
diff --git a/S2.png b/S2.png
deleted file mode 100644
index e4709d1..0000000
Binary files a/S2.png and /dev/null differ
diff --git a/S20.png b/S20.png
deleted file mode 100644
index cdea11c..0000000
Binary files a/S20.png and /dev/null differ
diff --git a/S21.png b/S21.png
deleted file mode 100644
index 9427c37..0000000
Binary files a/S21.png and /dev/null differ
diff --git a/S22.png b/S22.png
deleted file mode 100644
index 2fed1d6..0000000
Binary files a/S22.png and /dev/null differ
diff --git a/S23.png b/S23.png
deleted file mode 100644
index 3270cbe..0000000
Binary files a/S23.png and /dev/null differ
diff --git a/S24.png b/S24.png
deleted file mode 100644
index 965b0de..0000000
Binary files a/S24.png and /dev/null differ
diff --git a/S25.png b/S25.png
deleted file mode 100644
index 2cef68b..0000000
Binary files a/S25.png and /dev/null differ
diff --git a/S26.png b/S26.png
deleted file mode 100644
index db51ed3..0000000
Binary files a/S26.png and /dev/null differ
diff --git a/S27.png b/S27.png
deleted file mode 100644
index 736021c..0000000
Binary files a/S27.png and /dev/null differ
diff --git a/S28.png b/S28.png
deleted file mode 100644
index 68b4961..0000000
Binary files a/S28.png and /dev/null differ
diff --git a/S3.png b/S3.png
deleted file mode 100644
index 45f0f82..0000000
Binary files a/S3.png and /dev/null differ
diff --git a/S4.png b/S4.png
deleted file mode 100644
index 99a9c56..0000000
Binary files a/S4.png and /dev/null differ
diff --git a/S5.png b/S5.png
deleted file mode 100644
index 9c56f13..0000000
Binary files a/S5.png and /dev/null differ
diff --git a/S6.png b/S6.png
deleted file mode 100644
index d4e1e4f..0000000
Binary files a/S6.png and /dev/null differ
diff --git a/S7.png b/S7.png
deleted file mode 100644
index f7508a5..0000000
Binary files a/S7.png and /dev/null differ
diff --git a/S8.png b/S8.png
deleted file mode 100644
index 903358f..0000000
Binary files a/S8.png and /dev/null differ
diff --git a/S9.png b/S9.png
deleted file mode 100644
index 9ab4f43..0000000
Binary files a/S9.png and /dev/null differ
diff --git a/Sounds/Blast.ogg b/Sounds/Blast.ogg
new file mode 100644
index 0000000..012b9de
Binary files /dev/null and b/Sounds/Blast.ogg differ
diff --git a/Sounds/Emperor1.ogg b/Sounds/Emperor1.ogg
new file mode 100644
index 0000000..eaec568
Binary files /dev/null and b/Sounds/Emperor1.ogg differ
diff --git a/Sounds/Emperor2.ogg b/Sounds/Emperor2.ogg
new file mode 100644
index 0000000..2928cfd
Binary files /dev/null and b/Sounds/Emperor2.ogg differ
diff --git a/Sounds/Emperor3.ogg b/Sounds/Emperor3.ogg
new file mode 100644
index 0000000..1fc436e
Binary files /dev/null and b/Sounds/Emperor3.ogg differ
diff --git a/Sounds/MenuMusic.ogg b/Sounds/MenuMusic.ogg
new file mode 100644
index 0000000..79b7749
Binary files /dev/null and b/Sounds/MenuMusic.ogg differ
diff --git a/Sounds/Star_Wars.ogg b/Sounds/Star_Wars.ogg
new file mode 100644
index 0000000..778e299
Binary files /dev/null and b/Sounds/Star_Wars.ogg differ
diff --git a/Sounds/TIE-Fire.ogg b/Sounds/TIE-Fire.ogg
new file mode 100644
index 0000000..2e506d6
Binary files /dev/null and b/Sounds/TIE-Fire.ogg differ
diff --git a/Sounds/XWing-Laser.ogg b/Sounds/XWing-Laser.ogg
new file mode 100644
index 0000000..fafb777
Binary files /dev/null and b/Sounds/XWing-Laser.ogg differ
diff --git a/Sounds/boom.ogg b/Sounds/boom.ogg
new file mode 100644
index 0000000..fa5684c
Binary files /dev/null and b/Sounds/boom.ogg differ
diff --git a/Sounds/chirp.ogg b/Sounds/chirp.ogg
new file mode 100644
index 0000000..d4741a4
Binary files /dev/null and b/Sounds/chirp.ogg differ
diff --git a/Sounds/xwing.ogg b/Sounds/xwing.ogg
new file mode 100644
index 0000000..d9eeebf
Binary files /dev/null and b/Sounds/xwing.ogg differ
diff --git a/SpaceInvadersTest.vcxproj b/SpaceInvadersTest.vcxproj
index a21e8e4..7210c20 100644
--- a/SpaceInvadersTest.vcxproj
+++ b/SpaceInvadersTest.vcxproj
@@ -1,112 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{70C476C5-EF01-453C-9E01-6FACFE08D371}</ProjectGuid>
<RootNamespace>SpaceInvadersTest</RootNamespace>
<ProjectName>DarthInvaders</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Allegro_AddonImage>true</Allegro_AddonImage>
<Allegro_AddonTTF>true</Allegro_AddonTTF>
<Allegro_AddonPrimitives>true</Allegro_AddonPrimitives>
<Allegro_AddonDialog>true</Allegro_AddonDialog>
<Allegro_AddonFont>true</Allegro_AddonFont>
<Allegro_AddonColor>true</Allegro_AddonColor>
<Allegro_LibraryType>DynamicDebug</Allegro_LibraryType>
<Allegro_AddonAudio>true</Allegro_AddonAudio>
<Allegro_AddonAcodec>true</Allegro_AddonAcodec>
<Allegro_AddonMemfile>true</Allegro_AddonMemfile>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="BackGround.cpp" />
<ClCompile Include="Barrier.cpp" />
<ClCompile Include="Global.cpp" />
+ <ClCompile Include="Highscores.cpp" />
<ClCompile Include="Spaceship.cpp" />
<ClCompile Include="Bullet.cpp" />
<ClCompile Include="Enemy.cpp" />
<ClCompile Include="Test.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="BackGround.h" />
<ClInclude Include="Barrier.h" />
+ <ClInclude Include="Highscores.h" />
<ClInclude Include="Spaceship.h" />
<ClInclude Include="Bullet.h" />
<ClInclude Include="Enemy.h" />
<ClInclude Include="Global.h" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="packages\AllegroDeps.1.4.0.0\build\native\AllegroDeps.targets" Condition="Exists('packages\AllegroDeps.1.4.0.0\build\native\AllegroDeps.targets')" />
<Import Project="packages\Allegro.5.2.0.0\build\native\Allegro.targets" Condition="Exists('packages\Allegro.5.2.0.0\build\native\Allegro.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\AllegroDeps.1.4.0.0\build\native\AllegroDeps.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\AllegroDeps.1.4.0.0\build\native\AllegroDeps.targets'))" />
<Error Condition="!Exists('packages\Allegro.5.2.0.0\build\native\Allegro.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Allegro.5.2.0.0\build\native\Allegro.targets'))" />
</Target>
</Project>
\ No newline at end of file
diff --git a/SpaceInvadersTest.vcxproj.filters b/SpaceInvadersTest.vcxproj.filters
index 049bf97..dc2ef2c 100644
--- a/SpaceInvadersTest.vcxproj.filters
+++ b/SpaceInvadersTest.vcxproj.filters
@@ -1,23 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="BackGround.cpp" />
<ClCompile Include="Global.cpp" />
<ClCompile Include="Spaceship.cpp" />
<ClCompile Include="Bullet.cpp" />
<ClCompile Include="Enemy.cpp" />
<ClCompile Include="Test.cpp" />
<ClCompile Include="Barrier.cpp" />
+ <ClCompile Include="Highscores.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="BackGround.h" />
<ClInclude Include="Spaceship.h" />
<ClInclude Include="Bullet.h" />
<ClInclude Include="Enemy.h" />
<ClInclude Include="Global.h" />
<ClInclude Include="Barrier.h" />
+ <ClInclude Include="Highscores.h" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
</Project>
\ No newline at end of file
diff --git a/Star Wars.wav b/Star Wars.wav
deleted file mode 100644
index e4e9f6d..0000000
Binary files a/Star Wars.wav and /dev/null differ
diff --git a/TIE-Fire.wav b/TIE-Fire.wav
deleted file mode 100644
index dbfe38c..0000000
Binary files a/TIE-Fire.wav and /dev/null differ
diff --git a/Test.cpp b/Test.cpp
index 64780fa..91cfdcc 100644
--- a/Test.cpp
+++ b/Test.cpp
@@ -1,891 +1,902 @@
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup") //no console window behind game window
#include<allegro5\allegro.h>
#include<allegro5\allegro_native_dialog.h>
#include<allegro5\allegro_primitives.h>
#include<allegro5\allegro_image.h>
#include <allegro5\allegro_font.h>
#include <allegro5\allegro_ttf.h>
#include <allegro5\allegro_audio.h>
#include <allegro5\allegro_acodec.h>
#include <string>
#include <string.h>
#include <iostream>
#include <fstream>
#include "Enemy.h"
#include "Spaceship.h"
#include "Bullet.h"
#include "Global.h"
#include "BackGround.h"
#include "Barrier.h"
using namespace std;
//GLOBALS
enum KEYS { LEFT, RIGHT, SPACE };
bool keys[5] = { false,false,false };
int gameState = 1; //initial gamestate is menu
extern int width;
extern int height;
int numAlive = NUM_COLUMNS*NUM_ROWS;
int EnemyWaveCount = 0;
int input = 0;
char* nameString;
bool isHighscore = false; //READ IN LOWEST HIGHSCORE FIRST. USE THIS BOOL TO CHECK USER FINAL SCORE VS LOWEST HIGHSCORE
int lowScore = 0;
//METHODS
void setEnemy();
void collideEnemy(int&);
void collidePlayer();
void moveDown(int&);
void enemyShoot();
void updateBullet();
bool reachEnd();
void InitBackground(BackGround &back, float x, float y, float velx, float vely, int width, int height, int dirX, int dirY, ALLEGRO_BITMAP *image);
void UpdateBackground(BackGround &back);
void DrawBackground(BackGround &back);
void CollideBarrier();
void Reactivate_Enemies();
void DrawAnimation(ALLEGRO_BITMAP *X, int &y);
void EnemyReachEnd();
void BulletBarrierCollide();
void InitBarriers();
void Reactivate_Barriers();
void updateEnemyCount();
void UpdateBarrierImages(ALLEGRO_BITMAP *SpaceBarrier[]);
//INITIALISE
Spaceship player(width / 2, height * 4 / 5);
Bullet playerBullet(player.x_pos, player.y_pos, 10, true);
Bullet enemyBullet(0, 0, 10, false);
Enemy arrEnem[NUM_COLUMNS][NUM_ROWS]; //array of objects
Barrier redBarrier[3];
BackGround BG;
BackGround MG;
BackGround FG;
BackGround MM;
int main(void)
{
setEnemy();
enemyBullet.isFriendly = false;
srand((unsigned)time(NULL));
//variables
const int FPS = 60;
bool done = false;
bool redraw = true;
int CurrentFrame = 0;
const int frames = 28;
int y = 600;
// \/ no need to use variable
int Delay = 10;
if (!al_init())
{
al_show_native_message_box(NULL, NULL, NULL, "Could not initialize allegro", NULL, NULL);
return -1;
}
//Allegro variables
ALLEGRO_DISPLAY *DISPLAY = NULL;
ALLEGRO_BITMAP *picHealth[7];
ALLEGRO_BITMAP *picShip = NULL;
ALLEGRO_BITMAP *picBullet = NULL;
ALLEGRO_BITMAP *picEnemy = NULL;
ALLEGRO_BITMAP *Game = NULL;
ALLEGRO_BITMAP *MENU = NULL;
ALLEGRO_BITMAP *bgImage = NULL;
ALLEGRO_BITMAP *mgImage = NULL;
ALLEGRO_BITMAP *fgImage = NULL;
ALLEGRO_BITMAP *MenuAnim[frames];//to be removed
ALLEGRO_BITMAP *SpaceBarrier[5];
ALLEGRO_BITMAP *Player;
ALLEGRO_EVENT_QUEUE *TestQueue = NULL;
ALLEGRO_TIMER *timer = NULL;
ALLEGRO_FONT *font38 = NULL;
ALLEGRO_FONT *starFont = NULL;
ALLEGRO_FONT *fontName = NULL;
ALLEGRO_SAMPLE *blaster = NULL;
ALLEGRO_SAMPLE *explosion = NULL;
ALLEGRO_SAMPLE *music = NULL;
ALLEGRO_SAMPLE *startGame = NULL;
ALLEGRO_SAMPLE *emperor1 = NULL;
ALLEGRO_SAMPLE *emperor2 = NULL;
ALLEGRO_SAMPLE *emperor3 = NULL;
ALLEGRO_USTR* str = al_ustr_new("ENTER NAME: ");
//Allegro Module Init
al_init_image_addon();
al_set_new_window_position(400, 200); //set pos of game window
DISPLAY = al_create_display(width, height);
al_hide_mouse_cursor(DISPLAY);
al_init_primitives_addon();
al_install_keyboard();
al_init_font_addon();
al_init_ttf_addon();
al_install_audio();
al_init_acodec_addon();
if (!DISPLAY)
{
al_show_native_message_box(NULL, NULL, NULL, "Could not initialize display", NULL, NULL);
return -1;
}
//load sounds
al_reserve_samples(4);
blaster = al_load_sample("XWing-Laser.ogg");
explosion = al_load_sample("Blast.ogg");
startGame = al_load_sample("xwing.ogg");
music = al_load_sample("Star_Wars.ogg");
emperor1 = al_load_sample("Emperor1.ogg");
emperor2 = al_load_sample("Emperor2.ogg");
emperor3 = al_load_sample("Emperor3.ogg");
//Load Pictures
picBullet = al_load_bitmap("Lazer.png");
picShip = al_load_bitmap("player1.png");
picEnemy = al_load_bitmap("enemy.png");
Game = al_load_bitmap("Goodpic.png");
MENU = al_load_bitmap("starBG.png");
for (int i = 0; i < 5; i++)
SpaceBarrier[i] = al_load_bitmap(Images[i]);
for (int i = 0; i < 5; i++)
al_convert_mask_to_alpha(SpaceBarrier[i], al_map_rgb(255, 255, 255));
for (int i = 0; i < 3; i++)
redBarrier[i].CurrentImage = SpaceBarrier[4];
picHealth[0] = al_load_bitmap("1.png");
picHealth[1] = al_load_bitmap("2.png");
picHealth[2] = al_load_bitmap("3.png");
picHealth[3] = al_load_bitmap("4.png");
picHealth[4] = al_load_bitmap("5.png");
picHealth[5] = al_load_bitmap("6.png");
picHealth[6] = al_load_bitmap("blank.png");
for (int i = 0; i < 7; i++)
al_convert_mask_to_alpha(picHealth[i], al_map_rgb(0, 0, 0));
bgImage = al_load_bitmap("starBG.png");
mgImage = al_load_bitmap("starMG.jpg");
fgImage = al_load_bitmap("starFG.png");
Player = al_load_bitmap("player1.png");
al_convert_mask_to_alpha(picShip, al_map_rgb(0, 0, 0));
al_convert_mask_to_alpha(picEnemy, al_map_rgb(0, 0, 0));
al_convert_mask_to_alpha(picBullet, al_map_rgb(0, 0, 0));
al_convert_mask_to_alpha(mgImage, al_map_rgb(0, 0, 0));
al_convert_mask_to_alpha(Player, al_map_rgb(0, 0, 0));
InitBackground(BG, 0, 0, 1, 0, 800, 600, -1, 1, bgImage);
InitBackground(MG, 0, 0, 3, 0, 2000, 768, -1, 1, mgImage);
InitBackground(FG, 0, 0, 5, 0, 800, 600, -1, 1, fgImage);
InitBackground(MM, 0, 0, 3, 0, 800, 600, -1, 1, MENU);
InitBarriers();
timer = al_create_timer(1.0 / FPS);
al_set_display_icon(DISPLAY, picShip);
al_play_sample(music, 1, 0, 1, ALLEGRO_PLAYMODE_LOOP, NULL);
TestQueue = al_create_event_queue();
al_register_event_source(TestQueue, al_get_keyboard_event_source());
al_register_event_source(TestQueue, al_get_display_event_source(DISPLAY));
al_register_event_source(TestQueue, al_get_timer_event_source(timer));
al_start_timer(timer);
int score = 0;
int frameCount = 0;
int pos = (int)al_ustr_size(str);
font38 = al_load_font("Legacy.ttf", 38, 0);
starFont = al_load_font("STARWARS.TTF", 55, 0);
fontName = al_load_font("Legacy.ttf", 38, 0);
while (!done)
{
ALLEGRO_EVENT GETKEY;
al_wait_for_event(TestQueue, &GETKEY);
if (GETKEY.type == ALLEGRO_EVENT_DISPLAY_CLOSE) //will allow clicking X button to close program
{
done = true;
}
else if (GETKEY.type == ALLEGRO_EVENT_TIMER)
{
redraw = true;
UpdateBackground(MM);
frameCount++;
if (keys[LEFT])
player.MoveSpaceshipLeft();
if (keys[RIGHT])
player.MoveSpaceshipRight();
if (keys[SPACE]) //Spacebar will fire
{
if (gameState == 1) {
al_play_sample(startGame, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, NULL); //plays when spaceship flies across screen
gameState = 2;
}
else if (gameState == 2)
{
if (playerBullet.status == 0)
{
al_play_sample(blaster, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, NULL);
playerBullet.status = 1;
}
}
}
if (gameState == 2)
{
UpdateBackground(BG);
UpdateBackground(MG);
UpdateBackground(FG);
collideEnemy(score);
updateEnemyCount();
CollideBarrier();
collidePlayer();
BulletBarrierCollide();
EnemyReachEnd();
enemyShoot();
moveDown(frameCount);
updateBullet();
}
}
else if (GETKEY.type == ALLEGRO_EVENT_KEY_DOWN)
{
switch (GETKEY.keyboard.keycode)
{
case ALLEGRO_KEY_ESCAPE: //esc to end the game
if (gameState == 2)
gameState = 3;
else
done = true;
break;
case ALLEGRO_KEY_RIGHT:
keys[RIGHT] = true;
break;
case ALLEGRO_KEY_LEFT:
keys[LEFT] = true;
break;
case ALLEGRO_KEY_SPACE:
keys[SPACE] = true;
break;
case ALLEGRO_KEY_BACKSPACE: //backspace for name input
if (gameState == 3)
if (al_ustr_prev(str, &pos))
al_ustr_truncate(str, pos);
break;
+ if (gameState == 4)
+ gameState = 2;
+ break;
case ALLEGRO_KEY_ENTER: //will display leaderboard once they press enter.
if (gameState == 3)
gameState = 4;
break;
+
+ case ALLEGRO_KEY_L:
+
+ if (gameState == 1)
+ gameState = 4;
+ break;
}
}
if (GETKEY.type == ALLEGRO_EVENT_KEY_UP)
{
switch (GETKEY.keyboard.keycode)
{
case ALLEGRO_KEY_RIGHT:
keys[RIGHT] = false;
break;
case ALLEGRO_KEY_LEFT:
keys[LEFT] = false;
break;
case ALLEGRO_KEY_SPACE:
keys[SPACE] = false;
break;
}
}
else if (GETKEY.type == ALLEGRO_EVENT_KEY_CHAR && gameState == 3 && isHighscore)
{
if (GETKEY.keyboard.unichar >= 32)
{
if (input == 0)
{
al_ustr_remove_range(str, 0, al_ustr_length(str)); //clears 'ENTER NAME: '
pos = 0;
input = 1;
}
pos += al_ustr_append_chr(str, GETKEY.keyboard.unichar);
}
}
if (redraw && al_is_event_queue_empty(TestQueue)) //rendering
{
redraw = false;
if (gameState == 1) //menu
{
DrawBackground(MM);
if (GETKEY.type == ALLEGRO_EVENT_TIMER)
{
if (GETKEY.timer.source == timer)
{
DrawAnimation(Player, y);
}
}
al_draw_text(font38, al_map_rgb(255, 40, 78), width / 2, height - 750, ALLEGRO_ALIGN_CENTRE, "AMMST PRESENTS");
al_draw_text(starFont, al_map_rgb(255, 40, 78), (width / 2), (height)-690, ALLEGRO_ALIGN_CENTRE, "DARTH INVADERS");
al_draw_text(font38, al_map_rgb(255, 40, 78), (width / 2), (height)-350, ALLEGRO_ALIGN_CENTRE, "PRESS SPACE TO START");
al_draw_text(font38, al_map_rgb(255, 40, 78), (width / 2), (height - 300), ALLEGRO_ALIGN_CENTRE, "PRESS ESC TO EXIT");
+ al_draw_text(font38, al_map_rgb(255, 40, 78), (width / 2) - 25, height - 250, ALLEGRO_ALIGN_CENTRE, "PRESS L TO DISPLAY THE LEADERBOARD");
}
else if (gameState == 2) //main game
{
DrawBackground(BG);
DrawBackground(MG);
DrawBackground(FG);
UpdateBarrierImages(SpaceBarrier);
redBarrier[0].drawIfActive(50, 500);
redBarrier[1].drawIfActive(435, 500);
redBarrier[2].drawIfActive(820, 500);
if (playerBullet.status == 1 && player.active) //if bullet still active
{
playerBullet.Increment(); //bullet will move pos
al_draw_bitmap(picBullet, playerBullet.x_pos, playerBullet.y_pos, 0); //redraw at new pos
if (playerBullet.y_pos < 20)
{
playerBullet.status = 0;
updateBullet();
}
}
if (enemyBullet.status == 1)
{
enemyBullet.Increment(); //bullet will move pos
al_draw_bitmap(picBullet, enemyBullet.x_pos, enemyBullet.y_pos, 0);
}
switch (player.health)
{
case 60:
al_draw_bitmap(picHealth[0], 10, 40, 0);
break;
case 50:
al_draw_bitmap(picHealth[1], 10, 40, 0);
break;
case 40:
al_draw_bitmap(picHealth[2], 10, 40, 0);
break;
case 30:
al_draw_bitmap(picHealth[3], 10, 40, 0);
break;
case 20:
al_draw_bitmap(picHealth[4], 10, 40, 0);
break;
case 10:
al_draw_bitmap(picHealth[5], 10, 40, 0);
break;
case 0:
al_draw_bitmap(picHealth[6], 10, 40, 0);
break;
}
if (player.health > 0)
{
al_draw_bitmap(picShip, player.x_pos - 45, player.y_pos, 0);
}
bool test = reachEnd();
for (int i = 0; i < NUM_COLUMNS; i++)
{
for (int j = 0; j < NUM_ROWS; j++)
{
if (arrEnem[i][j].active)
{
arrEnem[i][j].Move(test);
al_draw_bitmap(picEnemy, arrEnem[i][j].x_pos, arrEnem[i][j].y_pos, 0);
}
}
}
al_draw_textf(font38, al_map_rgb(255, 0, 0), 10, 0, 0, "SCORE: %i", score);
}
else if (gameState == 3) //end game
{
if (player.health == 0)
{
al_play_sample(explosion, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, NULL);
+ al_draw_text(starFont, al_map_rgb(255, 0, 0), width / 2, (height / 2) - 250, 0, "PRESS BACKSPACE TO PLAY AGAIN");
if (frameCount % 7 == 0)
al_play_sample(emperor3, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, NULL);
else if (frameCount % 3 == 0)
al_play_sample(emperor2, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, NULL);
else
al_play_sample(emperor1, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, NULL);
player.health = 1; // <--- shortcut method to make it only sound once :p
}
- //check to determine if he made a highscore
+ //check to determine if he made a highscore ,
if (score>lowScore)
isHighscore = true;
nameString = al_cstr_dup(str);
al_draw_textf(starFont, al_map_rgb(255, 0, 0), width / 2 - 250, height / 2 - 200, 0, "FINAL SCORE: %i", score);
if (isHighscore)
al_draw_text(fontName, al_map_rgb_f(1, 1, 1), width / 2 - 250, height / 2 - 100, ALLEGRO_ALIGN_LEFT, nameString);
}
else if (gameState == 4) //highscores
{
string name = nameString;
//if (isHighscore) -> write name & score to textfile & then SHOW LEADERBOARD here || if not highscore. just show leaderboard
}
al_flip_display(); //flip display to show all drawn objects
al_clear_to_color(al_map_rgb(0, 0, 0)); //background colour
}
}
al_destroy_sample(blaster);
al_destroy_sample(explosion);
al_destroy_sample(startGame);
al_destroy_sample(music);
al_destroy_sample(emperor1);
al_destroy_sample(emperor2);
al_destroy_sample(emperor3);
al_destroy_bitmap(Player);
al_destroy_event_queue(TestQueue);
al_destroy_timer(timer);
al_destroy_display(DISPLAY);
al_destroy_font(font38);
al_destroy_font(starFont);
al_destroy_bitmap(Game);
al_destroy_bitmap(MENU);
al_destroy_bitmap(picEnemy);
al_destroy_bitmap(picShip);
al_destroy_bitmap(picBullet);
al_destroy_bitmap(bgImage);
al_destroy_bitmap(mgImage);
al_destroy_bitmap(fgImage);
for (int i = 0; i < 7; i++)
al_destroy_bitmap(picHealth[i]);
// ADD YOUR BITMAPS ETC TO al_destroy !!
return 0;
}
void collidePlayer()
{
if (enemyBullet.status)
{
if (enemyBullet.y_pos < player.y_pos + player.boxheight //checks if within box
&& enemyBullet.y_pos > player.y_pos - player.boxheight
&& enemyBullet.x_pos < player.x_pos + player.boxright
&& enemyBullet.x_pos > player.x_pos - player.boxleft)
{
enemyBullet.status = 0; //bullet set to not active
player.health -= 10;
}
}
if (player.health == 0)
{
player.active = false;
gameState = 3;
}
}
void setEnemy()
{
//row 1
arrEnem[0][0].set(width / 2 - sp, 65); //left
arrEnem[1][0].set(width / 2, 65); //middle
arrEnem[2][0].set(width / 2 + sp, 65); //right
arrEnem[3][0].set(width / 2 - 2 * sp, 65);
arrEnem[4][0].set(width / 2 + 2 * sp, 65);
arrEnem[5][0].set(width / 2 - 3 * sp, 65);
arrEnem[6][0].set(width / 2 + 3 * sp, 65);
arrEnem[7][0].set(width / 2 - 4 * sp, 65);
//row 2
arrEnem[0][1].set(width / 2 - sp, 130); //left
arrEnem[1][1].set(width / 2, 130); //middle
arrEnem[2][1].set(width / 2 + sp, 130); //right
arrEnem[3][1].set(width / 2 - 2 * sp, 130);
arrEnem[4][1].set(width / 2 + 2 * sp, 130);
arrEnem[5][1].set(width / 2 - 3 * sp, 130);
arrEnem[6][1].set(width / 2 + 3 * sp, 130);
arrEnem[7][1].set(width / 2 - 4 * sp, 130);
//row 3
arrEnem[0][2].set(width / 2 - sp, 195); //left
arrEnem[1][2].set(width / 2, 195); //middle
arrEnem[2][2].set(width / 2 + sp, 195); //right
arrEnem[3][2].set(width / 2 - 2 * sp, 195);
arrEnem[4][2].set(width / 2 + 2 * sp, 195);
arrEnem[5][2].set(width / 2 - 3 * sp, 195);
arrEnem[6][2].set(width / 2 + 3 * sp, 195);
arrEnem[7][2].set(width / 2 - 4 * sp, 195);
//row 4
arrEnem[0][3].set(width / 2 - sp, 260);
arrEnem[1][3].set(width / 2, 260);
arrEnem[2][3].set(width / 2 + sp, 260);
arrEnem[3][3].set(width / 2 - 2 * sp, 260);
arrEnem[4][3].set(width / 2 + 2 * sp, 260);
arrEnem[5][3].set(width / 2 - 3 * sp, 260);
arrEnem[6][3].set(width / 2 + 3 * sp, 260);
arrEnem[7][3].set(width / 2 - 4 * sp, 260);
}
void collideEnemy(int &score)
{
if (playerBullet.status)
{
for (int i = 0; i < NUM_COLUMNS; i++)
{
for (int j = 0; j < NUM_ROWS; j++) //collision detection ahead. Proceed with caution
{
if (arrEnem[i][j].active) //checks if enemy active
{
if (playerBullet.y_pos - 25 < arrEnem[i][j].y_pos + arrEnem[i][j].boxheight //checks if within box of enemy
&& playerBullet.y_pos > arrEnem[i][j].y_pos - arrEnem[i][j].boxheight
&& playerBullet.x_pos < arrEnem[i][j].x_pos + arrEnem[i][j].boxright
&& playerBullet.x_pos > arrEnem[i][j].x_pos - arrEnem[i][j].boxleft)
{
playerBullet.status = 0; //bullet set to not active
arrEnem[i][j].active = false; //enemy set to not active
switch (j)
{
case 0:
score += 40;
break;
case 1:
score += 20;
break;
case 2:
score += 20;
break;
default:
score += 10;
break;
}
numAlive--;
}
}
}
}
}
}
void moveDown(int &frameCount)
{
int interval = 60; //how long enemies take to move down depends on how many enemies left
if (numAlive > 30)
{
interval = 360;
}
else if (30 > numAlive && numAlive > 15)
{
interval = 300;
}
else if (15 > numAlive && numAlive > 8)
{
interval = 240;
}
else if (8 > numAlive && numAlive > 2)
{
interval = 120;
}
else if (numAlive == 0)
{
gameState = 3;
}
if (frameCount % interval == 0)
{
for (int i = 0; i < NUM_COLUMNS; i++)
{
for (int j = 0; j < NUM_ROWS; j++)
{
arrEnem[i][j].y_pos += 20;
}
}
}
}
void enemyShoot()
{
if (!enemyBullet.status)
{
for (int i = 0; i < NUM_COLUMNS; i++)
{
for (int j = 0; j < NUM_ROWS; j++)
{
if (arrEnem[i][j].active)
{
int randCol = rand() % NUM_COLUMNS;
int randRow = rand() % NUM_ROWS;
if (randCol == i && randRow == j)
{
enemyBullet.UpdatebulletPos(arrEnem[i][j]);
enemyBullet.status = 1;
break;
}
}
}
}
}
}
void updateBullet()
{
if (playerBullet.status == 0) //while bullet not active sets pos of ship as initial bullet pos
playerBullet.UpdateBulletPos(player);
}
bool reachEnd() //returns true if any enemy hits either of the sides
{
for (int i = 0; i < NUM_COLUMNS; i++)
{
for (int j = 0; j < NUM_ROWS; j++)
{
if (arrEnem[i][j].active) //checks if enemy active
{
if (width - 80 < arrEnem[i][j].x_pos && arrEnem[i][j].speed > 0) //if moving to the right and close to right wall
{
return true;
break;
}
else if (10 > arrEnem[i][j].x_pos && arrEnem[i][j].speed < 0) //if moving to the left and close to left wall
{
return true;
break;
}
}
}
}
return false;
}
void InitBackground(BackGround &back, float x, float y, float velx, float vely, int width, int height, int dirX, int dirY, ALLEGRO_BITMAP *image)
{
back.x = x;
back.y = y;
back.velX = velx;
back.velY = vely;
back.WIDTH = width;
back.HEIGHT = height;
back.dirX = dirX;
back.dirY = dirY;
back.image = image;
}
void UpdateBackground(BackGround &back)
{
back.x += back.velX * back.dirX;
if (back.x + back.WIDTH <= 0)
back.x = 0;
}
void DrawBackground(BackGround &back)
{
al_draw_bitmap(back.image, back.x, back.y, 0);
al_draw_bitmap(back.image, back.x + back.WIDTH, back.HEIGHT, 0);
al_draw_bitmap(back.image, back.x, back.HEIGHT, 0);
al_draw_bitmap(back.image, back.x + back.WIDTH, back.y, 0);
}
void InitBarriers()
{
redBarrier[0].SetBarrierpos(50, 500);
redBarrier[1].SetBarrierpos(435, 500);
redBarrier[2].SetBarrierpos(820, 500);
for (int i = 0; i < 3; i++)
{
redBarrier[i].setLife(5);
redBarrier[i].active = true;
}
}
void Reactivate_Enemies()
{
for (int i = 0; i < NUM_COLUMNS; i++)
{
for (int j = 0; j < NUM_ROWS; j++)
{
arrEnem[i][j].active = true;
}
}
}
void CollideBarrier()
{
for (int i = 0; i < 3; i++)
{
if (redBarrier[i].active && enemyBullet.status == 1)
{
if (enemyBullet.x_pos >(redBarrier[i].x_pos - redBarrier[i].Bleft) && enemyBullet.x_pos<(redBarrier[i].x_pos + redBarrier[i].Bright)
&& enemyBullet.y_pos>(redBarrier[i].y_pos - redBarrier[i].BHeight) && enemyBullet.y_pos < (redBarrier[i].y_pos + redBarrier[i].BHeight))
{
if (redBarrier[i].life_points != 0)
{
redBarrier[i].life_points--;
if (redBarrier[i].life_points == 0)
{
redBarrier[i].active = false;
}
}
enemyBullet.status = 0;
}
}
}
}
void BulletBarrierCollide()
{
for (int i = 0; i < 3; i++)
{
if (redBarrier[i].active && playerBullet.status == 1)
{
if (playerBullet.x_pos >(redBarrier[i].x_pos - redBarrier[i].Bleft) && playerBullet.x_pos<(redBarrier[i].x_pos + redBarrier[i].Bright)
&& playerBullet.y_pos>(redBarrier[i].y_pos - redBarrier[i].BHeight) && playerBullet.y_pos < (redBarrier[i].y_pos + redBarrier[i].BHeight))
{
playerBullet.status = 0;
}
}
}
}
void updateEnemyCount()
{
if (numAlive == 0)
{
EnemyWaveCount++;
numAlive = NUM_COLUMNS*NUM_ROWS;
Reactivate_Enemies();
Reactivate_Barriers();
setEnemy();
switch (player.health)
{
case 50:
player.health += 10;
break;
case 40:
player.health += 20;
break;
case 30:
player.health += 20;
break;
case 20:
player.health += 20;
break;
case 10:
player.health += 20;
break;
}
}
}
void EnemyReachEnd()
{
for (int i = 0; i < NUM_COLUMNS; i++)
{
for (int j = 0; j < NUM_ROWS; j++)
{
if (arrEnem[i][j].active == true)
{
if (arrEnem[i][j].y_pos > redBarrier[0].y_pos - redBarrier[0].BHeight)
{
gameState = 3;
}
}
}
}
}
void Reactivate_Barriers()
{
for (int b = 0; b < 3; b++)
{
redBarrier[b].life_points = 5;
redBarrier[b].active = true;
}
}
void UpdateBarrierImages(ALLEGRO_BITMAP *SpaceBarrier[])
{
for (int i = 0; i < 3; i++)
{
if (redBarrier[i].life_points != -1)
{
redBarrier[i].CurrentImage = SpaceBarrier[redBarrier[i].life_points];
}
if (redBarrier[i].life_points == 5)
redBarrier[i].CurrentImage = SpaceBarrier[4];
if (redBarrier[i].life_points == 4)
redBarrier[i].CurrentImage = SpaceBarrier[3];
if (redBarrier[i].life_points == 3)
redBarrier[i].CurrentImage = SpaceBarrier[2];
if (redBarrier[i].life_points == 2)
redBarrier[i].CurrentImage = SpaceBarrier[1];
if (redBarrier[i].life_points == 1)
redBarrier[i].CurrentImage = SpaceBarrier[0];
}
}
void DrawAnimation(ALLEGRO_BITMAP *X, int &y)
{
al_draw_bitmap(X, 50, y, 0);
al_draw_bitmap(X, 875, y, 0);
y = y - 1;
if (y == 0)
{
y = 600;
}
}
\ No newline at end of file
diff --git a/cb.png b/cb.png
deleted file mode 100644
index c4482d8..0000000
Binary files a/cb.png and /dev/null differ
diff --git a/logo.png b/logo.png
new file mode 100644
index 0000000..f6532eb
Binary files /dev/null and b/logo.png differ
diff --git a/player2.png b/player2.png
new file mode 100644
index 0000000..b51bb15
Binary files /dev/null and b/player2.png differ
diff --git a/scores.txt b/scores.txt
new file mode 100644
index 0000000..8bb1902
--- /dev/null
+++ b/scores.txt
@@ -0,0 +1,10 @@
+6160 muhammad vaid
+120 mo
+20 mo
+10 ENTER NAME
+0 NAME
+0 NAME
+0 NAME
+0 NAME
+0 NAME
+0 NAME
\ No newline at end of file
diff --git a/star_sky.png b/star_sky.png
deleted file mode 100644
index d4eefe5..0000000
Binary files a/star_sky.png and /dev/null differ
diff --git a/xwing.wav b/xwing.wav
deleted file mode 100644
index 5cb1d3a..0000000
Binary files a/xwing.wav and /dev/null differ
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Jun 15, 11:29 PM (2 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
72063
Default Alt Text
(42 KB)
Attached To
Mode
R72 DarthInvaders
Attached
Detach File
Event Timeline