OSDN Git Service

fix moflib2.0 build system
[moflib/moflib.git] / saisei-1.0 / rpg / rpg / oldcode / Symbol.cpp
1 #include "Symbol.h"\r
2 #include <iostream>\r
3 #include "mof/KeyFrameAnimation.h"\r
4 #include "mof/ConsoleIO.h"\r
5 \r
6 \r
7 et::Symbol::Symbol(mof::Component3D* pBody , float scale)\r
8 : mof::Component3D()\r
9 {\r
10         m_pBody = pBody;\r
11         m_nextRunningKey = 0;\r
12         setDirection(et::Symbol::DOWN);\r
13         m_scale = mof::Vector3D(scale , scale , scale);\r
14         \r
15         mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation(true);\r
16         pAnimation->setScale(0 , m_scale);\r
17         setAnimation(0 , mof::AnimationResource(pAnimation));\r
18         \r
19 }\r
20 \r
21 \r
22 \r
23 et::Symbol::Symbol(mof::Component3D* pBody , mof::Vector3D& scale)\r
24 : mof::Component3D()\r
25 {\r
26         m_pBody = pBody;\r
27         m_nextRunningKey = 0;\r
28         setDirection(et::Symbol::DOWN);\r
29         m_scale = scale;\r
30         \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
34 }\r
35 \r
36 \r
37 et::Symbol::~Symbol(void)\r
38 {\r
39         delete m_pBody;\r
40 }\r
41 \r
42 \r
43 /*\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
48         \r
49 \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
54 \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
58 \r
59 \r
60         \r
61 \r
62         setAnimation(3 , mof::AnimationResource(pKeyFrameAnimation));\r
63         \r
64 \r
65 }*/\r
66 \r
67 \r
68 \r
69 void et::Symbol::move(Direction direction ,  mof::Vector3D& position , int length)\r
70 {\r
71         m_direction = direction;\r
72         mof::AnimationResource pAnimation = getAnimation(3);\r
73         if(pAnimation.get() != NULL && !pAnimation->isFinalized())return;\r
74         \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
80 \r
81         setAnimation( 3 , mof::AnimationResource(pKeyFrameAnimation));\r
82         \r
83         pKeyFrameAnimation = new mof::KeyFrameAnimation();\r
84 \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
93         }\r
94         m_nextRunningKey = (m_nextRunningKey + 1) % lengthOfRunning;\r
95 \r
96         pKeyFrameAnimation->setTextureRectangle(length+1 , mof::Line2D(32 * direction , 0 , 32 * (direction+1) , 64));\r
97         pKeyFrameAnimation->setFinalKey(length);\r
98 \r
99         setAnimation( 2 , mof::AnimationResource(pKeyFrameAnimation));\r
100         \r
101 \r
102 }\r
103 \r
104 bool et::Symbol::update(){\r
105         \r
106         return m_pBody->update();\r
107 \r
108 }\r
109 \r
110 bool et::Symbol::draw(){\r
111         return m_pBody->draw(m_worldTransform);\r
112 }\r
113 \r
114 bool et::Symbol::draw(mof::Matrix3D& transform){\r
115         return m_pBody->draw(m_worldTransform * transform);\r
116 }\r
117 \r
118 \r
119 \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
123         \r
124 }\r
125 \r
126 void et::Symbol::setWorldTransform(mof::Matrix3D& matrix){\r
127         m_pBody->setWorldTransform( matrix);\r
128 }\r
129         \r
130 \r
131 mof::Vector3D et::Symbol::getPosition(){\r
132         return m_pBody->getPosition();\r
133 }\r
134 \r
135 /*\r
136 void et::Symbol::setPosition(mof::Vector3D& position){\r
137         m_pBody->setPosition(position);\r
138 }*/\r
139 \r
140 void et::Symbol::setPosition(mof::Vector3D& position , et::Symbol::Direction direction){\r
141         \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
147         \r
148 }\r
149 \r
150 \r
151 et::Symbol::Direction et::Symbol::getDirection(){\r
152         return m_direction;\r
153 }\r
154 \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
160 \r
161 }\r
162 \r
163 mof::Vector3D& et::Symbol::getScale(){\r
164         return m_scale;\r
165 }\r
166 \r
167 \r