# HG changeset patch # User koba # Date 1291917449 -32400 # Node ID 34fde39c0a31de78c440557d4ddea9ac992fa2b2 # Parent 6bea374ee604c181282b3ec574e981ea3fbeb489# Parent aa37f220b7a8471ce7d78b495486d8e1b3ac380a commit test. diff -r 6bea374ee604 -r 34fde39c0a31 Func.h diff -r 6bea374ee604 -r 34fde39c0a31 dandy.h --- a/dandy.h Fri Dec 10 02:20:37 2010 +0900 +++ b/dandy.h Fri Dec 10 02:57:29 2010 +0900 @@ -11,100 +11,94 @@ #include "Application.h" #include "MainLoop.h" #include "Func.h" +#include "character_id.h" class Dandy : public Application { MainLoopPtr init(Viewer *viewer, int w, int h); }; 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 = 1; - -//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 create_enemy(SchedTask *s, void *enemy_, void *b); - typedef struct enemy_state { - const char *charano; + const int charano; int score; int vital; } state; -//const state enemystate[50]; +extern ObjPropertyPtr charactor; + +//キャラクターの総数 +static const int ENEMY_NUM = 1; + +extern void create_title_back(Viewer *sgroot, int w, int h); +extern void init_game(Viewer *sgroot, int w, int h); +extern void schedule(SceneGraphPtr node, void *sgroot_, int w, int h); -#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 6bea374ee604 -r 34fde39c0a31 game_task.h --- a/game_task.h Fri Dec 10 02:20:37 2010 +0900 +++ b/game_task.h Fri Dec 10 02:57:29 2010 +0900 @@ -2,6 +2,48 @@ TITLE_MOVE, TITLE_COLL, CRAB_MOVE, + 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, PAD_ALLOCATE, PAD_UPDATE, PAD_FREE, diff -r 6bea374ee604 -r 34fde39c0a31 global_id.h diff -r 6bea374ee604 -r 34fde39c0a31 main.cc --- a/main.cc Fri Dec 10 02:20:37 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -#include "dandy.h" - -#define ENEMY_STATUS(charano,score,hardness) {charano,score,hardness} -const state status[50] = ENEMY_STATUS_TABLE; - -extern void task_init(void); - -TaskManager *manager; -ObjPropertyPtr charactor; - -const char *usr_help_str = "Usage: ./twice [-length data_length] [-count task_num]\n\ - -length Number of data (default DATA_NUM (Func.h))\n\ - -count Number of task (default 1)\n"; - -int -init(int argc, char **argv) -{ - for (int i = 1; argv[i]; ++i) { - if (strcmp(argv[i], "-length") == 0) { - //length = atoi(argv[++i]); - } else if (strcmp(argv[i], "-count") == 0) { - //task = atoi(argv[++i]); - } - } - - return 0; -} - -void -init_charactor(Viewer *sgroot, int w, int h) -{ - sgroot->createFromXMLfile("xml/mydandy.xml"); - sgroot->createFromXMLfile("xml/greencrab.xml"); - sgroot->createFromXMLfile("xml/gameover.xml"); - sgroot->createFromXMLfile("xml/greencrab.xml"); - sgroot->createFromXMLfile("xml/bluebullet.xml"); - sgroot->createFromXMLfile("xml/redbullet.xml"); - sgroot->createFromXMLfile("xml/title2.xml"); - - 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; - } - create_title_back(sgroot, w, h); -} - -MainLoopPtr -Dandy::init(Viewer *sgroot, int w, int h) -{ - charactor = (ObjPropertyPtr)sgroot->manager->allocate(sizeof(ObjProperty)*ENEMY_NUM); - init_charactor(sgroot, w, h); - return sgroot; -} - -extern Application * -application() { - return new Dandy(); -} - -extern int init(TaskManager *manager, int argc, char *argv[]); -extern void task_initialize(); -static void TMend(TaskManager *manager); - -int -TMmain(TaskManager *manager,int argc, char *argv[]) -{ - task_init(); - task_initialize(); - manager->set_TMend(TMend); - return init(manager,argc, argv); -} - -void -TMend(TaskManager *manager) -{ - printf("game end\n"); -} diff -r 6bea374ee604 -r 34fde39c0a31 ppe/PadFree.cc --- a/ppe/PadFree.cc Fri Dec 10 02:20:37 2010 +0900 +++ b/ppe/PadFree.cc Fri Dec 10 02:57:29 2010 +0900 @@ -11,9 +11,9 @@ { int pad_id = (int)s->get_param(0); - + s->global_free(pad_id); - + return 0; } diff -r 6bea374ee604 -r 34fde39c0a31 ppe/Property.h --- a/ppe/Property.h Fri Dec 10 02:20:37 2010 +0900 +++ b/ppe/Property.h Fri Dec 10 02:57:29 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 6bea374ee604 -r 34fde39c0a31 ppe/TitleMove.cc --- a/ppe/TitleMove.cc Fri Dec 10 02:20:37 2010 +0900 +++ b/ppe/TitleMove.cc Fri Dec 10 02:57:29 2010 +0900 @@ -10,19 +10,15 @@ static int titlemove(SchedTask *s,void *rbuf, void *wbuf) { - Pad* pad; - ObjPropertyPtr i_obj, o_obj; - - i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0); - o_obj = (ObjPropertyPtr)s->get_output(wbuf, 0); - int pad_id = (int)s->get_param(0); - pad = (Pad*)s->global_get(pad_id); - - if(pad->start.isPush() || pad->start.isHold()) { - printf("success \n"); - } - - s->swap(); - - return 0; + ObjPropertyPtr i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0); + int pad_id = (int)s->get_param(0); + Pad *pad = (Pad*)s->global_get(pad_id); + + if(pad->start.isPush() || pad->start.isHold()) { + printf("success \n"); + } + + s->swap(); + + return 0; } diff -r 6bea374ee604 -r 34fde39c0a31 ppe/TitleMove.cc.orig --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/TitleMove.cc.orig Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,28 @@ +#include +#include "SchedTask.h" +#include "Property.h" +#include "Pad.h" +#include "Func.h" + +/* これは必須 */ +SchedDefineTask1(TitleMove, titlemove); + +static int +titlemove(SchedTask *s,void *rbuf, void *wbuf) +{ + Pad* pad; + ObjPropertyPtr i_obj, o_obj; + + i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0); + o_obj = (ObjPropertyPtr)s->get_output(wbuf, 0); + int pad_id = (int)s->get_param(0); + pad = (Pad*)s->global_get(pad_id); + + if(pad->start.isPush() || pad->start.isHold()) { + printf("success \n"); + } + + s->swap(); + + return 0; +} diff -r 6bea374ee604 -r 34fde39c0a31 ppe/task_init.cc --- a/ppe/task_init.cc Fri Dec 10 02:20:37 2010 +0900 +++ b/ppe/task_init.cc Fri Dec 10 02:57:29 2010 +0900 @@ -61,12 +61,12 @@ SchedExternTask(Asteroid); */ + /** * この関数は ../spe/spe-main と違って * 自分で呼び出せばいい関数なので * 好きな関数名でおk (SchedRegisterTask は必須) */ - void task_init(void) { @@ -76,7 +76,6 @@ SchedRegisterTask(PAD_ALLOCATE, PadAllocate); SchedRegisterTask(PAD_UPDATE, PadUpdate); SchedRegisterTask(PAD_FREE, PadFree); - /* SchedRegisterTask(MOVE_00, Move00); SchedRegisterTask(MOVE_01, Move01); @@ -91,8 +90,7 @@ SchedRegisterTask(MOVE_10, Move10); SchedRegisterTask(MOVE_11, Move11); SchedRegisterTask(MOVE_12, Move12); - SchedRegisterTask(MOVE_13, Move13); - + SchedRegisterTask(MOVE_13, Move13); SchedRegisterTask(MOVE_20, Move20); SchedRegisterTask(MOVE_21, Move21); SchedRegisterTask(MOVE_22, Move22); @@ -109,24 +107,18 @@ SchedRegisterTask(MOVE_33, Move33); SchedRegisterTask(MOVE_34, Move34); SchedRegisterTask(MOVE_35, Move35); - SchedRegisterTask(MOVE_40, Move40); - SchedRegisterTask(MOVE_41, Move41); - + SchedRegisterTask(MOVE_41, Move41); SchedRegisterTask(MOVE_400, Move400); SchedRegisterTask(MOVE_401, Move401); SchedRegisterTask(MOVE_402, Move402); - SchedRegisterTask(MOVE_410, Move410); - SchedRegisterTask(MOVE_411, Move411); - + SchedRegisterTask(MOVE_411, Move411); SchedRegisterTask(MOVE_500, Move500); - SchedRegisterTask(MOVE_501, Move501); - + SchedRegisterTask(MOVE_501, Move501); SchedRegisterTask(MOVE_600, Move600); SchedRegisterTask(MOVE_601, Move601); - SchedRegisterTask(MOVE_602, Move602); - + SchedRegisterTask(MOVE_602, Move602); SchedRegisterTask(ASTEROID, Asteroid); */ } diff -r 6bea374ee604 -r 34fde39c0a31 ppe/task_init.cc.orig --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ppe/task_init.cc.orig Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,132 @@ +#include "Func.h" +#include "Scheduler.h" + +/* 必ずこの位置に書いて */ +SchedExternTask(TitleMove); +SchedExternTask(CrabMove); +SchedExternTask(TitleColl); +SchedExternTask(PadAllocate); +SchedExternTask(PadUpdate); +SchedExternTask(PadFree); + +/* +SchedExternTask(Move00); +SchedExternTask(Move01); +SchedExternTask(Move02); +SchedExternTask(Move03); +SchedExternTask(Move04); +SchedExternTask(Move05); +SchedExternTask(Move06); +SchedExternTask(Move07); +SchedExternTask(Move08); +SchedExternTask(Move09); +SchedExternTask(Move10); +SchedExternTask(Move11); +SchedExternTask(Move12); +SchedExternTask(Move13); + +SchedExternTask(Move20); +SchedExternTask(Move21); +SchedExternTask(Move22); +SchedExternTask(Move23); +SchedExternTask(Move24); +SchedExternTask(Move25); +SchedExternTask(Move06); +SchedExternTask(Move27); +SchedExternTask(Move28); +SchedExternTask(Move29); +SchedExternTask(Move30); +SchedExternTask(Move31); +SchedExternTask(Move32); +SchedExternTask(Move33); +SchedExternTask(Move34); +SchedExternTask(Move35); + +SchedExternTask(Move40); +SchedExternTask(Move41); + +SchedExternTask(Move400); +SchedExternTask(Move401); +SchedExternTask(Move402); + +SchedExternTask(Move410); +SchedExternTask(Move411); + +SchedExternTask(Move500); +SchedExternTask(Move501); + +SchedExternTask(Move600); +SchedExternTask(Move601); +SchedExternTask(Move602); + +SchedExternTask(Asteroid); +*/ +/** + * この関数は ../spe/spe-main と違って + * 自分で呼び出せばいい関数なので + * 好きな関数名でおk (SchedRegisterTask は必須) + */ + +void +task_init(void) +{ + SchedRegisterTask(TITLE_MOVE, TitleMove); + SchedRegisterTask(CRAB_MOVE, CrabMove); + SchedRegisterTask(TITLE_COLL, TitleColl); + SchedRegisterTask(PAD_ALLOCATE, PadAllocate); + SchedRegisterTask(PAD_UPDATE, PadUpdate); + SchedRegisterTask(PAD_FREE, PadFree); + + /* + SchedRegisterTask(MOVE_00, Move00); + SchedRegisterTask(MOVE_01, Move01); + SchedRegisterTask(MOVE_02, Move02); + SchedRegisterTask(MOVE_03, Move03); + SchedRegisterTask(MOVE_04, Move04); + SchedRegisterTask(MOVE_05, Move05); + SchedRegisterTask(MOVE_06, Move06); + SchedRegisterTask(MOVE_07, Move07); + SchedRegisterTask(MOVE_08, Move08); + SchedRegisterTask(MOVE_09, Move09); + SchedRegisterTask(MOVE_10, Move10); + SchedRegisterTask(MOVE_11, Move11); + SchedRegisterTask(MOVE_12, Move12); + SchedRegisterTask(MOVE_13, Move13); + + SchedRegisterTask(MOVE_20, Move20); + SchedRegisterTask(MOVE_21, Move21); + SchedRegisterTask(MOVE_22, Move22); + SchedRegisterTask(MOVE_23, Move23); + SchedRegisterTask(MOVE_24, Move24); + SchedRegisterTask(MOVE_25, Move25); + SchedRegisterTask(MOVE_06, Move06); + SchedRegisterTask(MOVE_27, Move27); + SchedRegisterTask(MOVE_28, Move28); + SchedRegisterTask(MOVE_29, Move29); + SchedRegisterTask(MOVE_30, Move30); + SchedRegisterTask(MOVE_31, Move31); + SchedRegisterTask(MOVE_32, Move32); + SchedRegisterTask(MOVE_33, Move33); + SchedRegisterTask(MOVE_34, Move34); + SchedRegisterTask(MOVE_35, Move35); + + SchedRegisterTask(MOVE_40, Move40); + SchedRegisterTask(MOVE_41, Move41); + + SchedRegisterTask(MOVE_400, Move400); + SchedRegisterTask(MOVE_401, Move401); + SchedRegisterTask(MOVE_402, Move402); + + SchedRegisterTask(MOVE_410, Move410); + SchedRegisterTask(MOVE_411, Move411); + + SchedRegisterTask(MOVE_500, Move500); + SchedRegisterTask(MOVE_501, Move501); + + SchedRegisterTask(MOVE_600, Move600); + SchedRegisterTask(MOVE_601, Move601); + SchedRegisterTask(MOVE_602, Move602); + + SchedRegisterTask(ASTEROID, Asteroid); + */ +} diff -r 6bea374ee604 -r 34fde39c0a31 schedule.cc --- a/schedule.cc Fri Dec 10 02:20:37 2010 +0900 +++ b/schedule.cc Fri Dec 10 02:57:29 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, @@ -295,3 +296,4 @@ //printf("size = %d\n", size); // sgroot->set_move_task(obj, move, (void*)e, size, create_enemy); } +#endif diff -r 6bea374ee604 -r 34fde39c0a31 schedule.o Binary file schedule.o has changed diff -r 6bea374ee604 -r 34fde39c0a31 spe/PadAllocate.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/PadAllocate.cc Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,23 @@ +#include +#include +#include "PadAllocate.h" +#include "Func.h" + +/* これは必須 */ +SchedDefineTask(PadAllocate); + +static int +run(SchedTask *s, void *rbuf, void *wbuf) +{ + + void *idata = s->get_input(rbuf, 0); + int pad_id = (int)s->get_param(0); + int size = (int)s->get_param(1); + + void *buff = s->global_alloc(pad_id, size); + if (idata != NULL) { + memcpy(buff,idata,size); + } + + return 0; +} diff -r 6bea374ee604 -r 34fde39c0a31 spe/PadAllocate.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/PadAllocate.h Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,9 @@ +#ifndef INCLUDED_PAD_ALLOCATE +#define INCLUDED_PAD_ALLOCATE + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + + +#endif diff -r 6bea374ee604 -r 34fde39c0a31 spe/PadFree.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/PadFree.cc Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,19 @@ +#include +#include +#include "PadFree.h" +#include "Func.h" + +/* これは必須 */ +SchedDefineTask(PadFree); + +static int +run(SchedTask *s, void *rbuf, void *wbuf) +{ + + int pad_id = (int)s->get_param(0); + + s->global_free(pad_id); + + return 0; +} + diff -r 6bea374ee604 -r 34fde39c0a31 spe/PadFree.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/PadFree.h Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,9 @@ +#ifndef INCLUDED_PAD_FREE +#define INCLUDED_PAD_FREE + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + + +#endif diff -r 6bea374ee604 -r 34fde39c0a31 spe/PadUpdate.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/PadUpdate.cc Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,21 @@ +#include +#include +#include "PadUpdate.h" +#include "Func.h" + +/* これは必須 */ +SchedDefineTask(PadUpdate); + +static int +run(SchedTask *s, void *rbuf, void *wbuf) +{ + + void *idata = s->get_input(rbuf, 0); + int pad_id = (int)s->get_param(0); + int size = (int)s->get_param(1); + void *global_data = (void*)s->global_get(pad_id); + + memcpy(global_data,idata,size); + + return 0; +} diff -r 6bea374ee604 -r 34fde39c0a31 spe/PadUpdate.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/PadUpdate.h Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,9 @@ +#ifndef INCLUDED_PAD_UPDATE +#define INCLUDED_PAD_UPDATE + +#ifndef INCLUDED_SCHED_TASK +#include "SchedTask.h" +#endif + + +#endif diff -r 6bea374ee604 -r 34fde39c0a31 spe/task_init.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spe/task_init.cc Fri Dec 10 02:57:29 2010 +0900 @@ -0,0 +1,130 @@ +#include "Func.h" +#include "Scheduler.h" + +/* 必ずこの位置に書いて */ +SchedExternTask(TitleMove); +SchedExternTask(CrabMove); + +SchedExternTask(PadAllocate); +SchedExternTask(PadUpdate); +SchedExternTask(PadFree); +/* +SchedExternTask(Move00); +SchedExternTask(Move01); +SchedExternTask(Move02); +SchedExternTask(Move03); +SchedExternTask(Move04); +SchedExternTask(Move05); +SchedExternTask(Move06); +SchedExternTask(Move07); +SchedExternTask(Move08); +SchedExternTask(Move09); +SchedExternTask(Move10); +SchedExternTask(Move11); +SchedExternTask(Move12); +SchedExternTask(Move13); + +SchedExternTask(Move20); +SchedExternTask(Move21); +SchedExternTask(Move22); +SchedExternTask(Move23); +SchedExternTask(Move24); +SchedExternTask(Move25); +SchedExternTask(Move06); +SchedExternTask(Move27); +SchedExternTask(Move28); +SchedExternTask(Move29); +SchedExternTask(Move30); +SchedExternTask(Move31); +SchedExternTask(Move32); +SchedExternTask(Move33); +SchedExternTask(Move34); +SchedExternTask(Move35); + +SchedExternTask(Move40); +SchedExternTask(Move41); + +SchedExternTask(Move400); +SchedExternTask(Move401); +SchedExternTask(Move402); + +SchedExternTask(Move410); +SchedExternTask(Move411); + +SchedExternTask(Move500); +SchedExternTask(Move501); + +SchedExternTask(Move600); +SchedExternTask(Move601); +SchedExternTask(Move602); + +SchedExternTask(Asteroid); +*/ +/** + * この関数は ../spe/spe-main と違って + * 自分で呼び出せばいい関数なので + * 好きな関数名でおk (SchedRegisterTask は必須) + */ + +void +task_init(void) +{ + SchedRegisterTask(TITLE_MOVE, TitleMove); + SchedRegisterTask(CRAB_MOVE, CrabMove); + + SchedRegisterTask(PAD_ALLOCATE, PadAllocate); + SchedRegisterTask(PAD_UPDATE, PadUpdate); + SchedRegisterTask(PAD_FREE, PadFree); + /* + SchedRegisterTask(MOVE_00, Move00); + SchedRegisterTask(MOVE_01, Move01); + SchedRegisterTask(MOVE_02, Move02); + SchedRegisterTask(MOVE_03, Move03); + SchedRegisterTask(MOVE_04, Move04); + SchedRegisterTask(MOVE_05, Move05); + SchedRegisterTask(MOVE_06, Move06); + SchedRegisterTask(MOVE_07, Move07); + SchedRegisterTask(MOVE_08, Move08); + SchedRegisterTask(MOVE_09, Move09); + SchedRegisterTask(MOVE_10, Move10); + SchedRegisterTask(MOVE_11, Move11); + SchedRegisterTask(MOVE_12, Move12); + SchedRegisterTask(MOVE_13, Move13); + + SchedRegisterTask(MOVE_20, Move20); + SchedRegisterTask(MOVE_21, Move21); + SchedRegisterTask(MOVE_22, Move22); + SchedRegisterTask(MOVE_23, Move23); + SchedRegisterTask(MOVE_24, Move24); + SchedRegisterTask(MOVE_25, Move25); + SchedRegisterTask(MOVE_06, Move06); + SchedRegisterTask(MOVE_27, Move27); + SchedRegisterTask(MOVE_28, Move28); + SchedRegisterTask(MOVE_29, Move29); + SchedRegisterTask(MOVE_30, Move30); + SchedRegisterTask(MOVE_31, Move31); + SchedRegisterTask(MOVE_32, Move32); + SchedRegisterTask(MOVE_33, Move33); + SchedRegisterTask(MOVE_34, Move34); + SchedRegisterTask(MOVE_35, Move35); + + SchedRegisterTask(MOVE_40, Move40); + SchedRegisterTask(MOVE_41, Move41); + + SchedRegisterTask(MOVE_400, Move400); + SchedRegisterTask(MOVE_401, Move401); + SchedRegisterTask(MOVE_402, Move402); + + SchedRegisterTask(MOVE_410, Move410); + SchedRegisterTask(MOVE_411, Move411); + + SchedRegisterTask(MOVE_500, Move500); + SchedRegisterTask(MOVE_501, Move501); + + SchedRegisterTask(MOVE_600, Move600); + SchedRegisterTask(MOVE_601, Move601); + SchedRegisterTask(MOVE_602, Move602); + + SchedRegisterTask(ASTEROID, Asteroid); + */ +} diff -r 6bea374ee604 -r 34fde39c0a31 stage_init.cc --- a/stage_init.cc Fri Dec 10 02:20:37 2010 +0900 +++ b/stage_init.cc Fri Dec 10 02:57:29 2010 +0900 @@ -33,9 +33,9 @@ } HTaskPtr -pad_free(Viewer *sgroot) +pad_free(SceneGraphRoot *sgroot) { - HTaskPtr task = sgroot->manager->create_task(PAD_FREE); + HTaskPtr task = sgroot->tmanager->create_task(PAD_FREE); task->set_param(0, PAD_INPUT); task->set_cpu(SPE_ANY); @@ -67,10 +67,11 @@ SceneGraphPtr root = sgroot->createSceneGraph(); SceneGraphPtr title = (SceneGraphPtr)charactor[0].root; + title->set_move_collision(title_move); 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; @@ -79,7 +80,6 @@ title->set_move_collision(title_move); pad_alloc(sgroot); - root->addChild(title); sgroot->setSceneData(root); } diff -r 6bea374ee604 -r 34fde39c0a31 stage_init.o Binary file stage_init.o has changed