annotate gSprite.h @ 115:31dd5c07f7c1

class OBJECT:SceanGraph
author e085768
date Wed, 15 Jun 2011 23:31:59 +0900
parents 0b65ca27f113
children ed702e49cc6c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
1 //SgoexCerium.ccより
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
2 #include "matrix_calc.h"
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
3 #include "TaskManager.h"
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
4 #include "SceneGraph.h"
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
5 #include "Application.h"
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
6
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
7 #include <stdio.h>
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
8 #include <stdlib.h>
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
9 #include "libps2.h"
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
10 #include "ps2util.h"
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
11 #include <stdbool.h>
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
12
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
13 #define DEFOBJ 100
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
14 #define SPRITE_COL 0x4f
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
15 #define SCREEN_HALF_W 320
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
16 #define SCREEN_HALF_H 240
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
17
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
18 static SpriteTable sptable[DEFOBJ];
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
19 static ps2utilSprite sp[DEFOBJ]; // 表示スプライト用スタック
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
20 static unsigned int sp_counter;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
21 static bool flag_spriteInited = false; // スプライトロードフラグ
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
22
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
23 static TEXTURE *sprite_tex;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
24
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
25
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
26
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
27 extern Viewer *droot;
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
28
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
29 static SceneGraphPtr root;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
30
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
31
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
32 //SgoexCerium.ccより
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
33 void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
34 flip()
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
35 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
36 CameraPtr camera = droot->sgroot->getCamera();
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
37
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
38 droot->sgroot->flip();
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
39 droot->sgroot->lightCalc();
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
40
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
41 root = droot->createSceneGraph();
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
42 //root->xyz[0] = screen_w/2;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
43 //root->xyz[1] = screen_h/2;;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
44 root->xyz[0] = 0;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
45 root->xyz[1] = 0;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
46 root->xyz[2] = 30.0f;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
47
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
48 /*親の回転、座標から、子の回転、座標を算出*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
49 get_matrix(root->matrix, root->angle, root->xyz, camera->matrix);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
50 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
51 get_matrix(root->real_matrix, root->angle, root->xyz, camera->real_matrix);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
52 //出力して、次のものを出力するための準備
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
53 droot->setSceneData(root);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
54 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
55
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
56
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
57
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
58
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
59
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
60 /*void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
61 gSprite_DefSprite(int number, int tx, int ty, int tw, int th)
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
62 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
63 sptable[number].tx = tx;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
64 sptable[number].ty = ty;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
65 sptable[number].tw = tw;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
66 sptable[number].th = th;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
67 }*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
68 void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
69 gSprite_DefSprite(int number, const char *name, float w, float h, int color, OBJECT *obj)
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
70 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
71 SpriteTable *m = &sptable[number];
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
72 m->w = w;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
73 m->h = h;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
74 m->color = (color & 32);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
75 m->mx = w / 2; //画像の中心を座標としたいらしい。
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
76 m->my = h / 2;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
77 m->tex_w = power_of_two(m->w);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
78 m->tex_h = power_of_two(m->h);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
79 m->texture = (int *)name;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
80
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
81 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
82
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
83
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
84
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
85
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
86
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
87 /*void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
88 gSprite_PutSprite(int number, int x, int y)
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
89 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
90 ps2utilSprite *p = &sp[sp_counter];
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
91
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
92 ps2util_sprite_Set_basicAttribute(
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
93 p,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
94 (unsigned short)x, (unsigned short)y,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
95 (unsigned short)sptable[number].tw*2, (unsigned short)sptable[number].th*2,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
96 (unsigned short)sptable[number].tx, (unsigned short)sptable[number].ty,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
97 (unsigned short)sptable[number].tw, (unsigned short)sptable[number].th,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
98 SPRITE_PRIO_FOREGROUND);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
99
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
100 ps2util_sprite_Request(p);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
101 sp_counter++;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
102 }*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
103 void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
104 gSprite_PutSprite(int number, short x, short y, int zorder)
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
105 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
106 SpriteTable *m = &sptable[number];
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
107 char *name = (char *) m->texture;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
108 if (!name) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
109 printf("PutSprite %d unknown\n",number);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
110 return;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
111 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
112 SceneGraphPtr object = droot->createSceneGraph(name);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
113 //object->c_xyz[0] = m->mx;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
114 //object->c_xyz[1] = m->my;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
115 root->addChild(object);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
116
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
117 object->xyz[0] -= object->c_xyz[0]*my_scale;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
118 object->xyz[1] -= object->c_xyz[1]*my_scale;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
119 object->xyz[2] -= object->c_xyz[2];
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
120
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
121 object->xyz[0] += x+m->mx;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
122 object->xyz[1] += y+m->my;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
123 object->xyz[2] += zorder * 0.01;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
124
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
125 float scale[] = {my_scale,my_scale,1};
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
126 //float c_xyz[] = {0,0,0};
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
127 //scale_matrix(object->matrix, scale, c_xyz);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
128
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
129 /*親の回転、座標から、子の回転、座標を算出*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
130 //get_matrix_scale(object->matrix, object->angle, object->xyz, scale, root->matrix);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
131
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
132 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
133 // get_matrix(object->real_matrix, object->angle, object->xyz, root->real_matrix);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
134 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
135
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
136
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
137
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
138
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
139
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
140
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
141 /*void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
142 gSprite_PutSpriteEx(int number, int x, int y, float w, float h)
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
143 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
144 ps2utilSprite *p = &sp[sp_counter];
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
145
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
146 ps2util_sprite_Set_basicAttribute(
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
147 p,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
148 (unsigned short)x, (unsigned short)y,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
149 (unsigned short)sptable[number].tw*w, (unsigned short)sptable[number].th*h,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
150 (unsigned short)sptable[number].tx, (unsigned short)sptable[number].ty,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
151 (unsigned short)sptable[number].tw, (unsigned short)sptable[number].th,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
152 SPRITE_PRIO_FOREGROUND);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
153
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
154 ps2util_sprite_Request(p);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
155 sp_counter++;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
156 }*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
157 void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
158 PutSpriteEx(int number, int x, int y, float scalex, float scaley, float angle)
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
159 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
160 if (1) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
161 PutSprite(1, x, y, number);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
162 return;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
163 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
164
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
165 SpriteTable *m = &sptable[number];
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
166 char *name = (char *) m->texture;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
167 if (!name) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
168 printf("PutSpriteEx %d unknown\n",number);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
169 return;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
170 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
171 SceneGraphPtr object = droot->createSceneGraph(name);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
172 root->addChild(object);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
173
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
174 float scale[] = {my_scale*scalex*4,my_scale*scaley*4,1};
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
175
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
176 /*親の回転、座標から、子の回転、座標を算出*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
177 object->xyz[0] = x - object->c_xyz[0] * my_scale - m->w*my_scale;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
178 object->xyz[1] = y - object->c_xyz[1] * my_scale - m->h*my_scale;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
179 object->xyz[2] = number * 0.01;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
180 //object->c_xyz[0] = m->mx;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
181 //object->c_xyz[1] = m->my;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
182 object->angle[3] = angle * (3.1415926*2/4096);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
183 get_matrix(object->matrix, object->angle, object->xyz, root->matrix);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
184 float c_xyz[] = {0,0,0};
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
185 scale_matrix(object->matrix, scale, c_xyz);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
186 /*法線用の行列。Cameraの行列を抜いている(Cameraのコンストラクタで、単位行列にしている)*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
187 // get_matrix(object->real_matrix, object->angle, object->xyz, root->real_matrix);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
188 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
189
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
190
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
191
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
192
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
193
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
194
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
195
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
196 //ここいらはどうやら、スプライトを取得する部分。
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
197
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
198 static void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
199 gSprite_Init_Png(const char *texname)
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
200 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
201 if (!(sprite_tex = read_png_file(texname))) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
202 fprintf(stderr,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
203 "cannot creat texture - init_png().\n");
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
204 fflush(stderr);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
205 exit(EXIT_FAILURE);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
206 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
207
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
208 if (ps2util_tex_Set(sprite_tex) == -1) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
209 fprintf(stderr,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
210 "cannot set texture - init_png().\n");
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
211 fflush(stderr);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
212 exit(EXIT_FAILURE);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
213 }
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
214
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
215 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
216
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
217 static void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
218 gSprite_Create()
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
219 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
220 int i;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
221
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
222 for (i=0; i<DEFOBJ; i++) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
223 if (ps2util_sprite_Create(&sp[i], sprite_tex) == -1) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
224 fprintf(stderr,
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
225 "cannot create sprite No.%d - create_sprite()\n", i);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
226 fflush(stderr);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
227 exit(EXIT_FAILURE);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
228 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
229 ps2util_sprite_Unuse_alpha(&sp[i]);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
230 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
231
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
232 flag_spriteInited = false;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
233 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
234
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
235
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
236 void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
237 gSprite_Init()
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
238 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
239 ps2util_graphic_Init();
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
240 //gSprite_Init_Png("img/main2.png");
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
241 //gSprite_Create(); // スプライト生成
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
242
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
243 sgroot->createFromXMLfile("./xml_files/boss.xml");
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
244
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
245 /* gSprite_DefSprite(10, 1, 1, 512, 666); // タイトル
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
246 gSprite_DefSprite(17, 1, 35, 33, 33); // 選択マーク
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
247 gSprite_DefSprite(23, 1, 1, 106, 34); // スピードメーター
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
248 gSprite_DefSprite(24, 51, 40, 18, 20); // 右矢印
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
249 gSprite_DefSprite(25, 33, 40, 17, 20); // 左矢印
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
250 gSprite_DefSprite(26, 56, 89, 55, 26); // km/h
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
251 gSprite_DefSprite(27, 62, 62, 39, 26); // Rap
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
252 gSprite_DefSprite(28, 430, 62, 53, 46); // 1p
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
253 gSprite_DefSprite(29, 460, 6, 53, 46); // 2P
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
254 gSprite_DefSprite(51, 333, 116, 165, 140); // 選択画面の車
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
255 gSprite_DefSprite(52, 181, 116, 165, 140);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
256 gSprite_DefSprite(53, 12, 116, 165, 140);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
257 gSprite_DefSprite(81, 115, 1, 148, 114); // 選択画面のコース
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
258 // 本当は (82, 272,...)です。二つ目のコース絵がないので
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
259 gSprite_DefSprite(82, 272, 1, 148, 114);*/
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
260
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
261 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
262
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
263
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
264 static void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
265 gSprite_Clear()
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
266 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
267 int i;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
268
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
269 for (i=0; i<DEFOBJ; i++) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
270 sprite_disappear(&sp[i].attribute);
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
271 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
272 sp_counter = 0;
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
273 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
274
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
275
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
276
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
277 void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
278 gSprite_Draw_Reset()
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
279 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
280 if (flag_spriteInited == true) {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
281 gSprite_Clear();
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
282 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
283 }
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
284
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
285
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
286
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
287 void
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
288 gSprite_PutSprite_Pause()
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
289 {
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 96
diff changeset
290 }