Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/pickupsFS14/src/modules/jump/JumpEnemy.h @ 10074

Last change on this file since 10074 was 10074, checked in by fvultier, 10 years ago

new items added. improved level generator.

File size: 4.1 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Fabian 'x3n' Landau
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29/**
30    @file JumpEnemy.h
31    @brief Declaration of the JumpEnemy class.
32    @ingroup Jump
33*/
34
35#ifndef _JumpEnemy_H__
36#define _JumpEnemy_H__
37
38#include "jump/JumpPrereqs.h"
39
40#include "util/Math.h"
41
42#include "worldentities/MovableEntity.h"
43
44
45namespace orxonox
46{
47
48    /**
49    @brief
50        This class manages the ball for @ref orxonox::Jump "Jump".
51
52        It is responsible for both the movement of the ball in the x,z-plane as well as its interaction with the boundaries of the playing field (defined by the @ref orxonox::JumpCenterpoint "JumpCenterpoint") and the @ref orxonox::JumpFigure "JumpFigures". Or more precisely, it makes the ball bounce off then upper and lower delimiters of the playing field, it makes the ball bounce off the bats and also detects when a player scores and takes appropriate measures.
53
54    @author
55        Fabian 'x3n' Landau
56
57    @ingroup Jump
58    */
59    class _JumpExport JumpEnemy : public MovableEntity
60    {
61        public:
62            JumpEnemy(Context* context);
63            virtual ~JumpEnemy();
64
65            virtual void tick(float dt);
66
67            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
68
69            /**
70            @brief Set the dimensions of the playing field.
71            @param width The width of the playing field.
72            @param height The height of the playing field.
73            */
74            void setFieldDimension(float width, float height)
75                { this->fieldWidth_ = width; this->fieldHeight_ = height; }
76            /**
77            @brief Get the dimensions of the playing field.
78            @param dimension A vector with the width as the first and height as the second component.
79            */
80            void setFieldDimension(const Vector2& dimension)
81                { this->setFieldDimension(dimension.x, dimension.y); }
82            /**
83            @brief Get the dimensions of the playing field.
84            @return Returns a vector with the width as the first and height as the second component.
85            */
86            Vector2 getFieldDimension() const
87                { return Vector2(this->fieldWidth_, this->fieldHeight_); }
88
89            void setWidth(const float width)
90                { this->width_ = width; }
91            float getWidth() const
92                { return width_; }
93            void setHeight(const float height)
94                { this->height_ = height; }
95            float getHeight() const
96                { return height_; }
97
98            virtual void setProperties(float newLeftBoundary, float newRightBoundary, float newLowerBoundary, float newUpperBoundary, float newHSpeed, float newVSpeed);
99
100            void setFigure(WeakPtr<JumpFigure> bats); //!< Set the bats for the ball.
101            virtual void touchFigure();
102            bool dead_;
103        protected:
104
105            float width_;
106            float height_;
107
108            float fieldWidth_; //!< The width of the playing field.
109            float fieldHeight_; //!< The height of the playing field.
110
111            float leftBoundary_;
112            float rightBoundary_;
113            float lowerBoundary_;
114            float upperBoundary_;
115
116            WeakPtr<JumpFigure> figure_; //!< An array with the two bats.
117    };
118}
119
120#endif /* _JumpEnemy_H__ */
Note: See TracBrowser for help on using the repository browser.