changeset 27:34fde39c0a31

commit test.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Fri, 10 Dec 2010 02:57:29 +0900
parents 6bea374ee604 (current diff) aa37f220b7a8 (diff)
children 0263721e7df8
files Func.h charactor_id.h dandy.h game_task.h global_id.h main.cc ppe/PadFree.cc ppe/TitleMove.cc ppe/TitleMove.cc.orig ppe/task_init.cc ppe/task_init.cc.orig schedule.cc schedule.o stage_init.cc stage_init.o
diffstat 20 files changed, 532 insertions(+), 203 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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,
--- 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");
-}
--- 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;
 }
 
--- 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
--- 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;
 }
--- /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 <stdio.h>
+#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;
+}
--- 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);
   */
 }
--- /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);
+  */
+}
--- 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
Binary file schedule.o has changed
--- /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 <stdio.h>
+#include <string.h>
+#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;
+}
--- /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
--- /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 <stdio.h>
+#include <string.h>
+#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;
+}
+
--- /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
--- /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 <stdio.h>
+#include <string.h>
+#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;
+}
--- /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
--- /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);
+  */
+}
--- 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);
 }
Binary file stage_init.o has changed