Added score and life gaining mechanics.
This commit is contained in:
parent
6a63a73ec8
commit
d4e37b6179
@ -19,26 +19,26 @@
|
|||||||
8192
|
8192
|
||||||
8194
|
8194
|
||||||
8192
|
8192
|
||||||
15632
|
16272
|
||||||
8196
|
16276
|
||||||
8193
|
8193
|
||||||
2
|
2
|
||||||
25492
|
25492
|
||||||
8201
|
8201
|
||||||
16144
|
16272
|
||||||
8192
|
8192
|
||||||
15508
|
16276
|
||||||
8197
|
8197
|
||||||
8351
|
8351
|
||||||
8197
|
8197
|
||||||
8195
|
8195
|
||||||
8198
|
8198
|
||||||
273
|
273
|
||||||
15764
|
16276
|
||||||
8195
|
8195
|
||||||
8602
|
8602
|
||||||
8194
|
8194
|
||||||
8202
|
8202
|
||||||
8202
|
8202
|
||||||
16018
|
8194
|
||||||
15894
|
16278
|
||||||
|
@ -219,7 +219,7 @@ bool Enemy::Update(float fElapsedTime) {
|
|||||||
//Has Camo powerup code so camo masks the player position.
|
//Has Camo powerup code so camo masks the player position.
|
||||||
vf2d Enemy::GetPlayerPosition() {
|
vf2d Enemy::GetPlayerPosition() {
|
||||||
if (game->PlayerHasCamo()) {
|
if (game->PlayerHasCamo()) {
|
||||||
return { int(id) % game->MAP_SIZE.x,int(id) % game->MAP_SIZE.y };
|
return { float(int(id) % game->MAP_SIZE.x) + 0.5f,float(int(id) % game->MAP_SIZE.y)+0.5f };
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return game->GetPlayerPos();
|
return game->GetPlayerPos();
|
||||||
@ -227,6 +227,8 @@ vf2d Enemy::GetPlayerPosition() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Enemy::OnDeathEvent() {
|
void Enemy::OnDeathEvent() {
|
||||||
|
|
||||||
|
game->AddScore(game->enemyData[id].health*10);
|
||||||
game->SubtractTag();
|
game->SubtractTag();
|
||||||
if (game->enemyData[id].powerupDrop != PowerupType::NONE) {
|
if (game->enemyData[id].powerupDrop != PowerupType::NONE) {
|
||||||
game->SpawnPowerup(game->enemyData[id].powerupDrop, pos);
|
game->SpawnPowerup(game->enemyData[id].powerupDrop, pos);
|
||||||
@ -1927,6 +1929,14 @@ void FaceBall::RenderHud(float fElapsedTime) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (int x = -1; x <= 1; x++) {
|
||||||
|
for (int y = -1; y <= 1; y++) {
|
||||||
|
if (x != 0 && y != 0) {
|
||||||
|
DrawStringPropDecal(vf2d{ hudOffset + (float)(ScreenWidth() / 2 - GetTextSizeProp(std::to_string(score)).x * 4 / 2) + 32,(float)(36 - GetTextSizeProp(std::to_string(score)).y * 4) + 18 } + hudAdjustment + vf2d{float(x),float(y)}, std::to_string(score), VERY_DARK_RED, {4,4});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DrawStringPropDecal(vf2d{ hudOffset + (float)(ScreenWidth() / 2 - GetTextSizeProp(std::to_string(score)).x * 4 / 2) + 32,(float)(36 - GetTextSizeProp(std::to_string(score)).y * 4) + 18 } + hudAdjustment, std::to_string(score), { 192,96,96 }, { 4,4 });
|
||||||
DrawStringDecal(vf2d{ hudOffset + float(ScreenWidth() / 2 - GetTextSize(hudDisplayText).x / 2 * 4) + 32,float(ScreenHeight() - 128 - GetTextSize(hudDisplayText).y * 4) + 18 }, hudDisplayText, { 192,192,255 }, { 4,4 });
|
DrawStringDecal(vf2d{ hudOffset + float(ScreenWidth() / 2 - GetTextSize(hudDisplayText).x / 2 * 4) + 32,float(ScreenHeight() - 128 - GetTextSize(hudDisplayText).y * 4) + 18 }, hudDisplayText, { 192,192,255 }, { 4,4 });
|
||||||
SetDecalMode(DecalMode::ADDITIVE);
|
SetDecalMode(DecalMode::ADDITIVE);
|
||||||
DrawDecal({ float(ScreenWidth() / 2 - crosshair->sprite->width / 2),float(ScreenHeight() / 2 - crosshair->sprite->height / 2) }, crosshair, { 1,1 }, {255,255,255,128});
|
DrawDecal({ float(ScreenWidth() / 2 - crosshair->sprite->width / 2),float(ScreenHeight() / 2 - crosshair->sprite->height / 2) }, crosshair, { 1,1 }, {255,255,255,128});
|
||||||
@ -2176,7 +2186,7 @@ bool FaceBall::OnUserUpdate(float fElapsedTime)
|
|||||||
hasMapUpgrade = true;
|
hasMapUpgrade = true;
|
||||||
}break;
|
}break;
|
||||||
case PowerupType::COIN: {
|
case PowerupType::COIN: {
|
||||||
score += 1000;
|
AddScore(1000);
|
||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
powerups.erase(powerups.begin() + lastPowerupCollidedWith);
|
powerups.erase(powerups.begin() + lastPowerupCollidedWith);
|
||||||
@ -2238,6 +2248,20 @@ void FaceBall::OnTextEntryComplete(const std::string& sText) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//This function adds to the game score and increments lives appropriately.
|
||||||
|
void FaceBall::AddScore(int score) {
|
||||||
|
this->score += score;
|
||||||
|
if (lastAwardedScore/10000 != this->score/10000) {
|
||||||
|
lives++;
|
||||||
|
lastAwardedScore = this->score;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FaceBall::ResetScore() {
|
||||||
|
score = 0;
|
||||||
|
lastAwardedScore = 0;
|
||||||
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
FaceBall demo;
|
FaceBall demo;
|
||||||
|
@ -325,6 +325,7 @@ class FaceBall : public PixelGameEngine
|
|||||||
int hp = baseHP;
|
int hp = baseHP;
|
||||||
int maxHP=hp;
|
int maxHP=hp;
|
||||||
int score = 0;
|
int score = 0;
|
||||||
|
int lastAwardedScore = 0;
|
||||||
Object walls;
|
Object walls;
|
||||||
Object exit;
|
Object exit;
|
||||||
vec3d freeRoamCamera = { 1,0.5,1 };
|
vec3d freeRoamCamera = { 1,0.5,1 };
|
||||||
@ -395,6 +396,7 @@ class FaceBall : public PixelGameEngine
|
|||||||
void ConvertBulletColor(Mesh& bullet, Pixel col);
|
void ConvertBulletColor(Mesh& bullet, Pixel col);
|
||||||
void Display3DKillerModel();
|
void Display3DKillerModel();
|
||||||
int CheckPowerupCollision(vec3d movementVector, vf2d pos, float radius);
|
int CheckPowerupCollision(vec3d movementVector, vf2d pos, float radius);
|
||||||
|
void ResetScore();
|
||||||
public:
|
public:
|
||||||
vi2d MAP_SIZE;
|
vi2d MAP_SIZE;
|
||||||
float restingTriangleYDepth = 0.f;
|
float restingTriangleYDepth = 0.f;
|
||||||
@ -410,4 +412,6 @@ class FaceBall : public PixelGameEngine
|
|||||||
void HurtPlayer(EnemyID id, int damage=1,bool blinking = false);
|
void HurtPlayer(EnemyID id, int damage=1,bool blinking = false);
|
||||||
void SpawnPowerup(PowerupType type, vec3d pos);
|
void SpawnPowerup(PowerupType type, vec3d pos);
|
||||||
bool PlayerHasCamo();
|
bool PlayerHasCamo();
|
||||||
|
vf2d GetPlayerPos();
|
||||||
|
void AddScore(int score);
|
||||||
};
|
};
|
Loading…
x
Reference in New Issue
Block a user