annotate gSprite.cc @ 113:8c96cadde050

after game_team
author Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
date Thu, 09 Jun 2011 18:07:46 +0900
parents e5f2eb98b575
children 3ffda5b493c2 31dd5c07f7c1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
1 #include <stdio.h>
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
2 #include <stdlib.h>
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
3 #include "libps2.h"
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
4 #include "ps2util.h"
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
5 #include "gSprite.h"
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
6 #include <stdbool.h>
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
7
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
8 #define DEFOBJ 100
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
9 #define SPRITE_COL 0x4f
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
10 #define SCREEN_HALF_W 320
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
11 #define SCREEN_HALF_H 240
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
12
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
13 static SpriteTable sptable[DEFOBJ];
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
14 static ps2utilSprite sp[DEFOBJ]; // 表示スプライト用スタック
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
15 static unsigned int sp_counter;
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
16 static bool flag_spriteInited = false; // スプライトロードフラグ
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
17
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
18 static TEXTURE *sprite_tex;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
19
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
20
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
21 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
22 gSprite_DefSprite(int number, int tx, int ty, int tw, int th)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
23 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
24 sptable[number].tx = tx;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
25 sptable[number].ty = ty;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
26 sptable[number].tw = tw;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
27 sptable[number].th = th;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
28 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
29
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
30 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
31 gSprite_PutSprite(int number, int x, int y)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
32 {
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
33 ps2utilSprite *p = &sp[sp_counter];
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
34
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
35 ps2util_sprite_Set_basicAttribute(
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
36 p,
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
37 (unsigned short)x, (unsigned short)y,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
38 (unsigned short)sptable[number].tw*2, (unsigned short)sptable[number].th*2,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
39 (unsigned short)sptable[number].tx, (unsigned short)sptable[number].ty,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
40 (unsigned short)sptable[number].tw, (unsigned short)sptable[number].th,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
41 SPRITE_PRIO_FOREGROUND);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
42
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
43 ps2util_sprite_Request(p);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
44 sp_counter++;
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
45 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
46
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
47 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
48 gSprite_PutSpriteEx(int number, int x, int y, float w, float h)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
49 {
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
50 ps2utilSprite *p = &sp[sp_counter];
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
51
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
52 ps2util_sprite_Set_basicAttribute(
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
53 p,
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
54 (unsigned short)x, (unsigned short)y,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
55 (unsigned short)sptable[number].tw*w, (unsigned short)sptable[number].th*h,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
56 (unsigned short)sptable[number].tx, (unsigned short)sptable[number].ty,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
57 (unsigned short)sptable[number].tw, (unsigned short)sptable[number].th,
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
58 SPRITE_PRIO_FOREGROUND);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
59
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
60 ps2util_sprite_Request(p);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
61 sp_counter++;
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
62 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
63
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
64
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
65 static void
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
66 gSprite_Init_Png(const char *texname)
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
67 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
68 if (!(sprite_tex = read_png_file(texname))) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
69 fprintf(stderr,
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
70 "cannot creat texture - init_png().\n");
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
71 fflush(stderr);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
72 exit(EXIT_FAILURE);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
73 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
74
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
75 if (ps2util_tex_Set(sprite_tex) == -1) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
76 fprintf(stderr,
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
77 "cannot set texture - init_png().\n");
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
78 fflush(stderr);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
79 exit(EXIT_FAILURE);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
80 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
81
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
82 }
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
83
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
84 static void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
85 gSprite_Create()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
86 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
87 int i;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
88
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
89 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
90 if (ps2util_sprite_Create(&sp[i], sprite_tex) == -1) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
91 fprintf(stderr,
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
92 "cannot create sprite No.%d - create_sprite()\n", i);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
93 fflush(stderr);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
94 exit(EXIT_FAILURE);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
95 }
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
96 ps2util_sprite_Unuse_alpha(&sp[i]);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
97 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
98
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
99 flag_spriteInited = false;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
100 }
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
101
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
102
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
103 void
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
104 gSprite_Init()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
105 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
106 ps2util_graphic_Init();
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
107 gSprite_Init_Png("img/main2.png");
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
108 gSprite_Create(); // スプライト生成
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
109
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
110
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
111 // スプライトの登録
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
112 gSprite_DefSprite(10, 1, 1, 512, 666); // タイトル
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
113 gSprite_DefSprite(17, 1, 35, 33, 33); // 選択マーク
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
114 gSprite_DefSprite(23, 1, 1, 106, 34); // スピードメーター
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
115 gSprite_DefSprite(24, 51, 40, 18, 20); // 右矢印
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
116 gSprite_DefSprite(25, 33, 40, 17, 20); // 左矢印
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
117 gSprite_DefSprite(26, 56, 89, 55, 26); // km/h
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
118 gSprite_DefSprite(27, 62, 62, 39, 26); // Rap
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
119 gSprite_DefSprite(28, 430, 62, 53, 46); // 1p
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
120 gSprite_DefSprite(29, 460, 6, 53, 46); // 2P
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
121 gSprite_DefSprite(51, 333, 116, 165, 140); // 選択画面の車
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
122 gSprite_DefSprite(52, 181, 116, 165, 140);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
123 gSprite_DefSprite(53, 12, 116, 165, 140);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
124 gSprite_DefSprite(81, 115, 1, 148, 114); // 選択画面のコース
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
125 // 本当は (82, 272,...)です。二つ目のコース絵がないので
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
126 gSprite_DefSprite(82, 272, 1, 148, 114);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
127
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
128 }
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
129
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
130
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
131 static void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
132 gSprite_Clear()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
133 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
134 int i;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
135
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
136 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
137 sprite_disappear(&sp[i].attribute);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
138 }
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
139 sp_counter = 0;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
140 }
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
141
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
142
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
143
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
144 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
145 gSprite_Draw_Reset()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
146 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
147 if (flag_spriteInited == true) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 95
diff changeset
148 gSprite_Clear();
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 }
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
151
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
152
95
b0249b856488 change_ps2util
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
153
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
154 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
155 gSprite_PutSprite_Pause()
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
156 {
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
157 }