#include "pch.h" #include "Diamond.h" Diamond::Diamond(int x, int y, const Type& type) : Item(x, y) , m_Type{ type } { Init(); Item::CenterInTile(); } Diamond::Diamond(const Point2f& pos, const Type& type) : Item(pos) , m_Type{ type } { Init(); } void Diamond::Init() { switch (m_Type) { case Type::GREEN: m_Hitbox.width = 38; m_Hitbox.height = 33; m_HitboxMargin.x = 22; m_HitboxMargin.y = 18; m_SrcRect.left = 4 * m_ClipWidth; m_SrcRect.bottom = m_ClipHeight; m_Amount = 800; break; case Type::BLUE: m_Hitbox.width = 32; m_Hitbox.height = 33; m_HitboxMargin.x = 23; m_HitboxMargin.y = 18; m_SrcRect.left = 5 * m_ClipWidth; m_SrcRect.bottom = m_ClipHeight; m_Amount = 1200; break; case Type::RED: m_Hitbox.width = 37; m_Hitbox.height = 38; m_HitboxMargin.x = 23; m_HitboxMargin.y = 17; m_SrcRect.left = 6 * m_ClipWidth; m_SrcRect.bottom = m_ClipHeight; m_Amount = 1600; break; default: break; } } size_t Diamond::GetTypeHash() const { return typeid(*this).hash_code(); } Diamond::~Diamond() { } void Diamond::Update(float elapsedSec, const Level& level) { Item::Update(elapsedSec, level); } void Diamond::Draw() const { Item::Draw(); } int Diamond::GetAmount() const { return m_Amount; } Diamond::Type Diamond::GetType() const { return m_Type; }