Page MenuHomePhabricator (Chris)

No OneTemporary

Authored By
Unknown
Size
42 KB
Referenced Files
None
Subscribers
None
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

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)

Event Timeline