File indexing completed on 2024-12-08 03:45:37

0001 /*
0002     SPDX-FileCopyrightText: 2009 Mathias Kraus <k.hias@gmx.de>
0003     SPDX-FileCopyrightText: 2007-2008 Thomas Gallinari <tg8187@yahoo.fr>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef CHARACTERITEM_H
0009 #define CHARACTERITEM_H
0010 
0011 #include "elementitem.h"
0012 
0013 class Character;
0014 class KGameRenderer;
0015 
0016 /**
0017  * @brief This class is the graphical representation of a Character.
0018  */
0019 class CharacterItem : public ElementItem {
0020 
0021 Q_OBJECT
0022 
0023 protected:
0024     /** Shared renderer for the player frames */
0025     KGameRenderer* m_renderer;
0026 
0027 public:
0028 
0029     /**
0030       * Creates a new CharacterItem instance.
0031       * @param p_model the Character model
0032       * @param renderer the KGameRenderer
0033       */
0034     CharacterItem(Character* p_model, KGameRenderer* renderer);
0035 
0036     /**
0037       * Deletes the CharacterItem instance.
0038       */
0039     ~CharacterItem() override;
0040 
0041     /**
0042       * Overrides the default shape function to make it a small circle
0043       * This function is used to determinate collision between items
0044       * @return QPainterPath the new shape of the Character
0045       */
0046     QPainterPath shape() const override;
0047 
0048 public Q_SLOTS:
0049 
0050     /**
0051       * Updates the CharacterItem coordinates.
0052       * @param p_x the new x-coordinate
0053       * @param p_y the new y-coordinate
0054       */
0055     void update(qreal p_x, qreal p_y) override;
0056 
0057     /**
0058       * Sets the character dead.
0059       */
0060     virtual void setDead();
0061 };
0062 
0063 #endif
0064