HC-02: mides de sprite/col·lisió del jugador al player.yaml
Afegit bloc `collision:` (size 16, base_size 12) al YAML del player; les `static constexpr` de `player.hpp` passen a `inline static int` (snake_case) i es calculen al `Player::loadFrom()`. `sprite_w/sprite_h` es llegeixen dels mateixos frameWidth/frameHeight que ja hi viuen. GameScene crida el load abans del spawn (mateix patró que `Map::loadFrom`). Permet ajustar la caixa del jugador sense recompilar.
This commit is contained in:
1 parent
da4f78fd0c
commit
e84d8cc535
5 files changed
+81
-37
No files matched your search
@@ -38,6 +38,11 @@ GameScene::GameScene()
|
||||
Resource::Cache::get().loadSurface("player.gif", "data/player/player.gif");
|
||||
Resource::Cache::get().loadAnimation("player.yaml", "data/player/player.yaml");
|
||||
|
||||
// Geometria de col·lisió del jugador (caixa 16×16, base 12): carregada
|
||||
// del mateix YAML que l'animació. Ha d'estar feta abans d'instanciar
|
||||
// Player perquè el spawn consulta `collision_*`.
|
||||
Player::loadFrom("data/player/player.yaml");
|
||||
|
||||
// Jugador 0: fletxes del teclat (Defaults::KeysGame). Instanciar-ne un
|
||||
// segon només requereix afegir una altra entrada amb uns Controls
|
||||
// distints (p.ex. WASD).
|
||||
@@ -54,8 +59,8 @@ GameScene::GameScene()
|
||||
constexpr auto CORRIDOR_CENTER_X = static_cast<float>(GameCanvas::CENTER_X);
|
||||
const auto CORRIDOR_CENTER_Y =
|
||||
static_cast<float>(Map::playfield_y) + (static_cast<float>(Map::outer_corridor) / 2.0F);
|
||||
constexpr auto SPAWN_X = CORRIDOR_CENTER_X - (static_cast<float>(Player::SPRITE_WIDTH) / 2.0F);
|
||||
const auto SPAWN_Y = CORRIDOR_CENTER_Y - static_cast<float>(Player::COLLISION_Y_OFFSET) - (static_cast<float>(Player::COLLISION_SIZE) / 2.0F);
|
||||
const auto SPAWN_X = CORRIDOR_CENTER_X - (static_cast<float>(Player::sprite_w) / 2.0F);
|
||||
const auto SPAWN_Y = CORRIDOR_CENTER_Y - static_cast<float>(Player::collision_y_offset) - (static_cast<float>(Player::collision_size) / 2.0F);
|
||||
players_.emplace_back(std::make_unique<Player>(SPAWN_X, SPAWN_Y, CONTROLS_P1));
|
||||
|
||||
// Música de fons de la piràmide 1 en bucle infinit. El track ja està al
|
||||
|
||||
Reference in new issue
Block a user