annotate gSprite.cc @ 132:d84ee8b2cfd9

camera position update
author Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
date Thu, 21 Jul 2011 17:25:59 +0900
parents 586d68c42c5d
children e7caa277d7e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
1 //SgoexCerium.ccより
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
2 #include "matrix_calc.h"
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
3 #include "TaskManager.h"
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
4 #include "SceneGraph.h"
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
5 #include "Application.h"
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
6 #include <iostream>
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
7
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
8 #include <stdio.h>
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
9 #include <stdlib.h>
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
10 #include "libps2.h"
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
11 #include "ps2util.h"
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
12 #include "gSprite.h"
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
13 #include <stdbool.h>
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
14
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
15 #include "camera.h"
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
16
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
17 #define DEFOBJ 100
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
18 #define SPRITE_COL 0x4f
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
19 #define SCREEN_HALF_W 320
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
20 #define SCREEN_HALF_H 240
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
21
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
22 static SpriteTable sptable[DEFOBJ];
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
23 static ps2utilSprite sp[DEFOBJ]; // 表示スプライト用スタック
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
24 static unsigned int sp_counter;
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
25 static bool flag_spriteInited = false; // スプライトロードフラグ
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
26
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
27 //static TEXTURE *sprite_tex;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
28
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
29 extern Viewer *droot;
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
30
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
31 /*static*/SceneGraphPtr root;
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
32
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
33 static float my_scale = 5;
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
34
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
35
586d68c42c5d draw field
e085768
parents: 129
diff changeset
36 static FVECTOR cameraMan_pos = { 0, 0, 0, 1 };
586d68c42c5d draw field
e085768
parents: 129
diff changeset
37 static FVECTOR cameraMan_angle = { 0, 0, 0, 1 };
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
38
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
39 FVECTOR def_cameraMan = { 0, 0, 0, 1 };
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
40
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
41 void set_cameraMan( void );
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
42 CameraPtr camera;// = droot->sgroot->getCamera();
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
43
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
44 // SgoexCerium.ccより
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
45 // カメラの更新はここでやれば良いんだろうね
586d68c42c5d draw field
e085768
parents: 129
diff changeset
46 void flip()
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
47 {
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
48
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
49
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
50 droot->sgroot->flip(); // 前フレームで描画した SceneGraph は削除
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
51 // 前フレームに作られた SceneGraph は描画用に移行
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
52 // 現フレームで新しく SceneGraph がコピーされるので初期化
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
53
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
54 camera = droot->sgroot->getCamera();//
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
55 droot->sgroot->lightCalc();
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
56
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
57 // rootって変数にカメラの位置設定してるんかな?
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
58 // じゃあ camera ってなによ
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
59 root = droot->createSceneGraph();
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
60
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
61 //root->xyz[0] = 100;
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
62 //root->xyz[1] = 200;
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
63
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
64 set_cameraMan( );
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
65
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
66 /*
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
67 // カメラの設定は後回しにします意味わからん
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
68 // magoroku_camera
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
69 CAMERA mc = get_MagorokuCamera();
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
70 for( int i = 0; i < 4; i ++ ){
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
71 root->xyz[i] = mc.xyz[i];
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
72 root->angle[i] = mc.angle[i];
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
73
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
74 // camera->zd[i] = mc.zd[i];
586d68c42c5d draw field
e085768
parents: 129
diff changeset
75 //camera->yd[i] = mc.yd[i];
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
76 }
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
77 */
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
78 //droot->createStringFont(root,"A",80,200,100,0x00ff00ff);
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
79 /*親の回転、座標から、子の回転、座標を算出*/
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
80 get_matrix(root->matrix, root->angle, root->xyz, camera->matrix);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
81
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
82 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
83 get_matrix(root->real_matrix, root->angle, root->xyz, camera->real_matrix);
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
84
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
85 //出力して、次のものを出力するための準備
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
86 droot->setSceneData(root);
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
87 }
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
88
124
e085768
parents: 122
diff changeset
89 // rootのポインターを返す
e085768
parents: 122
diff changeset
90 SceneGraphPtr getRootPtr( void )
e085768
parents: 122
diff changeset
91 {
e085768
parents: 122
diff changeset
92 return root;
e085768
parents: 122
diff changeset
93 }
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
94
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
95 /*
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
96 n==0 retrun x
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
97 n==1 return y
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
98 n==2 return z
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
99 n==3 ?
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
100 */
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
101 float get_cameraPos( int n )
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
102 {
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
103 float num;
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
104
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
105 if( n >= 0 && n <= 3 ) num = /*root->xyz[n]*/camera->xyz[n];
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
106 else num = 0;
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
107
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
108 return num;
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
109 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
110
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
111 // カメラの位置設定
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
112 void set_cameraMan( void )
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
113 {
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
114 // window_posの略
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
115 FVECTOR wp = {0,0, 1000, 1};
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
116
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
117 for( int i = 0; i < 4; i ++ ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
118 // root->xyz[i] = -cameraMan[i] + wp[i];
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
119 /*root*/camera->xyz[i] = cameraMan_pos[i];
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
120 /*root*/camera->angle[i] = cameraMan_angle[i];
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
121 }
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
122
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
123 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
124
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
125 // カメラの位置を引数のヤツに追従する
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
126 // ここではcameraManって変数に数値をコピーさせてるだけ
586d68c42c5d draw field
e085768
parents: 129
diff changeset
127 void set_cameraPos( FVECTOR newCameraMan_pos, FVECTOR newCameraMan_angle )
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
128 {
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
129 for( int i = 0; i < 4; i ++ ){
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
130 cameraMan_pos[i] = newCameraMan_pos[i];
586d68c42c5d draw field
e085768
parents: 129
diff changeset
131 cameraMan_angle[i] = newCameraMan_angle[i];
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
132 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
133 }
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
134
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
135 void
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
136 gSprite_DefSprite(int number, const char *name, float w, float h, int color)//, OBJECT *obj)
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
137 {
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
138 SpriteTable *m = &sptable[number];
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
139 m->w = w;
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
140 m->h = h;
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
141 m->color = (color & 32);
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
142 m->mx = w / 2; //画像の中心を座標としたいらしい。
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
143 m->my = h / 2;
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
144 m->tex_w = power_of_two(m->w);
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
145 m->tex_h = power_of_two(m->h);
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
146 m->texture = (int *)name;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
147 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
148
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
149 void gSprite_PutSprite(bool ScreenPos, int number, int x, int y, int z, int test)
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
150 {
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
151 SpriteTable *m = &sptable[number];
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
152
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
153 char *name = (char *) m->texture;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
154 if (!name) {
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
155 printf("PutSprite %d unknown\n",number);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
156 return;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
157 }
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
158
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
159 SceneGraphPtr object = droot->createSceneGraph(name);
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
160
124
e085768
parents: 122
diff changeset
161 // ズレ直し?
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
162 /*
124
e085768
parents: 122
diff changeset
163 object->c_xyz[0] = m->mx;
e085768
parents: 122
diff changeset
164 object->c_xyz[1] = m->my;
e085768
parents: 122
diff changeset
165
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
166 object->xyz[0] -= object->c_xyz[0]*my_scale;
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
167 object->xyz[1] -= object->c_xyz[1]*my_scale;
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
168 object->xyz[2] -= object->c_xyz[2];
124
e085768
parents: 122
diff changeset
169
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
170 object->xyz[0] += x+m->mx;
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
171 object->xyz[1] += y+m->my;
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
172
124
e085768
parents: 122
diff changeset
173 // object->xyz[2] += zorder * 0.01;
e085768
parents: 122
diff changeset
174 */
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
175
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
176 object->xyz[0] = x;
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
177 object->xyz[1] = y;
124
e085768
parents: 122
diff changeset
178 object->xyz[2] = z;
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
179
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
180 // 画面からの座標で表示したい場合
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
181 if( ScreenPos == true ){
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
182 for( int i = 0; i < 3; i ++ ){
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
183 object->xyz[i] -= get_cameraPos(i);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
184 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
185 }
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
186 root->addChild(object);
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
187
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
188 float scale[] = {my_scale,my_scale,1};
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
189
586d68c42c5d draw field
e085768
parents: 129
diff changeset
190 if(test == 1){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
191 SceneGraphPtr wheel1 = droot->createSceneGraph("Cylinder.006");
586d68c42c5d draw field
e085768
parents: 129
diff changeset
192 for( int i = 0; i < 3; i ++ ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
193 wheel1->xyz[i] = object->xyz[i];
586d68c42c5d draw field
e085768
parents: 129
diff changeset
194 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
195 root->addChild(wheel1);
586d68c42c5d draw field
e085768
parents: 129
diff changeset
196 //object->addChild(wheel1);
586d68c42c5d draw field
e085768
parents: 129
diff changeset
197
586d68c42c5d draw field
e085768
parents: 129
diff changeset
198 /*親の回転、座標から、子の回転、座標を算出*/
586d68c42c5d draw field
e085768
parents: 129
diff changeset
199 get_matrix_scale(wheel1->matrix, wheel1->angle, wheel1->xyz, scale, root->matrix);
586d68c42c5d draw field
e085768
parents: 129
diff changeset
200
586d68c42c5d draw field
e085768
parents: 129
diff changeset
201 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
586d68c42c5d draw field
e085768
parents: 129
diff changeset
202 get_matrix(wheel1->real_matrix, wheel1->angle, wheel1->xyz, root->real_matrix);
586d68c42c5d draw field
e085768
parents: 129
diff changeset
203 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
204
586d68c42c5d draw field
e085768
parents: 129
diff changeset
205
586d68c42c5d draw field
e085768
parents: 129
diff changeset
206 // float scale[] = {my_scale,my_scale,1};
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
207 //float c_xyz[] = {0,0,0};
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
208
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
209 //float c_xyz[] = {0,0,0};
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
210 //scale_matrix(object->matrix, scale, c_xyz);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
211
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
212 /*親の回転、座標から、子の回転、座標を算出*/
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
213 get_matrix_scale(object->matrix, object->angle, object->xyz, scale, root->matrix);
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
214
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
215 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
216 get_matrix(object->real_matrix, object->angle, object->xyz, root->real_matrix);
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
217
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
218 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
219
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
220 void gSprite_PutObject( int number, OBJECT *obj )
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
221 {
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
222 /*
586d68c42c5d draw field
e085768
parents: 129
diff changeset
223 SpriteTable *m = &sptable[number];
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
224
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
225 char *name = (char *) m->texture;
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
226 if (!name) {
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
227 printf("PutSprite %d unknown\n",100);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
228 return;
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
229 }
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
230 */
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
231
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
232 // どっちにするべき?
586d68c42c5d draw field
e085768
parents: 129
diff changeset
233 //SceneGraphPtr sgObj = droot->createSceneGraph();
586d68c42c5d draw field
e085768
parents: 129
diff changeset
234 SceneGraphPtr sgObj = droot->createSceneGraph(obj->partName[0]);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
235
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
236 for( int i = 0; i < 4; i ++ ){
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
237 sgObj->xyz[i] = obj->xyz[i];
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
238
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
239 for( int j = 0; j < 4; j ++ ){
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
240 // sgObj->matrix[(i*4)+j] = obj->transfer[i][j];
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
241 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
242
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
243 sgObj->stack_angle[i] = obj->angle[i];
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
244 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
245
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
246 // とりあえず画面の真ん中にしたい
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
247 //sgObj->xyz[0] += 100;
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
248 //sgObj->xyz[1] += 100;
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
249 //sgObj->xyz[2] += 0;
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
250
586d68c42c5d draw field
e085768
parents: 129
diff changeset
251 memcpy( sgObj->matrix, obj->transfer, sizeof(FMATRIX) );
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
252
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
253 root->addChild(sgObj);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
254
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
255 float scale[] = {my_scale,my_scale,1};
129
d88dfd3d46c5 car xml
e085768
parents: 128
diff changeset
256
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
257 // パーツ生成
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
258 for( int i = 1; i < obj->partNum; i ++ ){
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
259 SceneGraphPtr part = droot->createSceneGraph(obj->partName[i]);
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
260 for(int t=0; t < 3; t++){
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
261 part->xyz[t] = sgObj->xyz[t];
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
262 part->angle[t] = sgObj->angle[t];
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
263 }
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
264 printf("obj_name:%s\n",obj->partName[i]);
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
265 // addChildの意味?
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
266
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
267 /*親の回転、座標から、子の回転、座標を算出*/
586d68c42c5d draw field
e085768
parents: 129
diff changeset
268 get_matrix_scale(part->matrix, part->angle, part->xyz, scale, root->matrix);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
269
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
270 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
586d68c42c5d draw field
e085768
parents: 129
diff changeset
271 get_matrix(part->real_matrix, part->angle, part->xyz, root->real_matrix);
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
272 //root->addChild(part);
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
273 sgObj->addChild(part);
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
274 }
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
275
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
276
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
277 // 親の回転、座標から、子の回転、座標を算出
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
278 get_matrix_scale(sgObj->matrix, sgObj->angle, sgObj->xyz, scale, root->matrix);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
279
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
280 // 法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
281 get_matrix(sgObj->real_matrix, sgObj->angle, sgObj->xyz, root->real_matrix);
132
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
282 //
d84ee8b2cfd9 camera position update
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
283
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
284 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
285
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
286
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
287 void
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
288 gSprite_PutSpriteEx(bool ScreenPos,int number, int x, int y, int z, float scalex, float scaley, float angle)
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
289 {
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
290 if (1) {
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
291 gSprite_PutSprite(ScreenPos,number, x, y, z, 0);
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
292 return;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
293 }
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
294
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
295 SpriteTable *m = &sptable[number];
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
296 char *name = (char *) m->texture;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
297 if (!name) {
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
298 printf("PutSpriteEx %d unknown\n",number);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
299 return;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
300 }
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
301 SceneGraphPtr object = droot->createSceneGraph(name);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
302 root->addChild(object);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
303
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
304 float scale[] = {my_scale*scalex*4,my_scale*scaley*4,1};
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
305
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
306 /*親の回転、座標から、子の回転、座標を算出*/
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
307 object->xyz[0] = x - object->c_xyz[0] * my_scale - m->w*my_scale;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
308 object->xyz[1] = y - object->c_xyz[1] * my_scale - m->h*my_scale;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
309 object->xyz[2] = number * 0.01;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
310 //object->c_xyz[0] = m->mx;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
311 //object->c_xyz[1] = m->my;
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
312 object->angle[3] = angle * (3.1415926*2/4096);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
313 get_matrix(object->matrix, object->angle, object->xyz, root->matrix);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
314 float c_xyz[] = {0,0,0};
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
315 scale_matrix(object->matrix, scale, c_xyz);
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
316 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
317 // get_matrix(object->real_matrix, object->angle, object->xyz, root->real_matrix);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
318 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
319
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
320
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
321 //ここいらはどうやら、スプライトを取得する部分。
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
322 /*
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
323 static void
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
324 gSprite_Init_Png(const char *texname)
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
325 {
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
326 if (!(sprite_tex = read_png_file(texname))) {
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
327 fprintf(stderr,
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
328 "cannot creat texture - init_png().\n");
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
329 fflush(stderr);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
330 exit(EXIT_FAILURE);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
331 }
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
332
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
333
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
334 if (ps2util_tex_Set(sprite_tex) == -1) {
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
335 fprintf(stderr,
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
336 "cannot set texture - init_png().\n");
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
337 fflush(stderr);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
338 exit(EXIT_FAILURE);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
339 }
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
340
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
341
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
342 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
343 */
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
344
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
345 /*
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
346 static void
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
347 gSprite_Create()
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
348 {
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
349 int i;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
350
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
351 for (i=0; i<DEFOBJ; i++) {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
352 if (ps2util_sprite_Create(&sp[i], sprite_tex) == -1) {
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
353 fprintf(stderr,
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
354 "cannot create sprite No.%d - create_sprite()\n", i);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
355 fflush(stderr);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
356 exit(EXIT_FAILURE);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
357 }
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
358 ps2util_sprite_Unuse_alpha(&sp[i]);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
359 }
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
360
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
361 flag_spriteInited = false;
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
362
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
363 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
364 */
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
365
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
366
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
367 void
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
368 gSprite_Init()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
369 {
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
370 droot->createFromXMLfile("xml_file/title.xml");
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
371
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
372 droot->createFromXMLfile("xml_file/select.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
373 droot->createFromXMLfile("xml_file/sp_meter.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
374 droot->createFromXMLfile("xml_file/r_arrow.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
375 droot->createFromXMLfile("xml_file/l_arrow.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
376 droot->createFromXMLfile("xml_file/km.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
377 droot->createFromXMLfile("xml_file/rap.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
378 droot->createFromXMLfile("xml_file/1p.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
379 droot->createFromXMLfile("xml_file/2p.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
380 droot->createFromXMLfile("xml_file/select_car_1.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
381 droot->createFromXMLfile("xml_file/select_car_2.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
382 droot->createFromXMLfile("xml_file/select_car_3.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
383 droot->createFromXMLfile("xml_file/select_corse_1.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
384 droot->createFromXMLfile("xml_file/select_corse_2.xml");
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
385
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
386 ps2util_graphic_Init();
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
387 //gSprite_Init_Png("img/main2.png");
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
388 //gSprite_Create(); // スプライト生成
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
389
119
f2e2460b4011 draw_title
e085768
parents: 118
diff changeset
390 // testCoeler
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
391 int tc = 1;
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
392
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
393 gSprite_DefSprite( TITLE, "title", 512, 666, tc); // タイトル
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
394 gSprite_DefSprite( SELECT, "select", 33, 33, tc); // 選択マーク
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
395 gSprite_DefSprite( SP_METER, "sp_meter", 106, 34, tc); // スピードメーター
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
396 gSprite_DefSprite( R_ARROW, "r_arrow", 18, 20, tc); // 右矢印
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
397 gSprite_DefSprite( L_ARROW, "l_arrow", 17, 20, tc); // 左矢印
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
398 gSprite_DefSprite( KM, "km", 55, 26, tc); // km/h
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
399 gSprite_DefSprite( RAP, "rap", 39, 26, tc); // Rap
126
030394675d8e succes compile
e085768
parents: 125
diff changeset
400 gSprite_DefSprite( PLAYER_1, "1P", 53, 46, tc); // 1p
030394675d8e succes compile
e085768
parents: 125
diff changeset
401 gSprite_DefSprite( PLAYER_2, "2P", 53, 46, tc); // 2P
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
402 gSprite_DefSprite( SELECT_CAR_1, "select_car_1", 165, 140, tc); // 選択画面の車
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
403 gSprite_DefSprite( SELECT_CAR_2, "select_car_2", 165, 140, tc);
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
404 gSprite_DefSprite( SELECT_CAR_3, "select_car_3", 165, 140, tc);
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
405 gSprite_DefSprite( SELECT_CORSE_1, "select_corse_1", 148, 114, tc); // 選択画面のコース
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
406 // 本当は (82, 272,...)です。二つ目のコース絵がないので
122
5219bf3d5e71 title_draw
e085768
parents: 119
diff changeset
407 gSprite_DefSprite( SELECT_CORSE_2, "select_corse_2", 148, 114 ,tc);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
408
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
409 }
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
410
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
411 static void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
412 gSprite_Clear()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
413 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
414 int i;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
415
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
416 for (i=0; i<DEFOBJ; i++) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
417 sprite_disappear(&sp[i].attribute);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
418 }
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
419 sp_counter = 0;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
420 }
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
421
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
422
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
423
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
424 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
425 gSprite_Draw_Reset()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
426 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
427 if (flag_spriteInited == true) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
428 gSprite_Clear();
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
429 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
430 }
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
431
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
432
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
433
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
434 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
435 gSprite_PutSprite_Pause()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
436 {
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
437 }
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
438
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
439 // xmlファイルから読み込み
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
440 void call_createFromXMLfile( char *filename )
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
441 {
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
442 droot->createFromXMLfile(filename);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
443 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
444
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
445
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
446 // createScenGraphe()する
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
447 /*
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
448 OBJECT* call_createSceneGraph( char *filename )
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
449 {
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
450 OBJECT *obj;
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
451 obj = droot->createSceneGraph(filename);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
452
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
453 return obj;
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
454 }
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
455
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
456
586d68c42c5d draw field
e085768
parents: 129
diff changeset
457 // createScenGraphe()する
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
458 OBJECT* call_createSceneGraph( void )
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
459 {
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
460 OBJECT *obj;
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
461 obj = droot->createSceneGraph();
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
462
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
463 return obj;
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
464 }
130
586d68c42c5d draw field
e085768
parents: 129
diff changeset
465 */
586d68c42c5d draw field
e085768
parents: 129
diff changeset
466
586d68c42c5d draw field
e085768
parents: 129
diff changeset
467 #include "controler.h"
586d68c42c5d draw field
e085768
parents: 129
diff changeset
468 // controler.cより
586d68c42c5d draw field
e085768
parents: 129
diff changeset
469 extern SGO_PAD pad;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
470
586d68c42c5d draw field
e085768
parents: 129
diff changeset
471 // テスト用関数
586d68c42c5d draw field
e085768
parents: 129
diff changeset
472 void cameraControl( void )
586d68c42c5d draw field
e085768
parents: 129
diff changeset
473 {
586d68c42c5d draw field
e085768
parents: 129
diff changeset
474 FVECTOR xyz;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
475 FVECTOR angle;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
476
586d68c42c5d draw field
e085768
parents: 129
diff changeset
477 for( int i = 0; i < 4; i ++ ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
478 xyz[i] = cameraMan_pos[i];
586d68c42c5d draw field
e085768
parents: 129
diff changeset
479 angle[i] = cameraMan_angle[i];
586d68c42c5d draw field
e085768
parents: 129
diff changeset
480 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
481
586d68c42c5d draw field
e085768
parents: 129
diff changeset
482 float speed = 1.0f;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
483
586d68c42c5d draw field
e085768
parents: 129
diff changeset
484 bool esc = false;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
485
586d68c42c5d draw field
e085768
parents: 129
diff changeset
486 if( pad.se > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
487 esc = true;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
488 printf("press selectButton\n");
586d68c42c5d draw field
e085768
parents: 129
diff changeset
489 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
490
586d68c42c5d draw field
e085768
parents: 129
diff changeset
491 if( pad.l1 > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
492 speed = 10.0f;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
493 printf("press W_key\n");
586d68c42c5d draw field
e085768
parents: 129
diff changeset
494 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
495
586d68c42c5d draw field
e085768
parents: 129
diff changeset
496 if( pad.left > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
497 if ( esc == true ) angle[0] -= speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
498 else xyz[0] -= speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
499 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
500 if( pad.right > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
501 if ( esc == true ) angle[0] += speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
502 else xyz[0] += speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
503 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
504
586d68c42c5d draw field
e085768
parents: 129
diff changeset
505 if( pad.up > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
506 if ( esc == true ) angle[1] -= speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
507 else xyz[1] -= speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
508 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
509 if( pad.down > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
510 if ( esc == true ) angle[1] += speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
511 else xyz[1] += speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
512 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
513
586d68c42c5d draw field
e085768
parents: 129
diff changeset
514 if( pad.circle > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
515 if ( esc == true ) angle[2] += speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
516 else xyz[2] += speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
517 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
518 if( pad.cross > 0 ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
519 if ( esc == true ) angle[2] -= speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
520 else xyz[2] -= speed;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
521 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
522
586d68c42c5d draw field
e085768
parents: 129
diff changeset
523 for( int i = 0; i < 3; i ++ ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
524 if (angle[i] > 360.0f || angle[i] < -360.0f ) {
586d68c42c5d draw field
e085768
parents: 129
diff changeset
525 angle[i] = 0.0f;
586d68c42c5d draw field
e085768
parents: 129
diff changeset
526 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
527 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
528
586d68c42c5d draw field
e085768
parents: 129
diff changeset
529 for( int i = 0; i < 4; i ++ ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
530
586d68c42c5d draw field
e085768
parents: 129
diff changeset
531 cameraMan_pos[i] = xyz[i];
586d68c42c5d draw field
e085768
parents: 129
diff changeset
532 cameraMan_angle[i] = angle[i];
586d68c42c5d draw field
e085768
parents: 129
diff changeset
533 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
534
586d68c42c5d draw field
e085768
parents: 129
diff changeset
535 for( int i = 0; i < 4; i ++ ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
536 printf("cameraPos[%d] = %f ", i, cameraMan_pos[i] );
586d68c42c5d draw field
e085768
parents: 129
diff changeset
537 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
538 printf("\n");
586d68c42c5d draw field
e085768
parents: 129
diff changeset
539
586d68c42c5d draw field
e085768
parents: 129
diff changeset
540 for( int i = 0; i < 4; i ++ ){
586d68c42c5d draw field
e085768
parents: 129
diff changeset
541 printf("cameraAngle[%d] = %f ", i, cameraMan_angle[i] );
586d68c42c5d draw field
e085768
parents: 129
diff changeset
542 }
586d68c42c5d draw field
e085768
parents: 129
diff changeset
543 printf("\n");
586d68c42c5d draw field
e085768
parents: 129
diff changeset
544
586d68c42c5d draw field
e085768
parents: 129
diff changeset
545
586d68c42c5d draw field
e085768
parents: 129
diff changeset
546 }