annotate gSprite.cc @ 146:d1ddd095ab03

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