some cleaning + corrected typo Ennemy --> Enemy ;-)
This commit is contained in:
parent
cc38291736
commit
3cfa8de6bb
|
@ -13,11 +13,12 @@ find_package(LibProf 2.4 REQUIRED)
|
|||
|
||||
set(SOURCES
|
||||
src/main.cpp
|
||||
src/collections.cpp
|
||||
src/player.cpp
|
||||
src/utilities.cpp
|
||||
src/particles.cpp
|
||||
src/bullet.cpp
|
||||
src/ennemy.cpp
|
||||
src/enemy.cpp
|
||||
src/starfieldshader.cpp
|
||||
|
||||
# ...
|
||||
|
@ -36,8 +37,8 @@ set(ASSETS_cg
|
|||
assets-cg/Sprites/Players/mainship1.png
|
||||
assets-cg/Sprites/Players/Satellite_Lvl1.png
|
||||
|
||||
assets-cg/Sprites/Ennemies/mainship2.png
|
||||
assets-cg/Sprites/Ennemies/Ennemy_Blue_Lvl1.png
|
||||
assets-cg/Sprites/Enemies/mainship2.png
|
||||
assets-cg/Sprites/Enemies/Enemy_Blue_Lvl1.png
|
||||
|
||||
|
||||
# ...
|
||||
|
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
@ -0,0 +1,98 @@
|
|||
#include "collections.h"
|
||||
|
||||
#include <vector>
|
||||
#include <gint/rtc.h>
|
||||
|
||||
|
||||
extern std::vector<Particle*> MyParticles;
|
||||
extern std::vector<Bullet*> MyPlayerBullets;
|
||||
extern std::vector<Enemy*> MyEnemies;
|
||||
extern Starfield *MyStarField;
|
||||
extern Player *MyPlayer;
|
||||
|
||||
|
||||
|
||||
void Create_Player_Shoot( uint8_t id )
|
||||
{
|
||||
|
||||
if (id==0)
|
||||
{
|
||||
Bullet *b = new Bullet( MyPlayer->x, MyPlayer->y-21, id );
|
||||
MyPlayerBullets.push_back( b );
|
||||
}
|
||||
else if (id==1)
|
||||
{
|
||||
Bullet *b1 = new Bullet( MyPlayer->x-17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b1 );
|
||||
|
||||
Bullet *b2 = new Bullet( MyPlayer->x+17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b2 );
|
||||
}
|
||||
else if (id==2)
|
||||
{
|
||||
Bullet *b1 = new Bullet( MyPlayer->x, MyPlayer->y-21, id );
|
||||
MyPlayerBullets.push_back( b1 );
|
||||
|
||||
Bullet *b2 = new Bullet( MyPlayer->x+17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b2 );
|
||||
|
||||
Bullet *b3 = new Bullet( MyPlayer->x-17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b3 );
|
||||
}
|
||||
}
|
||||
|
||||
void Create_Ennemies( void )
|
||||
{
|
||||
Enemy* e1 = new Enemy( 198, 50, 0);
|
||||
e1->Set_Speed_Vector( 1, -6, 1 );
|
||||
MyEnemies.push_back( e1 );
|
||||
|
||||
Enemy* e2 = new Enemy( 198, 50, 0);
|
||||
e2->Set_Speed_Vector( 1, 6, 1 );
|
||||
MyEnemies.push_back( e2 );
|
||||
|
||||
Enemy* e3 = new Enemy( 198, 50, 1);
|
||||
e3->Set_Speed_Vector( 1, -3, 3 );
|
||||
MyEnemies.push_back( e3 );
|
||||
|
||||
Enemy* e4 = new Enemy( 198, 50, 1);
|
||||
e4->Set_Speed_Vector( 1, 3, 3 );
|
||||
MyEnemies.push_back( e4 );
|
||||
}
|
||||
|
||||
|
||||
void Create_Explosion( uint16_t xexplosion, uint16_t yexplosion )
|
||||
{
|
||||
srand(rtc_ticks());
|
||||
|
||||
for(int i=0; i<=50; i++)
|
||||
{
|
||||
Particle *p = new Particle( xexplosion, yexplosion, i );
|
||||
MyParticles.push_back( p );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Clean_Everything( void )
|
||||
{
|
||||
for(unsigned int i=0; i<MyEnemies.size(); i++)
|
||||
{
|
||||
delete( MyEnemies[i] );
|
||||
MyEnemies.erase( MyEnemies.begin() + i );
|
||||
}
|
||||
MyEnemies.clear();
|
||||
|
||||
for(unsigned int i=0; i<MyParticles.size(); i++)
|
||||
{
|
||||
delete( MyParticles[i] );
|
||||
MyParticles.erase( MyParticles.begin() + i );
|
||||
}
|
||||
MyParticles.clear();
|
||||
|
||||
for(unsigned int i=0; i<MyPlayerBullets.size(); i++)
|
||||
{
|
||||
delete( MyPlayerBullets[i] );
|
||||
MyPlayerBullets.erase( MyPlayerBullets.begin() + i );
|
||||
}
|
||||
MyPlayerBullets.clear();
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#ifndef COLLECTIONS_H
|
||||
#define COLLECTIONS_H
|
||||
|
||||
|
||||
#include "player.h"
|
||||
#include "utilities.h"
|
||||
#include "particles.h"
|
||||
#include "bullet.h"
|
||||
#include "enemy.h"
|
||||
#include "MyAzurShaders.h"
|
||||
|
||||
|
||||
void Create_Player_Shoot( uint8_t id );
|
||||
void Create_Ennemies( void );
|
||||
void Create_Explosion( uint16_t xexplosion, uint16_t yexplosion );
|
||||
void Clean_Everything( void );
|
||||
|
||||
|
||||
#endif
|
|
@ -1,12 +1,12 @@
|
|||
#include "ennemy.h"
|
||||
#include "enemy.h"
|
||||
#include "bullet.h"
|
||||
#include <num/num.h>
|
||||
|
||||
|
||||
extern bopti_image_t img_mainship2;
|
||||
extern bopti_image_t img_Ennemy_Blue_Lvl1;
|
||||
extern bopti_image_t img_Enemy_Blue_Lvl1;
|
||||
|
||||
Ennemy::Ennemy( int16_t _x, int16_t _y, uint8_t _id )
|
||||
Enemy::Enemy( int16_t _x, int16_t _y, uint8_t _id )
|
||||
{
|
||||
x = libnum::num( _x );
|
||||
y = libnum::num( _y );
|
||||
|
@ -24,8 +24,8 @@ Ennemy::Ennemy( int16_t _x, int16_t _y, uint8_t _id )
|
|||
}
|
||||
else if (ID==1)
|
||||
{
|
||||
width = img_Ennemy_Blue_Lvl1.width/2;
|
||||
height = img_Ennemy_Blue_Lvl1.height/2;
|
||||
width = img_Enemy_Blue_Lvl1.width/2;
|
||||
height = img_Enemy_Blue_Lvl1.height/2;
|
||||
speed = 2;
|
||||
}
|
||||
|
||||
|
@ -40,13 +40,13 @@ Ennemy::Ennemy( int16_t _x, int16_t _y, uint8_t _id )
|
|||
else if (ID==1) life = 200;
|
||||
}
|
||||
|
||||
Ennemy::~Ennemy()
|
||||
Enemy::~Enemy()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Ennemy::Update( float dt )
|
||||
void Enemy::Update( float dt )
|
||||
{
|
||||
libnum::num a = libnum::num( dt / 60000.0f );
|
||||
x += a * libnum::num( dirx * speed );
|
||||
|
@ -63,14 +63,14 @@ void Ennemy::Update( float dt )
|
|||
if (life<=0) toberemoved=true;
|
||||
}
|
||||
|
||||
void Ennemy::Render( void )
|
||||
void Enemy::Render( void )
|
||||
{
|
||||
if (ID==0) azrp_image_p8_effect(xmin, ymin, &img_mainship2, IMAGE_VFLIP);
|
||||
if (ID==1) azrp_image_p8_effect(xmin, ymin, &img_Ennemy_Blue_Lvl1, DIMAGE_NONE);
|
||||
if (ID==1) azrp_image_p8_effect(xmin, ymin, &img_Enemy_Blue_Lvl1, DIMAGE_NONE);
|
||||
}
|
||||
|
||||
|
||||
bool Ennemy::Test_Impact( Bullet *projectile )
|
||||
bool Enemy::Test_Impact( Bullet *projectile )
|
||||
{
|
||||
if (projectile->x >= xmin && projectile->x <= xmax && projectile->y >= ymin && projectile->y <= ymax )
|
||||
{
|
||||
|
@ -81,7 +81,7 @@ bool Ennemy::Test_Impact( Bullet *projectile )
|
|||
else return false;
|
||||
}
|
||||
|
||||
void Ennemy::Set_Speed_Vector( uint8_t _sp, uint8_t _xd, uint8_t _yd)
|
||||
void Enemy::Set_Speed_Vector( uint8_t _sp, uint8_t _xd, uint8_t _yd)
|
||||
{
|
||||
speed = _sp;
|
||||
dirx = _xd;
|
|
@ -1,5 +1,5 @@
|
|||
#ifndef ENNEMY_H
|
||||
#define ENNEMY_H
|
||||
#ifndef ENEMY_H
|
||||
#define ENEMY_H
|
||||
|
||||
#include <azur/azur.h>
|
||||
#include <azur/gint/render.h>
|
||||
|
@ -11,11 +11,11 @@
|
|||
#include "bullet.h"
|
||||
|
||||
|
||||
class Ennemy
|
||||
class Enemy
|
||||
{
|
||||
public:
|
||||
Ennemy( int16_t _x, int16_t _y, uint8_t _id );
|
||||
~Ennemy();
|
||||
Enemy( int16_t _x, int16_t _y, uint8_t _id );
|
||||
~Enemy();
|
||||
|
||||
void Update( float dt );
|
||||
void Render( void );
|
157
src/main.cpp
157
src/main.cpp
|
@ -22,22 +22,30 @@
|
|||
|
||||
#include <num/num.h>
|
||||
|
||||
#include "collections.h"
|
||||
|
||||
|
||||
#include "player.h"
|
||||
#include "utilities.h"
|
||||
#include "particles.h"
|
||||
#include "bullet.h"
|
||||
#include "ennemy.h"
|
||||
#include "enemy.h"
|
||||
#include "MyAzurShaders.h"
|
||||
|
||||
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
|
||||
#include "MyAzurShaders.h"
|
||||
|
||||
|
||||
|
||||
bool screenshot = false;
|
||||
bool record = false;
|
||||
bool textoutput = false;
|
||||
bool exitToOS = false;
|
||||
uint8_t texttodraw=1;
|
||||
|
||||
|
||||
|
||||
#define SCALE_PIXEL 1
|
||||
#define X_RESOL (DWIDTH / SCALE_PIXEL)
|
||||
|
@ -46,21 +54,16 @@ bool exitToOS = false;
|
|||
#define BIAS 1
|
||||
#define NOBIAS (1-BIAS)
|
||||
|
||||
|
||||
std::vector<Particle*> MyParticles;
|
||||
std::vector<Bullet*> MyPlayerBullets;
|
||||
std::vector<Ennemy*> MyEnnemies;
|
||||
|
||||
std::vector<Enemy*> MyEnemies;
|
||||
|
||||
Starfield *MyStarField;
|
||||
uint8_t texttodraw=1;
|
||||
|
||||
extern bopti_image_t img_mainship1;
|
||||
|
||||
|
||||
Player *MyPlayer;
|
||||
|
||||
|
||||
|
||||
static void hook_prefrag(int id, void *fragment, int size)
|
||||
{
|
||||
if(!screenshot && !record)
|
||||
|
@ -93,97 +96,6 @@ static void hook_prefrag(int id, void *fragment, int size)
|
|||
}
|
||||
}
|
||||
|
||||
/*void Create_Starfield( void )
|
||||
{
|
||||
MyStarField = new Starfield();
|
||||
}*/
|
||||
|
||||
|
||||
void Create_Player_Shoot( uint8_t id )
|
||||
{
|
||||
|
||||
if (id==0)
|
||||
{
|
||||
Bullet *b = new Bullet( MyPlayer->x, MyPlayer->y-21, id );
|
||||
MyPlayerBullets.push_back( b );
|
||||
}
|
||||
else if (id==1)
|
||||
{
|
||||
Bullet *b1 = new Bullet( MyPlayer->x-17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b1 );
|
||||
|
||||
Bullet *b2 = new Bullet( MyPlayer->x+17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b2 );
|
||||
}
|
||||
else if (id==2)
|
||||
{
|
||||
Bullet *b1 = new Bullet( MyPlayer->x, MyPlayer->y-21, id );
|
||||
MyPlayerBullets.push_back( b1 );
|
||||
|
||||
Bullet *b2 = new Bullet( MyPlayer->x+17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b2 );
|
||||
|
||||
Bullet *b3 = new Bullet( MyPlayer->x-17, MyPlayer->y, id );
|
||||
MyPlayerBullets.push_back( b3 );
|
||||
}
|
||||
}
|
||||
|
||||
void Create_Ennemies( void )
|
||||
{
|
||||
Ennemy* e1 = new Ennemy( 198, 50, 0);
|
||||
e1->Set_Speed_Vector( 1, -6, 1 );
|
||||
MyEnnemies.push_back( e1 );
|
||||
|
||||
Ennemy* e2 = new Ennemy( 198, 50, 0);
|
||||
e2->Set_Speed_Vector( 1, 6, 1 );
|
||||
MyEnnemies.push_back( e2 );
|
||||
|
||||
Ennemy* e3 = new Ennemy( 198, 50, 1);
|
||||
e3->Set_Speed_Vector( 1, -3, 3 );
|
||||
MyEnnemies.push_back( e3 );
|
||||
|
||||
Ennemy* e4 = new Ennemy( 198, 50, 1);
|
||||
e4->Set_Speed_Vector( 1, 3, 3 );
|
||||
MyEnnemies.push_back( e4 );
|
||||
}
|
||||
|
||||
|
||||
void Create_Explosion( uint16_t xexplosion, uint16_t yexplosion )
|
||||
{
|
||||
srand(rtc_ticks());
|
||||
|
||||
for(int i=0; i<=50; i++)
|
||||
{
|
||||
Particle *p = new Particle( xexplosion, yexplosion, i );
|
||||
MyParticles.push_back( p );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Clean_Everything( void )
|
||||
{
|
||||
for(unsigned int i=0; i<MyEnnemies.size(); i++)
|
||||
{
|
||||
delete( MyEnnemies[i] );
|
||||
MyEnnemies.erase( MyEnnemies.begin() + i );
|
||||
}
|
||||
MyEnnemies.clear();
|
||||
|
||||
for(unsigned int i=0; i<MyParticles.size(); i++)
|
||||
{
|
||||
delete( MyParticles[i] );
|
||||
MyParticles.erase( MyParticles.begin() + i );
|
||||
}
|
||||
MyParticles.clear();
|
||||
|
||||
for(unsigned int i=0; i<MyPlayerBullets.size(); i++)
|
||||
{
|
||||
delete( MyPlayerBullets[i] );
|
||||
MyPlayerBullets.erase( MyPlayerBullets.begin() + i );
|
||||
}
|
||||
MyPlayerBullets.clear();
|
||||
}
|
||||
|
||||
|
||||
static void update( float dt )
|
||||
{
|
||||
|
@ -192,17 +104,17 @@ static void update( float dt )
|
|||
MyPlayer->Update( dt );
|
||||
|
||||
|
||||
for(auto& e : MyEnnemies)
|
||||
for(auto& e : MyEnemies)
|
||||
e->Update( dt );
|
||||
|
||||
for(unsigned int i=0; i<MyEnnemies.size(); i++)
|
||||
for(unsigned int i=0; i<MyEnemies.size(); i++)
|
||||
{
|
||||
// Check if the property toberemoved has been set to "true" for particle deletion
|
||||
if (MyEnnemies[i]->toberemoved == true)
|
||||
if (MyEnemies[i]->toberemoved == true)
|
||||
{
|
||||
Create_Explosion( (int) MyEnnemies[i]->x, (int) MyEnnemies[i]->y );
|
||||
delete( MyEnnemies[i] );
|
||||
MyEnnemies.erase( MyEnnemies.begin() + i );
|
||||
Create_Explosion( (int) MyEnemies[i]->x, (int) MyEnemies[i]->y );
|
||||
delete( MyEnemies[i] );
|
||||
MyEnemies.erase( MyEnemies.begin() + i );
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -234,9 +146,9 @@ static void update( float dt )
|
|||
|
||||
for(unsigned int i=0; i<MyPlayerBullets.size(); i++)
|
||||
{
|
||||
for( unsigned j=0; j<MyEnnemies.size(); j++ )
|
||||
for( unsigned j=0; j<MyEnemies.size(); j++ )
|
||||
{
|
||||
if(MyEnnemies[j]->Test_Impact(MyPlayerBullets[i])==true)
|
||||
if(MyEnemies[j]->Test_Impact(MyPlayerBullets[i])==true)
|
||||
{
|
||||
//TODO : we can create a list of impacts here, to be rendered later on
|
||||
}
|
||||
|
@ -274,17 +186,17 @@ static void get_inputs( void )
|
|||
if(keydown(KEY_EXIT)) {exitToOS = true; };
|
||||
|
||||
|
||||
#if(DEBUG_MODE)
|
||||
if(keydown(KEY_7) && usb_is_open() ) {screenshot = true;};
|
||||
if(keydown(KEY_8) && usb_is_open()) {record = true; };
|
||||
if(keydown(KEY_9) && usb_is_open()) {record = false; };
|
||||
if(keydown(KEY_DEL) && usb_is_open()) {textoutput = true;};
|
||||
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F1)) {texttodraw=0;}
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F2)) {texttodraw=1;}
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F3)) {texttodraw=2;}
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F4)) {texttodraw=3;}
|
||||
#endif
|
||||
#if(DEBUG_MODE)
|
||||
if(keydown(KEY_7) && usb_is_open() ) {screenshot = true;};
|
||||
if(keydown(KEY_8) && usb_is_open()) {record = true; };
|
||||
if(keydown(KEY_9) && usb_is_open()) {record = false; };
|
||||
if(keydown(KEY_DEL) && usb_is_open()) {textoutput = true;};
|
||||
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F1)) {texttodraw=0;}
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F2)) {texttodraw=1;}
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F3)) {texttodraw=2;}
|
||||
if(keydown(KEY_SHIFT) && keydown(KEY_F4)) {texttodraw=3;}
|
||||
#endif
|
||||
|
||||
|
||||
if(keydown(KEY_LEFT))
|
||||
|
@ -318,8 +230,6 @@ static void get_inputs( void )
|
|||
|
||||
static kmalloc_arena_t extended_ram = { 0 };
|
||||
|
||||
|
||||
|
||||
bool AddMoreRAM( void )
|
||||
{
|
||||
/* allow more RAM */
|
||||
|
@ -368,7 +278,6 @@ bool AddMoreRAM( void )
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void FreeMoreRAM( void )
|
||||
{
|
||||
memset(extended_ram.start, 0, (char *)extended_ram.end - (char *)extended_ram.start);
|
||||
|
@ -444,7 +353,7 @@ int main(void)
|
|||
#if(BIAS)
|
||||
if (texttodraw>=1) Azur_draw_text(1,01, "FPS = %.0f", (float) (1000000.0f / elapsedTime) );
|
||||
if (texttodraw>=1) Azur_draw_text(1,11, "Part.= %d - Bull.= %d", MyParticles.size(), MyPlayerBullets.size() );
|
||||
if (texttodraw>=1 && !MyEnnemies.empty()) Azur_draw_text(1,21, "Ennmy Life= %d", MyEnnemies[0]->life );
|
||||
if (texttodraw>=1 && !MyEnemies.empty()) Azur_draw_text(1,21, "Ennmy Life= %d", MyEnemies[0]->life );
|
||||
if (texttodraw>=2) Azur_draw_text(1,31, "Update = %.0f mc secs", (float) time_update );
|
||||
if (texttodraw>=2) Azur_draw_text(1,41, "Render = %.0f mc secs", (float) time_render );
|
||||
if (texttodraw>=2) Azur_draw_text(1,51, ">Total = %.3f ml secs", (float) elapsedTime / 1000.0f );
|
||||
|
@ -465,7 +374,7 @@ int main(void)
|
|||
for(auto& b : MyPlayerBullets)
|
||||
b->Render();
|
||||
|
||||
for(auto& e : MyEnnemies)
|
||||
for(auto& e : MyEnemies)
|
||||
e->Render();
|
||||
|
||||
for(auto& p : MyParticles)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "player.h"
|
||||
#include "bullet.h"
|
||||
#include "ennemy.h"
|
||||
#include "enemy.h"
|
||||
#include <num/num.h>
|
||||
#include <gint/rtc.h>
|
||||
#include <math.h>
|
||||
|
@ -102,7 +102,7 @@ bool Player::Test_Impact( Bullet *projectile )
|
|||
else return false;
|
||||
}
|
||||
|
||||
bool Player::Test_Impact( Ennemy *adverseship )
|
||||
bool Player::Test_Impact( Enemy *adverseship )
|
||||
{
|
||||
if (adverseship->xmax >= xmin && adverseship->xmin <= xmax && adverseship->ymax >= ymin && adverseship->ymin <= ymax )
|
||||
{
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include <num/num.h>
|
||||
#include "bullet.h"
|
||||
#include "ennemy.h"
|
||||
#include "enemy.h"
|
||||
|
||||
|
||||
class Player
|
||||
|
@ -22,7 +22,7 @@ class Player
|
|||
void Render( void );
|
||||
|
||||
bool Test_Impact( Bullet *projectile );
|
||||
bool Test_Impact( Ennemy *adverseship );
|
||||
bool Test_Impact( Enemy *adverseship );
|
||||
void Set_Speed( uint8_t _sp );
|
||||
|
||||
bool Shoot_OK( uint32_t tempshoot, uint8_t shootID );
|
||||
|
|
Loading…
Reference in New Issue