Mercurial > hg > Members > koba > t_dandy
annotate Character.h @ 65:b97628fca317
int -> long. not move on ABIBIT=64.
author | tkaito |
---|---|
date | Thu, 17 Feb 2011 04:49:47 +0900 |
parents | 978097c6427a |
children |
rev | line source |
---|---|
0 | 1 #include "bool.h" |
2 | |
3 #ifndef CHARACTER_h | |
4 #define CHARACTER_h 1 | |
5 | |
6 /*state id*/ | |
7 #define ALIVE 0 | |
8 #define EXPLODE 1 | |
9 #define DELETE 2 | |
10 | |
11 /*group id*/ | |
12 #define MYSHIP 0 | |
13 #define MYBULLET 1 | |
14 #define ENEMY 2 | |
15 #define ENEMYBULLET 3 | |
16 | |
38 | 17 #define FIX_NUM 17 |
18 | |
0 | 19 //typedef void (*STATE)(CHARACTER *p); |
19 | 20 typedef struct CHARACTER * (*State)(struct CHARACTER *p); |
21 typedef struct CHARACTER * (*Collision)(struct CHARACTER *p); | |
0 | 22 |
23 typedef struct enemy_status { | |
24 int charano; // sprite image number | |
25 int sc; // score | |
26 int p; // hardness | |
27 } table; | |
28 | |
29 | |
30 typedef struct CHARACTER{ | |
31 float x; //position | |
32 float y; | |
33 | |
34 float vx; //velocity | |
35 float vy; | |
36 | |
37 float vit; //vitality | |
38 int score; | |
39 int dt1; | |
40 int dt2; | |
41 int charano; //sprite_number | |
42 BOOL tama; //bullet identifier | |
43 BOOL f; //apiarance idenfifier | |
44 float s; | |
19 | 45 //int group; |
54
3acdeb3dc3e8
collision use global_alloc (not work)
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
44
diff
changeset
|
46 |
44 | 47 int chara_id; |
57 | 48 int state_task; |
49 bool collision_task; | |
19 | 50 |
51 State state; | |
52 Collision collision; | |
0 | 53 struct CHARACTER *next; |
54 struct CHARACTER *prev; | |
55 | |
56 } CHARACTER; | |
57 | |
58 | |
59 extern CHARACTER *active_chara_list; | |
60 extern CHARACTER *free_chara_list; | |
61 extern CHARACTER *kyeenemyno; | |
62 extern CHARACTER *tekino0; | |
63 extern CHARACTER *enemy_part1; | |
64 extern CHARACTER *enemy_part2; | |
65 extern CHARACTER *enemy_part3; | |
66 extern CHARACTER *enemy_part4; | |
67 extern CHARACTER *enemy_part5; | |
68 | |
69 extern int filpcount; | |
70 extern int stage; | |
71 //extern teki enemy[300]; | |
72 extern const table enemystate[50]; | |
73 | |
74 int extend_chara_list_pool(int num); | |
75 void TFon(); | |
76 void TFoff(); | |
65 | 77 int init_chara_list(int num); |
0 | 78 void Putenemy(int charano, float x, float y, float vx, float vy, |
79 CHARACTER * (*action)(CHARACTER *chara)); | |
80 CHARACTER * delete_chara(CHARACTER *p); | |
81 void state_update(); | |
82 void collision_detect(); | |
83 void obj_draw(); | |
84 void outofwindow(); | |
85 | |
86 #define ENEMY_STATUS(id,charno,score,hardness) {charno,score,hardness} | |
87 | |
88 /** | |
89 * enemyの種類一覧 | |
90 */ | |
91 #define ENEMY_STATUS_TABLE {\ | |
92 ENEMY_STATUS(UNUSED0, 0, 0, 0),\ | |
93 ENEMY_STATUS(ID_GREENCRAB, ENEMY_GREENCRAB, 330, 98),\ | |
94 ENEMY_STATUS(ID_PLANE, ENEMY_PLANE, 470, 37),\ | |
95 ENEMY_STATUS(ID_REDBULLET, ENEMY_REDBULLET, 30, 16),\ | |
96 ENEMY_STATUS(ID_BOSS1ORGAN, BOSS1_ORGAN, 25000, 10000),\ | |
97 ENEMY_STATUS(ID_BOSS1SIDEPARTS, BOSS1_ORGAN, 10000, 10000),\ | |
98 ENEMY_STATUS(ID_BLUEBULLET, ENEMY_BLUEBULLET, 40, 39),\ | |
99 ENEMY_STATUS(ID_LASER, ENEMY_LASER, 100, 100000),\ | |
100 ENEMY_STATUS(ID_LIGHTNING, ENEMY_LIGHTNING, 100, 100000),\ | |
101 ENEMY_STATUS(ID_ASTEROID, ASTEROID, 170, 500),\ | |
102 ENEMY_STATUS(ID_ASTEROIDID_BOSS2BODY, BOSS2_BODY, 100, 500),\ | |
103 ENEMY_STATUS(ID_BOSS2LEFTSHOULDER, BOSS2_LEFTSHOULDER, 10000, 12000),\ | |
104 ENEMY_STATUS(ID_BOSS2RIGHTSHOULDER, BOSS2_RIGHTSHOULDER, 10000, 12000),\ | |
105 ENEMY_STATUS(ID_BOSS2RIGHTARM, BOSS2_RIGHTARM, 5000, 15000),\ | |
106 ENEMY_STATUS(ID_BOSS2LEFTARM, BOSS2_LEFTARM, 5000, 15000),\ | |
107 ENEMY_STATUS(ID_BOSS2BATTERY, BOSS2_BATTERY, 10000, 5000),\ | |
108 ENEMY_STATUS(ID_BOSS2OPENBATTERY, BOSS2_OPENBATTERY, 10000, 5000),\ | |
109 ENEMY_STATUS(ID_BOSS2BROKENHATCH, BOSS2_BROKENHATCH, 100, 500),\ | |
110 ENEMY_STATUS(ID_BOSS2DUMMY, BOSS2_DUMMY, 50000, 15000),\ | |
111 ENEMY_STATUS(ID_BOSS2RIGHTSHOULDERUP, BOSS2_RIGHTSHOULDERUP, 10000, 20000),\ | |
112 ENEMY_STATUS(ID_BOSS2LEFTSHOULDERUP, BOSS2_LEFTSHOULDERUP, 10000, 15000),\ | |
113 ENEMY_STATUS(ID_BOSS2LEFTSHOULDERGIRD, BOSS2_LEFTSHOULDERGIRD, 100, 20000),\ | |
114 ENEMY_STATUS(ID_BOSS2RIGHTARMBATTERY, BOSS2_RIGHTARMBATTERY, 100, 500),\ | |
115 ENEMY_STATUS(ID_BOSS2LEFTARMBATTERY, BOSS2_LEFTARMBATTERY, 100, 500),\ | |
116 ENEMY_STATUS(ID_ORBIT, ORBITMACHINE, 20, 1000000),\ | |
117 ENEMY_STATUS(UNUSED1, 0, 0, 0),\ | |
118 ENEMY_STATUS(UNUSED2, 0, 0, 0),\ | |
119 ENEMY_STATUS(UNUSED3, 0, 0, 0),\ | |
120 ENEMY_STATUS(UNUSED4, 0, 0, 0),\ | |
121 ENEMY_STATUS(UNUSED5, 0, 0, 0),\ | |
122 ENEMY_STATUS(ID_BLACK_HOLE, BLACKHOLE, 200000, 30000),\ | |
123 ENEMY_STATUS(UNUSED6, 0, 0, 0),\ | |
124 ENEMY_STATUS(UNUSED7, 0, 0, 0),\ | |
125 ENEMY_STATUS(UNUSED8, 0, 0, 0),\ | |
126 ENEMY_STATUS(UNUSED9, 0, 0, 0),\ | |
127 ENEMY_STATUS(UNUSED10, 0, 0, 0),\ | |
128 ENEMY_STATUS(UNUSED11, 0, 0, 0),\ | |
129 ENEMY_STATUS(UNUSED12, 0, 0, 0),\ | |
130 ENEMY_STATUS(UNUSED13, 0, 0, 0),\ | |
131 ENEMY_STATUS(UNUSED14, 0, 0, 0),\ | |
132 ENEMY_STATUS(ID_GUN_BATTERY, GUNBATTERY, 540, 137),\ | |
133 ENEMY_STATUS(ID_PURPLE_CORE, PURPLECORE, 840, 287),\ | |
134 ENEMY_STATUS(ID_SPACE_FISH, SPACEFISH, 370, 137),\ | |
135 ENEMY_STATUS(ID_AUTOMISSILE, MISSILE, 210, 24),\ | |
136 ENEMY_STATUS(ID_BOSS3, BOSS3_BODY, 100000, 9600),\ | |
137 ENEMY_STATUS(UNUSED15, 0, 0, 0),\ | |
138 ENEMY_STATUS(UNUSED16, 0, 0, 0),\ | |
139 ENEMY_STATUS(UNUSED17, 0, 0, 0),\ | |
140 ENEMY_STATUS(UNUSED18, 0, 0, 0),\ | |
141 ENEMY_STATUS(ID_BOSS4, BODD4_BODY, 300000, 20400)\ | |
142 } | |
143 | |
144 //#define ENEMY_STATUS(id,charno,score,hardness) id | |
145 //typedef enum ENEMY_STATUS EnemyId; | |
146 #endif |