From 447881a04421506e0d62f85da51305fd721ca058 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Thu, 20 Apr 2023 18:03:21 -0500 Subject: [PATCH] All powerup capsule types working. --- Faceball2030/Editor.h | 16 +++++++-------- Faceball2030/assets/Powerup2.mtl | 2 +- Faceball2030/assets/Powerup2.wings | Bin 22432 -> 22458 bytes Faceball2030/assets/map/map1.map | 20 +++++++++++------- Faceball2030/assets/octahedron3_auv2.png | Bin 0 -> 5274 bytes Faceball2030/main.cpp | 25 +++++++++++++++-------- Faceball2030/main.h | 1 - 7 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 Faceball2030/assets/octahedron3_auv2.png diff --git a/Faceball2030/Editor.h b/Faceball2030/Editor.h index dd55ffe..e570df0 100644 --- a/Faceball2030/Editor.h +++ b/Faceball2030/Editor.h @@ -16,14 +16,14 @@ enum EnemyID { ISHOOT2, SHOOTME_ARMOR, SONAR, - COIN = 56, - POWERUP_ARMOR = 57, - POWERUP_SPEED = 58, - POWERUP_SHOT = 59, - SPECIAL_CAMO = 60, - SPECIAL_STOP = 61, - SPECIAL_SHIELD = 62, - AREA_MAP = 63, + POWERUP_ARMOR = 56, + POWERUP_SPEED = 57, + POWERUP_SHOT = 58, + SPECIAL_STOP = 59, + SPECIAL_SHIELD = 60, + SPECIAL_CAMO = 61, + AREA_MAP = 62, + COIN = 63, }; /* diff --git a/Faceball2030/assets/Powerup2.mtl b/Faceball2030/assets/Powerup2.mtl index 1c5f44d..d866d25 100644 --- a/Faceball2030/assets/Powerup2.mtl +++ b/Faceball2030/assets/Powerup2.mtl @@ -7,5 +7,5 @@ Kd 1.0 1.0 1.0 Ka 0.0 0.0 0.0 Ks 0.19 0.19 0.19 Ke 0.0 0.0 0.0 -map_Kd octahedron3_auv.png +map_Kd octahedron3_auv2.png diff --git a/Faceball2030/assets/Powerup2.wings b/Faceball2030/assets/Powerup2.wings index 0d1ad0632693fd14eac713bc67ccba1557d3a6de..9ce1e29585ac1e4c6148c652d226d96971622ebb 100644 GIT binary patch delta 15784 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 Mb7)59Nbb)60k5>O^#A|> delta 15695 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 a?)}o=dq|$qrxgFQk+L$Tnh%V#yzxIZs>YrG literal 0 HcmV?d00001 diff --git a/Faceball2030/main.cpp b/Faceball2030/main.cpp index f99cbdc..9fcfd46 100644 --- a/Faceball2030/main.cpp +++ b/Faceball2030/main.cpp @@ -163,7 +163,12 @@ bool Powerup::Update(float fElapsedTime) { } void FaceBall::SpawnPowerup(PowerupType type, vec3d pos) { - Mesh& mesh = (type <= PowerupType::SHOTS) ? powerup : powerup2; + Mesh mesh = (type <= PowerupType::SHOTS) ? powerup : powerup2; + for (Triangle& t : mesh.tris) { + t.col[0] = powerupColorData[type]; + t.col[1] = powerupColorData[type]; + t.col[2] = powerupColorData[type]; + } powerups.push_back({ mesh,pos,0,type }); } @@ -198,9 +203,12 @@ void FaceBall::LoadLevel(int level) mapFloor.tris.push_back({ {{(float)x,0,(float)y},{(float)x,0,(float)y + 1},{(float)x + 1,0,(float)y}},{{0,0},{0,1},{1,0}},{WHITE,WHITE,WHITE}, floor_tex }); mapFloor.tris.push_back({ {{(float)x + 1,0,(float)y},{(float)x,0,(float)y + 1},{(float)x + 1,0,(float)y + 1}},{{1,0},{0,1},{1,1}},{WHITE,WHITE,WHITE}, floor_tex }); EnemyID id = mapData[y][x].enemyId; - if (id>=SHOOTME&& id < COIN) { + if (id>=SHOOTME&& id < POWERUP_ARMOR) { enemies.push_back({ id,vec3d{x + 0.5f,0,y + 0.5f},((int)mapData[y][x].facingDir-1)*PI/2,enemyData[id].radius}); } + if (id >= POWERUP_ARMOR) { + SpawnPowerup(PowerupType((int)id-55), vec3d{ x + 0.5f,0,y + 0.5f }); + } if (id == EXIT) { exitCoords = { x,y }; } @@ -846,9 +854,9 @@ void FaceBall::RenderPowerupMesh(mat4x4& matView, std::vector& vecTria triTransformed.uv[0] = tri.uv[0]; triTransformed.uv[1] = tri.uv[1]; triTransformed.uv[2] = tri.uv[2]; - triTransformed.col[0] = tri.col[0]; - triTransformed.col[1] = tri.col[1]; - triTransformed.col[2] = tri.col[2]; + triTransformed.col[0] = tri.col[0] * p.colorCycle; + triTransformed.col[1] = tri.col[1] * p.colorCycle; + triTransformed.col[2] = tri.col[2] * p.colorCycle; triTransformed.tex = tri.tex; vec3d normal, line1, line2; @@ -1135,14 +1143,14 @@ void FaceBall::RenderWorld() { RenderMesh(matView, vecTrianglesToRaster, enemy); } } - for (auto& powerup : powerups) { - RenderPowerupMesh(matView, vecTrianglesToRaster, powerup); - } for (auto& bullet : bullets) { RenderBulletMesh(matView, vecTrianglesToRasterTranslucent, bullet); } RenderMesh(matView, vecTrianglesToRaster, walls); RenderMesh(matView, vecTrianglesToRasterTranslucent, walls, true); + for (auto& powerup : powerups) { + RenderPowerupMesh(matView, vecTrianglesToRasterTranslucent, powerup); + } //std::sort(vecTrianglesToRaster.begin(),vecTrianglesToRaster.end(),[](triangle&t1,triangle&t2){return (t1.p[0].z+t1.p[1].z+t1.p[2].z)/3.0f>(t2.p[0].z+t2.p[1].z+t2.p[2].z)/3.0f;}); ClearBuffer(BLACK, true); @@ -1531,6 +1539,7 @@ bool FaceBall::OnUserCreate() mapFloor.texture = floor_tex; InitializeEnemyData(); + InitializePowerupColors(); LoadLevel(1); diff --git a/Faceball2030/main.h b/Faceball2030/main.h index 65f0461..a0f192c 100644 --- a/Faceball2030/main.h +++ b/Faceball2030/main.h @@ -366,7 +366,6 @@ class FaceBall : public PixelGameEngine bool OnUserUpdate(float fElapsedTime) override; void OnTextEntryComplete(const std::string& sText) override; void InitializeEnemyData(); - void InitializeBulletColors(); void InitializePowerupColors(); void LoadLevel(int level); void RenderBulletMesh(mat4x4& matView, std::vector& vecTrianglesToRaster, Bullet& b,bool translucent=true);