3 #include "mof/KeyFrameAnimation.h"
4 #include "mof/ConsoleIO.h"
7 et::Symbol::Symbol(mof::Component3D* pBody , float scale)
12 setDirection(et::Symbol::DOWN);
13 m_scale = mof::Vector3D(scale , scale , scale);
15 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation(true);
16 pAnimation->setScale(0 , m_scale);
17 setAnimation(0 , mof::AnimationResource(pAnimation));
23 et::Symbol::Symbol(mof::Component3D* pBody , mof::Vector3D& scale)
28 setDirection(et::Symbol::DOWN);
31 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation(true);
32 pAnimation->setScale(0 , mof::Vector3D(scale.x , scale.y , scale.z));
33 setAnimation(0 , mof::AnimationResource(pAnimation));
37 et::Symbol::~Symbol(void)
44 void et::Symbol::move(et::Symbol::Direction direction , float span , int length){
45 m_direction = direction;
46 mof::AnimationResource pAnimation = getAnimation(2);
47 if(pAnimation.get() != NULL && !pAnimation->isFinalized())return;
50 const float SPEED_X = span;
51 const float SPEED_Y = span;
52 const float tableX[] = {0.0f , 0.0f , -SPEED_X , SPEED_X};
53 const float tableZ[] = {SPEED_Y , -SPEED_Y , 0.0f , 0.0f};
55 mof::KeyFrameAnimation* pKeyFrameAnimation = new mof::KeyFrameAnimation();
56 pKeyFrameAnimation->setVelocity(0 , mof::Vector3D(tableX[direction] , 0.0f , tableZ[direction] ));
57 pKeyFrameAnimation->setVelocity(length ,mof::Vector3D( 0.0f , 0.0f , 0.0f));
62 setAnimation(3 , mof::AnimationResource(pKeyFrameAnimation));
69 void et::Symbol::move(Direction direction , mof::Vector3D& position , int length)
71 m_direction = direction;
72 mof::AnimationResource pAnimation = getAnimation(3);
73 if(pAnimation.get() != NULL && !pAnimation->isFinalized())return;
75 mof::Vector3D current = getPosition();
76 mof::KeyFrameAnimation* pKeyFrameAnimation = new mof::KeyFrameAnimation();
77 pKeyFrameAnimation->setPosition(0 , current);
78 pKeyFrameAnimation->setPosition(length , position);
79 pKeyFrameAnimation->update();//
\8e\9f\82Ì
\8dX
\90V
\82Å
\88Ú
\93®
\82·
\82é
81 setAnimation( 3 , mof::AnimationResource(pKeyFrameAnimation));
83 pKeyFrameAnimation = new mof::KeyFrameAnimation();
85 const int tableRunningY[] = {3 , 2 , 1 , 2 , 3 , 3 , 2 , 1 , 2 , 3};
86 const int tableRunningX[] = {0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1};
87 const int lengthOfRunning = 10;
88 for(int i = 0 ; i < 1 ; i++){
89 int key = (m_nextRunningKey + i) % lengthOfRunning;
90 mof::Vector2D begin(32 * direction + 128 * tableRunningX[key] , tableRunningY[key] * 64 );
91 mof::Vector2D end(32 * (direction+1) + 128 * tableRunningX[key] , (tableRunningY[key]+1) * 64 );
92 pKeyFrameAnimation->setTextureRectangle(i*6 , mof::Line2D(begin , end));
94 m_nextRunningKey = (m_nextRunningKey + 1) % lengthOfRunning;
96 pKeyFrameAnimation->setTextureRectangle(length+1 , mof::Line2D(32 * direction , 0 , 32 * (direction+1) , 64));
97 pKeyFrameAnimation->setFinalKey(length);
99 setAnimation( 2 , mof::AnimationResource(pKeyFrameAnimation));
104 bool et::Symbol::update(){
106 return m_pBody->update();
110 bool et::Symbol::draw(){
111 return m_pBody->draw(m_worldTransform);
114 bool et::Symbol::draw(mof::Matrix3D& transform){
115 return m_pBody->draw(m_worldTransform * transform);
120 void et::Symbol::setAnimation(int index , mof::AnimationResource& pAnimation){
121 mof::GraphicsObject::setAnimation(index , pAnimation);
122 m_pBody->setAnimation(index , pAnimation);
126 void et::Symbol::setWorldTransform(mof::Matrix3D& matrix){
127 m_pBody->setWorldTransform( matrix);
131 mof::Vector3D et::Symbol::getPosition(){
132 return m_pBody->getPosition();
136 void et::Symbol::setPosition(mof::Vector3D& position){
137 m_pBody->setPosition(position);
140 void et::Symbol::setPosition(mof::Vector3D& position , et::Symbol::Direction direction){
142 setDirection(direction);
143 mof::Vector3D current = getPosition();
144 mof::KeyFrameAnimation* pKeyFrameAnimation = new mof::KeyFrameAnimation();
145 pKeyFrameAnimation->setPosition(0 , position);
146 setAnimation( 3 , mof::AnimationResource(pKeyFrameAnimation));
151 et::Symbol::Direction et::Symbol::getDirection(){
155 void et::Symbol::setDirection(et::Symbol::Direction direction){
156 mof::KeyFrameAnimation* pKeyFrameAnimation = new mof::KeyFrameAnimation();
157 pKeyFrameAnimation->setTextureRectangle(0 , mof::Line2D(32 * direction , 0 , 32 * (direction+1) , 64));
158 setAnimation(2 , mof::AnimationResource(pKeyFrameAnimation));
159 m_direction = direction;
163 mof::Vector3D& et::Symbol::getScale(){