# HG changeset patch # User koba # Date 1290594244 -32400 # Node ID a131729d6e4d70864f9ad6433bf3da9d11c3c9ad # Parent 3fb8a6a34e241f7d0d677cdb252f11c5a792009d not working. diff -r 3fb8a6a34e24 -r a131729d6e4d Func.h --- a/Func.h Tue Oct 26 17:28:56 2010 +0900 +++ b/Func.h Wed Nov 24 19:24:04 2010 +0900 @@ -1,51 +1,12 @@ enum { #include "SysTasks.h" #include "RenderingTasks.h" - TITLE_MOVE, - CRAB_MOVE, - TITLE_COLL, - MOVE_00, - MOVE_01, - MOVE_02, - MOVE_03, - MOVE_04, - MOVE_05, - MOVE_06, - MOVE_07, - MOVE_08, - MOVE_09, - MOVE_10, - MOVE_11, - MOVE_12, - MOVE_13, - MOVE_20, - MOVE_21, - MOVE_22, - MOVE_23, - MOVE_24, - MOVE_25, - MOVE_26, - MOVE_27, - MOVE_28, - MOVE_29, - MOVE_30, - MOVE_31, - MOVE_32, - MOVE_33, - MOVE_34, - MOVE_35, - MOVE_40, - MOVE_41, - MOVE_400, - MOVE_401, - MOVE_402, - MOVE_410, - MOVE_411, - MOVE_500, - MOVE_501, - MOVE_600, - MOVE_601, - MOVE_602, - ASTEROID, +#include "game_task.h" +}; -}; +enum { +#include "RenderingGlobal.h" +#include "global_alloc.h" +#include "KeyID.h" +#include "global_id.h" +} diff -r 3fb8a6a34e24 -r a131729d6e4d dandy.h --- a/dandy.h Tue Oct 26 17:28:56 2010 +0900 +++ b/dandy.h Wed Nov 24 19:24:04 2010 +0900 @@ -9,6 +9,9 @@ #include "MainLoop.h" #include "Func.h" +#ifndef INCLUDE_DANDY_H +#define INCLUDE_DANDY_H + class Dandy : public Application { MainLoopPtr init(Viewer *viewer, int w, int h); }; @@ -17,94 +20,91 @@ typedef void (*coll)(SceneGraphPtr node, void *sgroot_, int w, int h, SceneGraphPtr tree); typedef struct { - double x, y; //16 - double vx, vy; //16 - int frame; //4 - const char *chara; //1 - int vital; //4 - int score; //4 - void *parent; //4 - void *root; //4 - int flag; //4 - char a, i, u; //3 + int chara_id; + const char *name; + float x, y; + float width, height; + float mid_w, mid_h; + float vx, vy; + int vital; + int score; + int frame; + void *parent; + void *root; + int flag; } *ObjPropertyPtr, ObjProperty; -extern ObjProperty back_property; -extern ObjPropertyPtr charactor; - -//キャラクターの総数 -static const int ENEMY_NUM = 2; - -//TaskArray 生成に必要な各値 -static const int TASK_NUM = 2; -static const int PARAMETER = 0; -static const int INDATA_NUM = 2; -static const int OUTDATA_NUM = 1; - -extern void create_title_back(Viewer *sgroot, int w, int h); -extern void create_stage(void *sgroot, int w, int h); -extern void schedule(SceneGraphPtr node, void *sgroot_, int w, int h); - -//extern create_enemy(SchedTask *s, void *enemy_, void *b); - typedef struct enemy_state { - const char *charano; + const int char_id; int score; int vital; } state; -//const state enemystate[50]; +//キャラの総数 +static const int CHAR_NUM = 300; +//敵の総数 +static const int ENEMY_NUM = 50; + +extern ObjPropertyPtr charactor; + +extern void init_game(Viewer *sgroot, int w, int h); +extern void schedule(SceneGraphPtr node, void *sgroot_, int w, int h); + +//extern create_enemy(SchedTask *s, void *enemy_, void *b); + -#define ENEMY_STATUS_TABLE {\ - ENEMY_STATUS("title001", 0, 0),\ - ENEMY_STATUS("greencrab", 330, 98),\ - ENEMY_STATUS("plane", 470, 37),\ - ENEMY_STATUS("e_redbullet", 30, 16),\ - ENEMY_STATUS("bass1_organ", 25000, 10000),\ - ENEMY_STATUS("boss1_parts1", 10000, 10000),\ - ENEMY_STATUS("bluebullet", 40, 39),\ - ENEMY_STATUS("e_laser", 100, 100000),\ - ENEMY_STATUS("lightning", 100, 100000),\ - ENEMY_STATUS("asteroid", 170, 500),\ - ENEMY_STATUS("asteroid_boss2body", 100, 500),\ - ENEMY_STATUS("boss2_leftshoulder", 10000, 12000),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ - ENEMY_STATUS("t", 0, 0),\ +#define ENEMY_STATUS_TABLE { \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(ENEMY_GREENCRAB, 330, 98), \ + ENEMY_STATUS(ENEMY_PLANE, 470, 37), \ + ENEMY_STATUS(ENEMY_REDBULLET, 30, 16), \ + ENEMY_STATUS(BOSS1_ORGAN, 25000, 10000), \ + ENEMY_STATUS(BOSS1_ORGAN, 10000, 10000), \ + ENEMY_STATUS(ENEMY_BLUEBULLET, 40, 39), \ + ENEMY_STATUS(ENEMY_LASER, 100, 100000), \ + ENEMY_STATUS(ENEMY_LIGHTNING, 100, 100000), \ + ENEMY_STATUS(ASTEROID, 170, 500), \ + ENEMY_STATUS(BOSS2_BODY, 100, 500), \ + ENEMY_STATUS(BOSS2_LEFTSHOULDER, 10000, 12000), \ + ENEMY_STATUS(BOSS2_RIGHTSHOULDER, 10000, 12000), \ + ENEMY_STATUS(BOSS2_RIGHTARM, 5000, 15000), \ + ENEMY_STATUS(BOSS2_LEFTARM, 5000, 15000), \ + ENEMY_STATUS(BOSS2_BATTERY, 10000, 5000), \ + ENEMY_STATUS(BOSS2_OPENBATTERY, 10000, 5000), \ + ENEMY_STATUS(BOSS2_BROKENHATCH, 100, 500), \ + ENEMY_STATUS(BOSS2_DUMMY, 50000, 15000), \ + ENEMY_STATUS(BOSS2_RIGHTSHOULDERUP, 10000, 20000), \ + ENEMY_STATUS(BOSS2_LEFTSHOULDERUP, 10000, 15000), \ + ENEMY_STATUS(BOSS2_LEFTSHOULDERGIRD, 100, 20000), \ + ENEMY_STATUS(BOSS2_RIGHTARMBATTERY, 100, 500), \ + ENEMY_STATUS(BOSS2_LEFTARMBATTERY, 100, 500), \ + ENEMY_STATUS(ORBITMACHINE, 20, 1000000), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(BLACKHOLE, 200000, 30000), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(GUNBATTERY, 540, 137), \ + ENEMY_STATUS(PURPLECORE, 840, 287), \ + ENEMY_STATUS(SPACEFISH, 370, 137), \ + ENEMY_STATUS(MISSILE, 210, 24), \ + ENEMY_STATUS(BOSS3_BODY, 100000, 9600), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(0, 0, 0), \ + ENEMY_STATUS(BODD4_BODY, 300000, 20400) \ } + +#endif diff -r 3fb8a6a34e24 -r a131729d6e4d main.cc --- a/main.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/main.cc Wed Nov 24 19:24:04 2010 +0900 @@ -1,7 +1,7 @@ #include "dandy.h" #define ENEMY_STATUS(charano,score,hardness) {charano,score,hardness} -const state status[50] = ENEMY_STATUS_TABLE; +const state enemy_status[ENEMY_NUM] = ENEMY_STATUS_TABLE; extern void task_init(void); @@ -12,6 +12,52 @@ -length Number of data (default DATA_NUM (Func.h))\n\ -count Number of task (default 1)\n"; +HTaskPtr +pad_alloc(Viewer *sgroot) +{ + HTaskPtr task = sgroot->tmanager->create_task(PAD_ALLOCATE); + void *pad = (void*)sgroottmp->getController(); + int size = sizeof(Pad); + + task->set_param(0, PAD_INPUT); + task->set_param(1, size); + task->add_inData(pad, size); + task->set_cpu(SPE_ANY); + task->spawn(); + + return task; +} + +HTaskPtr +pad_update(Viewer *sgroot) +{ + HTaskPtr task = sgroot->tmanager->create_task(PAD_UPDATE); + void *pad = (void*)sgroottmp->getController(); + int size = sizeof(Pad); + + task->set_param(0, PAD_INPUT); + task->set_param(1, size); + task->add_inData(pad, size); + task->set_cpu(SPE_ANY); + task->spawn(); + + return task; +} + +HTaskPtr +pad_free(Viewer *sgroot) +{ + HTaskPtr task = sgroot->tmanager->create_task(PAD_FREE); + void *pad = (void*)sgroottmp->getController(); + int size = sizeof(Pad); + + task->set_param(0, PAD_INPUT); + task->set_cpu(SPE_ANY); + task->spawn(); + + return task; +} + int init(int argc, char **argv) { @@ -26,8 +72,24 @@ return 0; } +//旧APIとの互換関数 void -init_charactor(Viewer *sgroot, int w, int h) +PutSprite(float x, float y, int number) +{ + char* name = charactor[number].name; + SceneGraphPtr object = sgroot->createSceneGraph(name); + + title->xyz[0] = x; + title->xyz[1] = y; + + charactor[number].x = x; + charactor[number].y = y; + charactor[number].flag = 0; + charactor[number].root = (void*)object; +} + +void +create_sg(Viewer *sgroot, int w, int h) { sgroot->createFromXMLfile("xml/mydandy.xml"); sgroot->createFromXMLfile("xml/greencrab.xml"); @@ -36,20 +98,172 @@ sgroot->createFromXMLfile("xml/bluebullet.xml"); sgroot->createFromXMLfile("xml/redbullet.xml"); sgroot->createFromXMLfile("xml/title2.xml"); +} + +void +def_charactor(int number, char *name, float w, float h) +{ + charactor[number].chara_id = number; + charactor[number].name = name; + charactor[number].width = w; + charactor[number].height = h; + charactor[number].mid_w = w / 2; + charactor[number].mid_h = h / 2; +} + +void +set_parameter() +{ + /** + * 1引数:キャラクターID; + * 2引数:キャラクター名; + * 3引数:幅 + * 4引数:高さ + */ + + def_charactor(PLAYER_IDLE, "player_idle", 128, 128); + def_charactor(PLAYER_LEFTMOVE, "player_leftmove", 128, 128); + def_charactor(PLAYER_TURNTOLEFT, "player_turntoleft", 128, 128); + def_charactor(PLAYER_TURNTORIGHT, "player_turntoright", 128, 128); + def_charactor(PLAYER_RIGHTMOVE, "player_rightmove", 128, 128); + def_charactor(BLUEBULLET_LEFT, "bulebullet_left", 45, 128); + def_charactor(BLUEBULLET_RIGHT, "blebullet_right", 38, 128); + def_charactor(REDBULLET, "redbullet", 128, 256); + def_charactor(LONGLASER, "longlaser", 64, 256); + def_charactor(GAUGE_PANEL, "gauge_panel", 128, 512); + def_charactor(OFFENSIVEPOWER_GAUGE, "offensivepower_gauge", 27, 220); + def_charactor(BURNER, "burner", 63, 122); + def_charactor(LOCKON_SIGHT, "lockon_sight", 64, 64); + //def_charactor(SPECIAL_LASERGAUGE, "special_lasergauge", 0, 0); + def_charactor(DIFFENSIVEPOWER_GAUGE, "diffensivepower_gauge", 20, 215); + def_charactor(GREENBULLET, "greenbullet", 128, 128); + def_charactor(BULEBARRIER, "bulebarrier", 128, 128); + //def_charactor(FONT_PLAYER_1, "font_player1", 128, 32); + //def_charactor(FONT_GAMEOVER, "font_gameover", 256, 32); + def_charactor(FONT_0, "font_0", 32, 32); + def_charactor(FONT_1, "font_1", 32, 32); + def_charactor(FONT_2, "font_2", 32, 32); + def_charactor(FONT_3, "font_3", 32, 32); + def_charactor(FONT_4, "font_4", 32, 32); + def_charactor(FONT_5, "font_5", 32, 32); + def_charactor(FONT_6, "font_6", 32, 32); + def_charactor(FONT_7, "font_7", 32, 32); + def_charactor(FONT_8, "font_8", 32, 32); + def_charactor(FONT_9, "font_9", 32, 32); + def_charactor(REDBOMB_ANIM_0, "redbomb_anim_0", 64, 64); + def_charactor(REDBOMB_ANIM_1, "redbomb_anim_1", 64, 64); + def_charactor(REDBOMB_ANIM_2, "redbomb_anim_2", 64, 64); + def_charactor(REDBOMB_ANIM_3, "redbomb_anim_3", 64, 64); + def_charactor(REDBOMB_ANIM_4, "redbomb_anim_4", 64, 64); + def_charactor(REDBOMB_ANIM_5, "redbomb_anim_5", 64, 64); + def_charactor(REDBOMB_ANIM_6, "redbomb_anim_6", 64, 64); + def_charactor(REDBOMB_ANIM_7, "redbomb_anim_7", 64, 64); + def_charactor(FONT_HIGE, "font_hige", 128, 32); + def_charactor(GREENBOMB_ANIM_0, "greenbomb_anim_0", 64, 64); + def_charactor(GREENBOMB_ANIM_1, "greenbomb_anim_1", 64, 64); + def_charactor(GREENBOMB_ANIM_2, "greenbomb_anim_2", 64, 64); + //def_charactor(GREENBOMB_ANIM_3, "greenbomb_anim_3", 64, 64); + def_charactor(GREENBOMB_ANIM_4, "greenbomb_anim_4", 64, 64); + def_charactor(GREENBOMB_ANIM_5, "greenbomb_anim_5", 64, 64); + def_charactor(GREENBOMB_ANIM_6, "greenbomb_anim_6", 64, 64); + def_charactor(GREENBOMB_ANIM_7, "greenbomb_anim_7", 64, 64); + def_charactor(INFLATION_GAUGE, "inflation_gauge", 64, 512); + def_charactor(INFLATION_METER, "inflation_meter", 32, 512); + def_charactor(ENEMY_GREENCRAB, "enemy_greenclab", 128, 128); + def_charactor(ENEMY_PLANE, "enemy_plane", 128, 128); + def_charactor(ENEMY_REDBULLET, "enemy_redbullet", 32, 32); + def_charactor(FONT_PUSHSTART, "font_pushstart", 512, 32); + def_charactor(BOSS1_ORGAN, "boss1_organ", 128, 256); + def_charactor(ENEMY_LASER, "enemy_laser", 64, 251); + def_charactor(ENEMY_BLUEBULLET, "enemy_bluebullet", 36, 28); + def_charactor(ENEMY_LIGHTNING, "enemy_lightning", 64, 252); + def_charactor(ENEMY_LASERSPLOSH_0, "enemy_lasersplosh_0", 126, 127); + def_charactor(ENEMY_LASERSPLOSH_1, "enemy_lasersplosh_1", 124, 119); + def_charactor(ENEMY_LASERSPLOSH_2, "enemy_lasersplosh_2", 126, 127); + def_charactor(ENEMY_LASERSPLOSH_3, "enemy_lasersplosh_3", 112, 102); + def_charactor(ASTEROID, "meteo", 128, 128); //inseki + def_charactor(ORBITMACHINE, "orbitmachine", 128, 64); //inseki no shita maruiyatsu + def_charactor(BOSS2_BODY, "boss2_body", 512, 512); + def_charactor(BOSS2_RIGHTSHOULDER, "boss2_rightshoulder", 256, 256); + def_charactor(BOSS2_LEFTSHOULDER, "boss2_leftshoulder", 256, 256); + def_charactor(BOSS2_RIGHTARM, "boss2_rightarm", 128, 256); + def_charactor(BOSS2_LEFTARM, "boss2_leftarm", 128, 256); + def_charactor(BOSS2_BATTERY, "boss2_battery", 128, 128); + def_charactor(BOSS2_OPENBATTERY, "boss2_openbattery", 256, 128); + def_charactor(BOSS2_BROKENHATCH, "boss2_brokenhatch", 128, 64); + def_charactor(BOSS2_DUMMY, "boss2_dummy", 128, 64); + def_charactor(BOSS2_RIGHTSHOULDERUP, "boss2_r_shoulderup", 256, 128); + def_charactor(BOSS2_LEFTSHOULDERUP, "boss2_left_s_up", 256, 128); + def_charactor(BOSS2_LEFTSHOULDERGIRD, "boss2_left_s_gird", 256, 256); + def_charactor(BOSS2_RIGHTARMBATTERY, "boss2_rightarm_b", 64, 64); + def_charactor(BOSS2_LEFTARMBATTERY, "boss2_leftarmbattery", 64, 64); + def_charactor(BOSS2_RIGHTHAND, "boss2_righthand", 64, 64); + def_charactor(BOSS2_RIGHTPALM, "boss2_rightpalm", 64, 64); + def_charactor(BOSS2_LEFTHAND, "boss2_lefthand", 64, 64); + def_charactor(BOSS2_LEFTPALM, "boss2_leftpalm", 64, 64); + def_charactor(PLAYER_LASERSPLOSH_0, "player_lasersplosh_0", 115, 91); + def_charactor(PLAYER_LASERSPLOSH_1, "player_lasersplosh_1", 133, 121); + def_charactor(PLAYER_LASERSPLOSH_2, "player_lasersplosh_2", 135, 119); + def_charactor(PLAYER_LASERSPLOSH_3, "player_lasersplosh_3", 131, 120); + def_charactor(BOSS_POWERGAUGE, "boss_powergauge", 69, 762); + def_charactor(BLACKHOLE, "blackhole", 128, 128); + def_charactor(FONT_DOYOUCONTINUE, "font_doyoucontinue", 512, 32); + def_charactor(FONT_ALLSTAGECLEAR, "font_allstageclear", 512, 32); + def_charactor(FONT_REST, "font_rest", 128, 32); + def_charactor(FONT_STAGE, "font_stage", 256, 32); + def_charactor(FONT_LINEOFZERO_000000, "font_000000", 256, 32); + def_charactor(FONT_LINEOFZERO_0000000, "font_0000000", 256, 32); + def_charactor(FONT_THANKYOU, "font_thankyou", 512, 32); + def_charactor(FONT_NYSOFT, "font_nysoft", 512, 32); + def_charactor(FONT_1997YGGDRASIL, "font_1997yggdrasil", 512, 32); + def_charactor(FONT_SUPERDANDY, "font_superdandy", 256, 64); + def_charactor(FONT_1997YAS_K, "font_1997yas_k", 512, 32); + def_charactor(GUNBATTERY, "gunbattery", 128, 128); + def_charactor(PURPLECORE, "purplecore", 128, 128); + def_charactor(SPACEFISH, "spacefish", 128, 128); + def_charactor(MISSILE, "missile", 64, 128); + def_charactor(BOSS3_BODY, "boss3_body", 256, 256); + def_charactor(BODD4_BODY, "boss_4", 256, 256); + def_charactor(TITLEFONT_SUPER, "titlefont_super", 256, 256); + def_charactor(TITLEFONT_BATTLE, "titlefont_battle", 256, 256); + def_charactor(TITLEFONT_EMPEROR, "titlefont_emperor", 256, 256); + def_charactor(GREENBARRIER, "greenbarrier", 130, 133); + def_charactor(REMAINDER, "remainder", 126, 34); + def_charactor(EARTH, "earth", 256, 256); + def_charactor(BOSS_CORPSE, "boss_corpse", 64, 256); + def_charactor(211, "rank_c_mins", 64, 32); + def_charactor(210, "rank_c", 64, 32); + def_charactor(209, "rank_c_pla", 64, 32); + def_charactor(208, "rank_b_mins", 64, 32); + def_charactor(207, "rank_b", 64, 32); + def_charactor(206, "rank_b_pla", 64, 32); + def_charactor(205, "rank_a_mins", 64, 32); + def_charactor(204, "rank_a", 64, 32); + def_charactor(203, "rank_a_pla", 64, 32); + def_charactor(202, "rank_s", 64, 32); +} + +void +init_charactor(Viewer *sgroot, int w, int h) +{ + create_sg(sgroot, w, h); + set_parameter(); for (int i = 0; i < ENEMY_NUM; i++) { - charactor[i].root = (void*)sgroot->createSceneGraph(status[i].charano); - charactor[i].score = status[i].score; - charactor[i].vital = status[i].vital; + int char_id = enemy_status[i].char_id; + + charactor[char_id].score = enemy_status[i].score; + charactor[char_id].vital = enemy_status[i].vital; } - create_title_back(sgroot, w, h); } MainLoopPtr Dandy::init(Viewer *sgroot, int w, int h) { - charactor = (ObjPropertyPtr)sgroot->manager->allocate(sizeof(ObjProperty)*ENEMY_NUM); + charactor = (ObjPropertyPtr)sgroot->manager->allocate(sizeof(ObjProperty)*CHAR_NUM); init_charactor(sgroot, w, h); + init_game(sgroot, w, h); + return sgroot; } @@ -65,22 +279,10 @@ int TMmain(TaskManager *manager,int argc, char *argv[]) { - /* - if (init(argc, argv) < 0) { - return -1; - } - */ - // Task Register - // ppe/task_init.cc task_init(); - /* - for (int i = 0; i < task; ++i) { - twice_init(manager); - } - */ - //create_title(sgroot, w, h); task_initialize(); manager->set_TMend(TMend); + return init(manager,argc, argv); } diff -r 3fb8a6a34e24 -r a131729d6e4d ppe/Property.h --- a/ppe/Property.h Tue Oct 26 17:28:56 2010 +0900 +++ b/ppe/Property.h Wed Nov 24 19:24:04 2010 +0900 @@ -6,16 +6,17 @@ #endif typedef struct { - double x, y; //16 - double vx, vy; //16 - int frame; //4 - const char *chara; //1 - int vital; //4 - int score; //4 - void *parent; //4 - void *root; //4 - int flag; //4 - char a, i, u; //3 + float x, y; + float vx, vy; + float width, height; + float mid_w, mid_h; + int frame; + const char *chara; + int vital; + int score; + void *parent; + void *root; + int flag; } *ObjPropertyPtr, ObjProperty; #endif diff -r 3fb8a6a34e24 -r a131729d6e4d ppe/TitleMove.cc --- a/ppe/TitleMove.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/ppe/TitleMove.cc Wed Nov 24 19:24:04 2010 +0900 @@ -10,18 +10,24 @@ static int titlemove(SchedTask *s,void *rbuf, void *wbuf) { - Pad* pad; - ObjPropertyPtr i_obj, o_obj; - - i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0); - pad = (Pad*)s->get_input(rbuf, 1); - o_obj = (ObjPropertyPtr)s->get_output(wbuf, 0); + ObjPropertyPtr i_obj, o_obj; + + i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0); + o_obj = (ObjPropertyPtr)s->get_output(wbuf, 0); - if(pad->start.isPush() || pad->start.isHold()) { - i_obj->flag = 1; - } - - o_obj = i_obj; - - return 0; + int pad_id = (int)s->get_param(0); + int size = (int)s->get_param(1); + Pad *pad = (Pad*)s->pad(pad_id); + + if (pad->start.isPush && pad->start.isHold) { + i_obj->flag = 1; + } + if ((pad->select.isPush && pad->select.isHold) && + (pad->start.isPush && pad->start.isHold)) { + i_obj->flag = 0; + } + + s->swap(); + + return 0; } diff -r 3fb8a6a34e24 -r a131729d6e4d ppe/task_init.cc --- a/ppe/task_init.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/ppe/task_init.cc Wed Nov 24 19:24:04 2010 +0900 @@ -4,7 +4,6 @@ /* 必ずこの位置に書いて */ SchedExternTask(TitleMove); SchedExternTask(CrabMove); -SchedExternTask(TitleColl); /* SchedExternTask(Move00); SchedExternTask(Move01); @@ -68,7 +67,6 @@ { SchedRegisterTask(TITLE_MOVE, TitleMove); SchedRegisterTask(CRAB_MOVE, CrabMove); - SchedRegisterTask(TITLE_COLL, TitleColl); /* SchedRegisterTask(MOVE_00, Move00); SchedRegisterTask(MOVE_01, Move01); diff -r 3fb8a6a34e24 -r a131729d6e4d schedule.cc --- a/schedule.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/schedule.cc Wed Nov 24 19:24:04 2010 +0900 @@ -1,5 +1,6 @@ #include "dandy.h" +#if 0 static const int FRAME_RATE = 32; void Putenemy(int charano, int x, int y, int sx, int sy, int move, int coll, @@ -291,5 +292,6 @@ int size = sizeof(ObjProperty)*16; //printf("size = %d\n", size); - sgroot->set_move_task(obj, move, (void*)e, size, create_enemy); + sgroot->set_move_task(obj, move, (void*)e, size); } +#endif diff -r 3fb8a6a34e24 -r a131729d6e4d stage_init.cc --- a/stage_init.cc Tue Oct 26 17:28:56 2010 +0900 +++ b/stage_init.cc Wed Nov 24 19:24:04 2010 +0900 @@ -1,82 +1,43 @@ -#include "dandy.h" +#include "collision.h" +#if 0 void -create_crab(SchedTask *s, void *charactor_, void *b) +opening() { - ObjPropertyPtr charactor = (ObjPropertyPtr)charactor_; - SceneGraphPtr crab = (SceneGraphPtr)charactor->root; - - crab->xyz[0] = charactor->x; - crab->xyz[1] = charactor->y; + PutSprite(700, 480, 53); // put `push start' string on screen. + PutSprite(224, 776, 119); // put `super dandy' +// Cerium に拡大縮小機能がないので +// PutSpriteEx(190, 800, 264, 2, 2, 5); + PutSprite(800, 264, 190); + PutSprite(396, 432, 191); + PutSprite(640, 640, 192); } void -create_title(SchedTask *s, void *charactor_, void *b) -{ - ObjPropertyPtr charactor = (ObjPropertyPtr)charactor_; - SceneGraphPtr title = (SceneGraphPtr)charactor->root; - - if (charactor->flag == 1) { - title->remove(); - charactor->flag = 0; - } -} - -void -create_title_back(Viewer *sgroot_, int w, int h) +init_game(Viewer *sgroot_, int w, int h) { Viewer *sgroot = sgroot_; SceneGraphPtr root = sgroot->createSceneGraph(); SceneGraphPtr title = (SceneGraphPtr)charactor[0].root; + title->set_move_collision(title_collision); charactor[0].x = w/2; charactor[0].y = h/2; - charactor[0].vx = 0.0; - charactor[0].vy = 0.0; + charactor[0].vx = 1.0; + charactor[0].vy = 1.0; charactor[0].flag = 0; charactor[0].parent = (void*)root; title->xyz[0] = charactor[0].x; title->xyz[1] = charactor[0].y; - SceneGraphPtr crab = (SceneGraphPtr)charactor[1].root; - charactor[1].x = w/2; - charactor[1].y = h/2; - charactor[1].vx = 1.0; - charactor[1].vy = 1.0; - charactor[1].flag = 0; - charactor[1].parent = (void*)root; - - crab->xyz[0] = charactor[1].x; - crab->xyz[1] = charactor[1].y; - crab->flag_drawable = 0; - int size = sizeof(ObjProperty); - sgroot->task_array_init(TITLE_MOVE, TASK_NUM, PARAMETER, INDATA_NUM, OUTDATA_NUM); - sgroot->set_pad_task(title, TITLE_MOVE, (void*)&charactor[0], size, create_title); - sgroot->set_pad_task(crab, CRAB_MOVE, (void*)&charactor[1], size, create_crab); + sgroot->set_pad_task(title, TITLE_MOVE, (void*)&charactor[0], size); +// sgroot->set_pad_task(crab, CRAB_MOVE, (void*)&charactor[1], size); root->addChild(title); - root->addChild(crab); +// root->addChild(crab); sgroot->setSceneData(root); } - -void -create_stage(void *sgroot_, int w, int h, ObjPropertyPtr charactor) -{ - SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; - - SceneGraphPtr stage = sgroot->createSceneGraph(); - SceneGraphPtr mydandy = sgroot->createSceneGraph("mydandy"); - - //mydandy->set_move_collision(dandy_move, dandy_coll); - //stage->set_move_collision(stage_move, stage_coll); - - mydandy->xyz[0] = w/2; - mydandy->xyz[1] = h*0.9; - mydandy->xyz[2] = 0.0f; - - stage->addChild(mydandy); - sgroot->setSceneData(stage); -} +#endif