debut de systeme de score, reste plus qu'a 1. lire le score depuis la config, et 2 ajouter le score au joueur associer lorsque sa torpille collide avec un invader
This commit is contained in:
parent
3d9c50bf6e
commit
07da695d88
@ -16,7 +16,6 @@ players:
|
|||||||
right: d
|
right: d
|
||||||
shoot: s
|
shoot: s
|
||||||
|
|
||||||
|
|
||||||
# Enemies config
|
# Enemies config
|
||||||
invaders:
|
invaders:
|
||||||
size: 4
|
size: 4
|
||||||
@ -31,3 +30,8 @@ projectiles:
|
|||||||
torpedos:
|
torpedos:
|
||||||
speed: 2
|
speed: 2
|
||||||
width: 10
|
width: 10
|
||||||
|
|
||||||
|
points:
|
||||||
|
invader3: 100
|
||||||
|
invader2: 250
|
||||||
|
invader1: 600
|
@ -4,6 +4,8 @@
|
|||||||
struct Player{
|
struct Player{
|
||||||
unsigned lives;
|
unsigned lives;
|
||||||
unsigned x;
|
unsigned x;
|
||||||
|
unsigned id;
|
||||||
|
unsigned score;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -3,14 +3,14 @@
|
|||||||
|
|
||||||
#include<vector>
|
#include<vector>
|
||||||
#include<mingl/mingl.h>
|
#include<mingl/mingl.h>
|
||||||
#include "position.h"
|
#include"position.h"
|
||||||
|
|
||||||
// hardcoded values
|
// hardcoded values
|
||||||
#define PLAYER_HEIGHT 100
|
#define PLAYER_HEIGHT 100
|
||||||
#define PROJ_LENGTH_FACTOR 2
|
#define PROJ_LENGTH_FACTOR 2
|
||||||
|
|
||||||
enum WinValue{
|
enum WinValue{
|
||||||
NOBODY, // should never be used, but hey
|
NOBODY, // should never be used
|
||||||
PLAYERS,
|
PLAYERS,
|
||||||
INVADERS,
|
INVADERS,
|
||||||
};
|
};
|
||||||
@ -22,7 +22,12 @@ typedef vector<Alien> aliensLine;
|
|||||||
typedef vector<aliensLine> aliensGrid;
|
typedef vector<aliensLine> aliensGrid;
|
||||||
|
|
||||||
typedef position missile;
|
typedef position missile;
|
||||||
typedef position torpedo;
|
|
||||||
|
class torpedo : public nsGraphics::Vec2D {
|
||||||
|
public:
|
||||||
|
topedo(int x, int y);
|
||||||
|
unsigned playerID;
|
||||||
|
};
|
||||||
|
|
||||||
// didn't want to use position because of the semantic with x and y
|
// didn't want to use position because of the semantic with x and y
|
||||||
bool lineCollideCheck(unsigned start1, unsigned end1, unsigned start2, unsigned end2);
|
bool lineCollideCheck(unsigned start1, unsigned end1, unsigned start2, unsigned end2);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#define ISPRESSED(X) window.isPressed({X, false})
|
#define ISPRESSED(X) window.isPressed({X, false})
|
||||||
|
|
||||||
void Game::managePlayerMoves(PlayerDef& pdef, unsigned& playerX){
|
void Game::managePlayerMoves(PlayerDef& pdef, unsigned& playerX, unsigned playerId){
|
||||||
if (ISPRESSED(pdef.keys.left)){
|
if (ISPRESSED(pdef.keys.left)){
|
||||||
if(playerX < confData.playersSpeed) playerX = 0;
|
if(playerX < confData.playersSpeed) playerX = 0;
|
||||||
else playerX = playerX - confData.playersSpeed;
|
else playerX = playerX - confData.playersSpeed;
|
||||||
@ -16,15 +16,15 @@ void Game::managePlayerMoves(PlayerDef& pdef, unsigned& playerX){
|
|||||||
else playerX = playerX + confData.playersSpeed;
|
else playerX = playerX + confData.playersSpeed;
|
||||||
}
|
}
|
||||||
if(ISPRESSED(pdef.keys.shoot)){
|
if(ISPRESSED(pdef.keys.shoot)){
|
||||||
torpedos.emplace_back(playerX + confData.playersWidth / 2, pm.getScreenHeight() - PLAYER_HEIGHT);
|
torpedos.emplace_back(playerX + confData.playersWidth / 2, pm.getScreenHeight() - PLAYER_HEIGHT, playerId );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Makes the players play once
|
/** Makes the players play once
|
||||||
*/
|
*/
|
||||||
void Game::managePlayers(){
|
void Game::managePlayers(){
|
||||||
managePlayerMoves(confData.p1Def, p1.x);
|
managePlayerMoves(confData.p1Def, p1.x,p1.id);
|
||||||
if(playMode==PlayMode::TWO_LOCAL)managePlayerMoves(confData.p2Def, p2.x);
|
if(playMode==PlayMode::TWO_LOCAL)managePlayerMoves(confData.p2Def, p2.x, p2.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Makes the invaders play once, and check lower bounds
|
/** Makes the invaders play once, and check lower bounds
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
|
torpedo::torpedo(int x, int y) : position(x, y) {}
|
||||||
|
|
||||||
bool lineCollideCheck(unsigned start1, unsigned end1, unsigned start2, unsigned end2){
|
bool lineCollideCheck(unsigned start1, unsigned end1, unsigned start2, unsigned end2){
|
||||||
return start1 < end2 != start2 < end1;
|
return start1 < end2 != start2 < end1;
|
||||||
// if true, are colliding. I like truth tables
|
// if true, are colliding. I like truth tables
|
||||||
|
Loading…
Reference in New Issue
Block a user