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