aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--game/enemy/EnemyBulletScript.cpp4
-rw-r--r--game/enemy/EnemyBulletSubScene.cpp10
-rw-r--r--game/enemy/EnemyConfig.h7
-rw-r--r--game/enemy/EnemyScript.cpp8
-rw-r--r--game/enemy/EnemySubScene.cpp18
-rw-r--r--game/player/PlayerBulletScript.cpp2
-rw-r--r--game/player/PlayerBulletSubScene.cpp7
-rw-r--r--game/player/PlayerScript.cpp9
8 files changed, 33 insertions, 32 deletions
diff --git a/game/enemy/EnemyBulletScript.cpp b/game/enemy/EnemyBulletScript.cpp
index ba27b9d..55160ab 100644
--- a/game/enemy/EnemyBulletScript.cpp
+++ b/game/enemy/EnemyBulletScript.cpp
@@ -3,6 +3,8 @@
#include <crepe/api/Camera.h>
#include <crepe/api/Rigidbody.h>
#include <crepe/api/Metadata.h>
+
+#include "EnemyConfig.h"
using namespace crepe;
using namespace std;
void EnemyBulletScript::init(){
@@ -28,7 +30,7 @@ void EnemyBulletScript::despawn_bullet(){
Transform& transform = this->get_component<Transform>();
Rigidbody& bullet_body = this->get_component<Rigidbody>();
bullet_body.active = false;
- transform.position = {0,-750};
+ transform.position = ENEMY_BULLET_POOL_LOCATION;
}
bool EnemyBulletScript::on_collide(const CollisionEvent& e){
diff --git a/game/enemy/EnemyBulletSubScene.cpp b/game/enemy/EnemyBulletSubScene.cpp
index 488dc03..dd79678 100644
--- a/game/enemy/EnemyBulletSubScene.cpp
+++ b/game/enemy/EnemyBulletSubScene.cpp
@@ -10,7 +10,7 @@
#include <crepe/api/Sprite.h>
#include <crepe/api/AI.h>
#include "../Config.h"
-
+#include "EnemyConfig.h"
#include "EnemyBulletSubScene.h"
#include "EnemyScript.h"
@@ -22,26 +22,26 @@ int EnemyBulletSubScene::create(Scene & scn){
static int counter = 0;
string unique_name = "enemy_bullet_" + to_string(counter++);
- GameObject bullet = scn.new_object(unique_name.c_str(),"enemy_bullet",vec2{0,-750},0,1);
+ GameObject bullet = scn.new_object(unique_name.c_str(),"enemy_bullet",ENEMY_BULLET_POOL_LOCATION,0,1);
Rigidbody& bullet_body = bullet.add_component<Rigidbody>(Rigidbody::Data {
.gravity_scale = 0,
.body_type = Rigidbody::BodyType::KINEMATIC,
- .linear_velocity = vec2{-300,0},
+ .linear_velocity = vec2{-250,0},
.kinematic_collision = false,
.collision_layers = {COLL_LAY_MISSILE},
.collision_layer = COLL_LAY_BULLET
});
bullet_body.active = false;
- BoxCollider& bullet_collider = bullet.add_component<BoxCollider>(vec2(60, 40));
+ BoxCollider& bullet_collider = bullet.add_component<BoxCollider>(vec2(60, 30));
//bullet_collider.active = false;
Asset bullet_asset {"asset/other_effects/effect_smgbullet_x2.png"};
Sprite & bullet_sprite = bullet.add_component<Sprite>(
bullet_asset,
Sprite::Data {
.flip = {true,false},
- .sorting_in_layer = SORT_IN_LAY_PLAYER,
+ .sorting_in_layer = SORT_IN_LAY_OBSTACLES,
.order_in_layer = 1,
.size = vec2(60,0),
}
diff --git a/game/enemy/EnemyConfig.h b/game/enemy/EnemyConfig.h
new file mode 100644
index 0000000..f7b660a
--- /dev/null
+++ b/game/enemy/EnemyConfig.h
@@ -0,0 +1,7 @@
+#pragma once
+#include <crepe/types.h>
+
+//button config
+// static constexpr crepe::vec2 PLAYER_BULLET_POOL_LOCATION = {0, -850};
+static constexpr crepe::vec2 ENEMY_BULLET_POOL_LOCATION = {0, -750};
+static constexpr crepe::vec2 ENEMY_POOL_LOCATION = {0, -650};
diff --git a/game/enemy/EnemyScript.cpp b/game/enemy/EnemyScript.cpp
index 2bdab2c..4b75846 100644
--- a/game/enemy/EnemyScript.cpp
+++ b/game/enemy/EnemyScript.cpp
@@ -9,12 +9,13 @@
#include <crepe/types.h>
#include <random>
#include "../Random.h"
+#include "EnemyConfig.h"
using namespace crepe;
using namespace std;
EnemyScript::EnemyScript(){
engine.seed(rd());
this->last_fired = std::chrono::steady_clock::now();
- this->shot_delay = std::chrono::duration<float>(2.5 + Random::f(0,1));
+ this->shot_delay = std::chrono::duration<float>(3 + Random::f(0,1));
}
void EnemyScript::init(){
Metadata& meta = this->get_component<Metadata>();
@@ -51,7 +52,7 @@ void EnemyScript::fixed_update(duration_t dt) {
if (elapsed > shot_delay) {
this->shoot(transform.position,0);
last_fired = now;
- this->shot_delay = std::chrono::duration<float>(Random::f(0.8,4));
+ this->shot_delay = std::chrono::duration<float>(Random::f(1,4));
}
}
@@ -71,7 +72,6 @@ bool EnemyScript::spawn_enemy(const SpawnEnemyEvent& e){
float random_height = dist(engine);
vec2 spawn_location = {cam_transform.position.x + camera.viewport_size.x / 2 + 100,random_height};
transform.position = spawn_location;
- // transform.position = vec2{cam_transform}
ai_component.path.clear();
ai_component.make_oval_path(10, 10, vec2{x_value,random_height}, 1.5708, true);
ai_component.active = true;
@@ -86,7 +86,7 @@ bool EnemyScript::on_collide(const CollisionEvent & e){
}
void EnemyScript::despawn_enemy(){
Transform& transform = this->get_component<Transform>();
- transform.position = vec2{0,-650};
+ transform.position = ENEMY_POOL_LOCATION;
AI& ai_component = this->get_component<AI>();
// Rigidbody& enemy_body
ai_component.active = false;
diff --git a/game/enemy/EnemySubScene.cpp b/game/enemy/EnemySubScene.cpp
index 43f9b33..66aedd5 100644
--- a/game/enemy/EnemySubScene.cpp
+++ b/game/enemy/EnemySubScene.cpp
@@ -1,7 +1,6 @@
#include <string>
-#include "EnemySubScene.h"
-#include "EnemyScript.h"
+
#include <crepe/api/GameObject.h>
#include <crepe/api/Scene.h>
#include <crepe/api/BoxCollider.h>
@@ -10,21 +9,24 @@
#include <crepe/api/BehaviorScript.h>
#include <crepe/api/Animator.h>
#include <crepe/api/Sprite.h>
-
#include <crepe/api/AI.h>
+
#include "../Config.h"
+#include "EnemySubScene.h"
+#include "EnemyScript.h"
+#include "EnemyConfig.h"
using namespace crepe;
using namespace std;
+//#TODO add sound
int EnemySubScene::create(Scene & scn){
vec2 size = {20, 20};
static int enemy_counter = 0;
string unique_name = "enemy_" + to_string(enemy_counter++);
- GameObject enemy = scn.new_object(unique_name.c_str(),"enemy",vec2{0,-650},0,1);
+ GameObject enemy = scn.new_object(unique_name.c_str(),"enemy",ENEMY_POOL_LOCATION,0,1);
enemy.add_component<Rigidbody>(Rigidbody::Data {
.gravity_scale = 0,
-
.body_type = Rigidbody::BodyType::DYNAMIC,
.max_linear_velocity = 400,
.collision_layers = {COLL_LAY_BOT_TOP,COLL_LAY_PLAYER_BULLET},
@@ -37,7 +39,7 @@ int EnemySubScene::create(Scene & scn){
enemy_body_asset,
Sprite::Data {
.flip = {true,false},
- .sorting_in_layer = SORT_IN_LAY_PLAYER,
+ .sorting_in_layer = SORT_IN_LAY_WORKERS_FRONT,
.order_in_layer = 0,
.size = vec2(0, 50),
}
@@ -59,7 +61,7 @@ int EnemySubScene::create(Scene & scn){
enemy_head_asset,
Sprite::Data {
.flip = {true,false},
- .sorting_in_layer = SORT_IN_LAY_PLAYER,
+ .sorting_in_layer = SORT_IN_LAY_WORKERS_FRONT,
.order_in_layer = 1,
.size = vec2(0, 50),
.position_offset = vec2(0, -20),
@@ -78,7 +80,7 @@ int EnemySubScene::create(Scene & scn){
enemy_jetpack_asset,
Sprite::Data {
.flip = {true,false},
- .sorting_in_layer = SORT_IN_LAY_PLAYER,
+ .sorting_in_layer = SORT_IN_LAY_WORKERS_FRONT,
.order_in_layer = 2,
.size = vec2(0, 60),
.position_offset = vec2(20, 0),
diff --git a/game/player/PlayerBulletScript.cpp b/game/player/PlayerBulletScript.cpp
index 2bd067d..6beb9f1 100644
--- a/game/player/PlayerBulletScript.cpp
+++ b/game/player/PlayerBulletScript.cpp
@@ -1,4 +1,3 @@
-#include <iostream>
#include <crepe/api/Camera.h>
#include <crepe/api/Rigidbody.h>
@@ -37,7 +36,6 @@ void PlayerBulletScript::despawn_bullet(){
}
bool PlayerBulletScript::on_collide(const CollisionEvent& e){
- cout << "player bullet collision happened with " << e.info.other.metadata.tag << endl;
this->despawn_bullet();
return false;
}
diff --git a/game/player/PlayerBulletSubScene.cpp b/game/player/PlayerBulletSubScene.cpp
index 4b36387..4ad236c 100644
--- a/game/player/PlayerBulletSubScene.cpp
+++ b/game/player/PlayerBulletSubScene.cpp
@@ -1,4 +1,3 @@
-#include <iostream>
#include <string>
#include <crepe/api/GameObject.h>
@@ -37,14 +36,14 @@ int PlayerBulletSubScene::create(Scene & scn){
});
player_bullet_body.active = false;
- BoxCollider& player_bullet_collider = player_bullet.add_component<BoxCollider>(vec2(60, 40));
- //player_bullet_collider.active = false;
+ BoxCollider& player_bullet_collider = player_bullet.add_component<BoxCollider>(vec2(30, 30));
+
Asset player_bullet_asset {"asset/other_effects/crepe.png"};
Sprite & player_bullet_sprite = player_bullet.add_component<Sprite>(
player_bullet_asset,
Sprite::Data {
.flip = {true,false},
- .sorting_in_layer = SORT_IN_LAY_PLAYER,
+ .sorting_in_layer = SORT_IN_LAY_OBSTACLES,
.order_in_layer = 1,
.size = vec2(30,0),
}
diff --git a/game/player/PlayerScript.cpp b/game/player/PlayerScript.cpp
index dc3eec3..7bc5e55 100644
--- a/game/player/PlayerScript.cpp
+++ b/game/player/PlayerScript.cpp
@@ -1,4 +1,3 @@
-#include <iostream>
#include "PlayerScript.h"
#include "../Config.h"
@@ -157,25 +156,19 @@ void PlayerScript::fixed_update(crepe::duration_t dt) {
}
void PlayerScript::shoot(const vec2& location,float angle){
- //cout << "player shot" << endl;
RefVector<Transform> bullet_transforms = this->get_components_by_tag<Transform>("player_bullet");
for(Transform& bullet_pos : bullet_transforms){
- //cout << "bullet pos x: " << bullet_pos.position.x << " y: " << bullet_pos.position.y << endl;
if(bullet_pos.position.x == 0 && bullet_pos.position.y == -850){
-
- //cout << "bullet found\n";
+
bullet_pos.position = location;
bullet_pos.position.x += 20;
- //cout << "bullet pos x: " << bullet_pos.position.x << " y: " << bullet_pos.position.y << endl;
Rigidbody& bullet_body = this->get_components_by_id<Rigidbody>(bullet_pos.game_object_id).front();
BoxCollider bullet_collider = this->get_components_by_id<BoxCollider>(bullet_pos.game_object_id).front();
- //bullet_collider.active = true;
bullet_body.active = true;
BehaviorScript& bullet_script = this->get_components_by_id<BehaviorScript>(bullet_pos.game_object_id).front();
bullet_script.active = true;
return;
}
}
- cout << "bullet not found\n";
}