00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef BENG_OBJECT_H
00033 #define BENG_OBJECT_H
00034
00035 #include <bitset>
00036
00037 #include "BengFixedPoint.h"
00038 #include "BengInterface.h"
00039 #include "BengIntern.h"
00040 #include "Layer.h"
00041
00042 #define BENG_OBJECT_DERIVATION (BengLayer *parentlayer) : BengObject(parentlayer)
00043
00044 class BengLayer;
00045
00046 class BengObject {
00047 friend class BengLayer;
00048 friend class BengIGfx;
00049
00050 private:
00051
00052 BengLayer *layer_;
00053 BengVector pos_, speed_, accel_, decel_, gravity_, size_;
00054
00055 BengISprite *sprite_;
00056
00057 std::bitset<8> internFlags_;
00058
00059 public:
00060
00061 BengObject(BengLayer *parentlayer);
00062
00063 BengLayer *getLayer(void);
00064 BengScene *getScene(void);
00065 BengSystem *getSystem(void);
00066
00067 void setPos(BengFixed xIn, BengFixed yIn);
00068 void getPos(BengVector &out);
00069 void setSpeed(BengFixed xIn, BengFixed yIn);
00070 void getSpeed(BengVector &out);
00071 void setAccel(BengFixed xIn, BengFixed yIn);
00072 void getAccel(BengVector &out);
00073 void setDecel(BengFixed xIn, BengFixed yIn);
00074 void getDecel(BengVector &out);
00075 void setGravity(BengFixed xIn, BengFixed yIn);
00076 void getGravity(BengVector &out);
00077 void setSize(BengFixed xIn, BengFixed yIn);
00078 void getSize(BengVector &out);
00079
00080 void setSprite(BengISprite *sprite);
00081 BengISprite *getSprite(void);
00082
00083 void move(void);
00084
00085 virtual void onDraw(BengSurface *drawtarget) {};
00086 virtual void onPreProcess(void) {};
00087 virtual void onProcess(void) {};
00088 virtual void onPostProcess(void) {};
00089
00090
00091
00092 void destroy(void);
00093
00094 };
00095
00096 #endif