changeset 7:c015109a6041

schedule add. 10% done.
author tkaito
date Tue, 29 Jun 2010 04:25:32 +0900
parents 661ec1e92042
children 7c60ef3fca5b
files blender/e_redbullet.blend dandy.h image/mob/enemy_bluebullet.png image/mob/enemy_laser.png image/mob/enemy_lasersplosh.001.png image/mob/enemy_lasersplosh.002.png image/mob/enemy_lasersplosh.003.png image/mob/enemy_lasersplosh.png image/mob/enemy_lightning.png image/mob/enemy_redbullet.png main.cc schedule.cc spe/Move00.cc spe/Move00.h spe/Move01.cc spe/Move01.h spe/Move02.cc spe/Move02.h spe/Move03.cc spe/Move03.h spe/Move04.cc spe/Move04.h spe/Move05.cc spe/Move05.h spe/Move06.cc spe/Move06.h spe/Move07.cc spe/Move07.h spe/Move08.cc spe/Move08.h spe/TitleColl.cc spe/TitleColl.h spe/TitleMove.cc spe/TitleMove.h stage_init.cc xml/e_redbullet.h xml/e_redbullet.xml xml/plane.h xml/plane.xml
diffstat 39 files changed, 1209 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
Binary file blender/e_redbullet.blend has changed
--- a/dandy.h	Sun Jun 27 22:58:57 2010 +0900
+++ b/dandy.h	Tue Jun 29 04:25:32 2010 +0900
@@ -25,9 +25,12 @@
   int score; //4
   void *parent; 
   void *root;
+  int flag;
   
 } *ObjPropertyPtr, ObjProperty;
 
+extern ObjPropertyPtr charactor;
+
 static const int ENEMY_NUM = 1;
 
 static const float player_speed = 10.0f;
@@ -46,8 +49,9 @@
 extern void title_coll(SceneGraphPtr node, void *sgroot_, int w, int h, SceneGraphPtr tree);
 extern void dandy_move(SceneGraphPtr node, void *sgroot_, int w, int h);
 extern void dandy_coll(SceneGraphPtr node, void *sgroot_, int w, int h,SceneGraphPtr tree);
-extern void create_title(void *sgroot, int w, int h, ObjPropertyPtr charactor);
-extern void create_stage(void *sgroot, int w, int h, ObjPropertyPtr charactor);
+extern void create_back(void *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);
 
 typedef struct enemy_state {
   const char *charano;
@@ -56,9 +60,10 @@
   
 } state;
 
+
 //const state enemystate[50];
 
-#define ENEMY_STATUS_TABLE {\						
+#define ENEMY_STATUS_TABLE {\
     ENEMY_STATUS("title001"   , 0  , 0),				\
     ENEMY_STATUS("greencrab", 330, 98),				\
     ENEMY_STATUS("plane", 470, 37),					\
Binary file image/mob/enemy_bluebullet.png has changed
Binary file image/mob/enemy_laser.png has changed
Binary file image/mob/enemy_lasersplosh.001.png has changed
Binary file image/mob/enemy_lasersplosh.002.png has changed
Binary file image/mob/enemy_lasersplosh.003.png has changed
Binary file image/mob/enemy_lasersplosh.png has changed
Binary file image/mob/enemy_lightning.png has changed
Binary file image/mob/enemy_redbullet.png has changed
--- a/main.cc	Sun Jun 27 22:58:57 2010 +0900
+++ b/main.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -26,7 +26,7 @@
 const state status[50] = ENEMY_STATUS_TABLE;
 
 void
-init_charactor(Viewer *sgroot, ObjPropertyPtr charactor)
+init_charactor(Viewer *sgroot)
 {
   sgroot->createFromXMLfile("xml/mydandy.xml");
   sgroot->createFromXMLfile("xml/gameover.xml");
@@ -36,24 +36,25 @@
   sgroot->createFromXMLfile("xml/title2.xml");  
 
   for (int i = 0; i < ENEMY_NUM; i++) {
-    charactor[0].root  = (void*)sgroot->createSceneGraph(status[1].charano);
-    charactor[0].score = status[1].score;
-    charactor[0].vital = status[1].vital;
+    charactor[0].root  = (void*)sgroot->createSceneGraph(status[0].charano);
+    charactor[0].score = status[0].score;
+    charactor[0].vital = status[0].vital;
    }
 
 }
 
+ObjPropertyPtr charactor;
+
 MainLoopPtr
 dandy::init(Viewer *sgroot, int w, int h)
 {
-  ObjPropertyPtr charactor = (ObjPropertyPtr)sgroot->manager->allocate(sizeof(ObjPropertyPtr)*16);
-  init_charactor(sgroot, charactor);
-  create_title(sgroot, w, h, charactor);
+  charactor = (ObjPropertyPtr)sgroot->manager->allocate(sizeof(ObjPropertyPtr)*16);
+  init_charactor(sgroot);
+  create_back(sgroot, w, h);
 
   return sgroot;
 }
 
-
 extern Application *
 application() {
     return new dandy();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schedule.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,287 @@
+#include "dandy.h"
+
+static const int FRAME_RATE = 32;
+
+void Putenemy(int charano, int x, int y, int sx, int sy, int move, int coll, 
+	      SceneGraphPtr node, void *sgroot_);
+
+void
+schedule(SceneGraphPtr node, void *sgroot_, int w, int h) 
+{
+  switch (node->frame) {
+  case 1:
+    break;    
+  case FRAME_RATE * 2:
+    Putenemy(1, w/2, 0, 2, 4, MOVE_00, MOVE_00, node, sgroot_);
+    break;
+  case FRAME_RATE * 3:
+    Putenemy(1, w/3, 0, 0, 8, MOVE_00, MOVE_00, node, sgroot_);
+    Putenemy(1, w/2, 0, 0, 8, MOVE_00, MOVE_00, node, sgroot_);
+    break;
+    /*
+  case FRAME_RATE * 4:
+    Putenemy(1, 120, -128, 0, 4, chara_state0);
+    break;
+  case FRAME_RATE * 5:
+    Putenemy(1, 224, -128, 1, 1, chara_state0);
+    Putenemy(1, 184, -128, 1, 1, chara_state0);
+    break;
+  case FRAME_RATE * 6:
+    Putenemy(1, 120, -128, 1, 2, chara_state0);
+    break;
+  case FRAME_RATE * 7:
+    Putenemy(1, 56, -128, 0, 1, chara_state0);
+    Putenemy(1, 184, -128, 0, 1, chara_state0);
+    break;
+  case FRAME_RATE * 8:
+    Putenemy(2, 120, -128, 0, 1, chara_state0);
+    break;
+    
+  case FRAME_RATE * 12:
+    Putenemy(1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 13:
+    Putenemy(1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 14:
+    Putenemy(1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 15:
+    Putenemy(2, 1280 - 128 - 120, -128, -1, 1, chara_state4);
+    break;
+  case FRAME_RATE * 16:
+    Putenemy(2, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 17:
+    Putenemy(2, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 18:
+    Putenemy(1, 1280 - 128 - 120, -32, 0, 1, chara_state4);
+    Putenemy(1, 1280 - 128, -128, -2, 1, chara_state4);
+    Putenemy(1, 800, -88, -1, 1, chara_state4);
+    break;
+    
+  case FRAME_RATE * 24:
+    Putenemy(1, 256, -128, 0, 1, chara_state4);
+    Putenemy(1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 25:
+    Putenemy(2, 512, -128, 0, 1, chara_state4);
+    Putenemy(2, 1280 - 128, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 26:
+    Putenemy(1, 384, -128, 0, 1, chara_state4);
+    Putenemy(1, 1280 - 256, -128, 0, 2, chara_state4);
+    Putenemy(1, 512, -128, 0, 3, chara_state4);
+    Putenemy(1, 1280 - 256, -128, 0, 2, chara_state4);
+    break;
+  case FRAME_RATE * 27:
+    Putenemy(2, 512, -128, 0, 3, chara_state2);
+    Putenemy(2, 256 - 128, -128, 0, 2, chara_state2);
+    Putenemy(2, 768, -128, 0, 4, chara_state2);
+    Putenemy(2, 128, -128, 0, 3, chara_state2);
+    break;
+  case FRAME_RATE * 28:
+    Putenemy(1, 256, -128, 0, 1, chara_state4);
+    Putenemy(1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 29:
+    Putenemy(2, 256, -128, 0, 1, chara_state4);
+    Putenemy(2, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+    break;
+  case FRAME_RATE * 30:
+    Putenemy(1, 256, -128, 0, 1, chara_state4);
+    Putenemy(1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+    break;
+    
+  case FRAME_RATE * 33:
+    Putenemy(1, 256, 1088, 0, -1, chara_state5);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);//5/22/pm5:300
+    break;
+  case FRAME_RATE * 34:
+    Putenemy(2, 256, 1088, 0, -1, chara_state5);
+    Putenemy(2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+    break;
+  case FRAME_RATE * 35:
+    Putenemy(1, 256, 1088, 0, -1, chara_state5);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+    break;
+  case FRAME_RATE * 36:
+    Putenemy(2, 256, 1088, 0, -1, chara_state5);
+    Putenemy(2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+    break;
+  case FRAME_RATE * 37:
+    Putenemy(1, 256, 1088, 0, -1, chara_state5);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+    break;
+  case FRAME_RATE * 38:
+    Putenemy(2, 256, 1088, 0, -1, chara_state5);
+    Putenemy(2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+    break;
+  case FRAME_RATE * 39:
+    Putenemy(1, 256, 1088, 0, -1, chara_state5);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+    break;
+    
+  case FRAME_RATE * 50:
+    Putenemy(40, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state3);
+    break;
+  case FRAME_RATE * 46:
+    Putenemy(40, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state3);
+    break;
+  case FRAME_RATE * 54:
+    Putenemy(40, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state3);
+    break;
+    
+  case FRAME_RATE * 60:
+    Putenemy(1, 256, 1088, 0, -1, chara_state6);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+    break;
+  case FRAME_RATE * 61:
+    Putenemy(1, 256, 1088, 0, -1, chara_state6);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+    break;
+  case FRAME_RATE * 62:
+    Putenemy(1, 256, 1088, 0, -1, chara_state6);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+    break;
+  case FRAME_RATE * 63:
+    Putenemy(1, 256, 1088, 0, -1, chara_state6);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+    break;
+  case FRAME_RATE * 64:
+    Putenemy(1, 256, 1088, 0, -1, chara_state6);
+    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+    break;
+  case FRAME_RATE * 65:
+    Putenemy(40, 256, 1088, 0, -1, chara_state6);
+    Putenemy(40, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+    break;
+    
+  case FRAME_RATE * 80:
+    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 66:
+    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 84:
+    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 70:
+    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 88:
+    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 74:
+    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 92:
+    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 78:
+    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+    break;
+    
+  case FRAME_RATE * 100:
+    Putenemy(41, 256, -128, 0, 1, chara_state7);
+    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 81:
+    Putenemy(42, 256, -128, 0, 1, chara_state7);
+    Putenemy(42, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 104:
+    Putenemy(41, 256, -128, 0, 1, chara_state7);
+    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 83:
+    Putenemy(42, 256, -128, 0, 1, chara_state7);
+    Putenemy(42, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 108:
+    Putenemy(41, 256, -128, 0, 1, chara_state7);
+    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 85:
+    Putenemy(42, 256, -128, 0, 1, chara_state7);
+    Putenemy(42, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+    break;
+  case FRAME_RATE * 112:
+    Putenemy(41, 256, -128, 0, 1, chara_state7);
+    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+    break;
+    
+  case FRAME_RATE * 130:
+    SoundStop();
+    SoundPlay(4);
+    for(p = active_chara_list;p!=NULL;p=p->next)
+      {
+	p->f = FALSE;
+	p->state = delete_chara;
+	p->collision = noaction;
+      }
+    Putenemy(4, 520, -128, 0, 1, chara_state8);	// 1面ボスをPutenemy
+  }
+    */
+  }
+}
+
+ObjProperty enemy[300];
+ObjPropertyPtr e;
+
+void
+create_enemy(SchedTask *s, void *enemy_, void *b)
+{
+  ObjPropertyPtr e = (ObjPropertyPtr)enemy_; 
+  SceneGraphPtr back1, enemy1;
+  back1 = (SceneGraphPtr)e->parent;
+  enemy1 = (SceneGraphPtr)e->root;
+  
+  enemy1->xyz[0] = e->x;
+  enemy1->xyz[1] = e->y;
+
+  back1->addChild(enemy1);
+
+}
+
+void
+Putenemy(int charano, int x, int y, int sx, int sy, int move, int coll, 
+	      SceneGraphPtr node, void *sgroot_)
+{
+  SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
+  SceneGraphPtr obj = (SceneGraphPtr)charactor[charano].root;
+
+  int ii = 0;
+  e = &enemy[0];
+  while ((e->flag) == 1) {
+    ii++;
+    if (ii == 100)
+      return;
+    e++;
+  }
+  e->x = x;
+  e->y = y;
+  e->vx = sx;
+  e->vy = sy;
+  e->root = obj;
+  e->parent = node;
+  e->flag = 1;
+  e->vital = charactor[charano].vital;
+  //e->move = move;
+  e->score = charactor[charano].score;
+  //e->dt1 = e->dt2 = 0;
+  //e->tama = tf;
+
+  obj->xyz[0] = x;
+  obj->xyz[1] = y;
+  obj->stack_xyz[0] = sx;
+  obj->stack_xyz[1] = sy;
+
+  int size = sizeof(ObjPropertyPtr);
+  //obj->set_move_collision(move, coll);
+  sgroot->set_game_task(move, e, size, create_enemy);
+
+  node->addChild(obj);
+  
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move00.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move00.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move00);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  ObjPropertyPtr o_obj = (ObjPropertyPtr)s->get_output(wbuf, 0);
+
+  o_obj = i_obj;
+  
+  o_obj->x = i_obj->x + i_obj->vx;
+  o_obj->y = i_obj->y + i_obj->vy;
+
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move00.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,29 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+typedef struct {
+  double x, y;
+  double vx, vy;
+  const char *chara;
+  int vital;
+  int score;
+  int remove;
+  void *parent;
+  void *root;
+  
+} *ObjPropertyPtr, ObjProperty;
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move01.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move01.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move01);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move01.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move02.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move02.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move02);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move02.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move03.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move03.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move03);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move03.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move04.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move04.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move04);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move04.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move05.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move05.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move05);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move05.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move06.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move06.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move06);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move06.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move07.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move07.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move07);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move07.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move08.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "Move08.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(Move08);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    int *i_data;
+    int *o_data;
+    long length;
+
+    i_data = (int*)s->get_input(rbuf, 0);
+    o_data = (int*)s->get_output(wbuf, 0);
+    length = (long)s->get_param(0);
+    
+    for (int i = 0; i < length; i++) {
+	o_data[i] = i_data[i] * 2;
+    }
+  */
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/Move08.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,16 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/TitleColl.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "TitleColl.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask(TitleColl);
+
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+  /*
+    SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
+    Pad *pad = sgroot->getController();
+  
+    if(pad->start.isPush()) {
+      create_stage(sgroot, w, h);
+    }
+  */
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/TitleColl.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,29 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+typedef struct {
+  double x, y;
+  double vx, vy;
+  const char *chara;
+  int vital;
+  int score;
+  int remove;
+  void *parent;
+  void *root;
+  
+} *ObjPropertyPtr, ObjProperty;
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/TitleMove.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,24 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "TitleMove.h"
+#include "Func.h"
+
+/* これは必須 */
+SchedDefineTask1(TitleMove, titlemove);
+
+static int
+titlemove(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr i_obj;
+  ObjPropertyPtr o_obj;
+
+  i_obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  o_obj = (ObjPropertyPtr)s->get_output(wbuf, 0);
+  
+  o_obj[0] = i_obj[0];
+
+  //printf("x = %f\n", i_obj[0].x);
+  //printf("y = %f\n", i_obj[0].y);
+
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/spe/TitleMove.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,30 @@
+#ifndef INCLUDED_TASK_HELLO
+#define INCLUDED_TASK_HELLO
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+/*
+class Twice : public SchedTask {
+public:
+    SchedConstructor(Twice);
+    
+    int run(void *r, void *w);
+};
+ */
+
+typedef struct {
+  double x, y;
+  double vx, vy;
+  int frame;
+  const char *chara;
+  int vital;
+  int score;
+  int remove;
+  void *parent;
+  void *root;
+  
+} *ObjPropertyPtr, ObjProperty;
+
+
+#endif
--- a/stage_init.cc	Sun Jun 27 22:58:57 2010 +0900
+++ b/stage_init.cc	Tue Jun 29 04:25:32 2010 +0900
@@ -1,53 +1,54 @@
 #include "dandy.h"
 
-void stage_move(SceneGraphPtr node, void *sgroot_, int w, int h);
-void stage_coll(SceneGraphPtr node, void *sgroot_, int w, int h,SceneGraphPtr tree);
+void
+back_move(SceneGraphPtr node, void *sgroot_, int w, int h)
+{
+  schedule(node, sgroot_, w, h);
+  node->frame += 1;
+}
 
 void
-createSceneGraphFromProperty(SchedTask *s, void *charactor_, void *b)
+back_coll(SceneGraphPtr node, void *sgroot_, int w, int h, SceneGraphPtr tree)
+{
+}
+
+void
+create_title(SchedTask *s, void *charactor_, void *b)
 {
   ObjPropertyPtr charactor = (ObjPropertyPtr)charactor_; 
   SceneGraphPtr back1, title;
   back1 = (SceneGraphPtr)charactor[0].parent;
   title = (SceneGraphPtr)charactor[0].root;
   
-
   title->xyz[0] = charactor[0].x;
   title->xyz[1] = charactor[0].y;
-  title->stack_xyz[0] = charactor[0].vx;
-  title->stack_xyz[1] = charactor[0].vy;
 
   back1->addChild(title);
 
 }
 
 void
-create_title(void *sgroot_, int w, int h, ObjPropertyPtr charactor) 
+create_back(void *sgroot_, int w, int h) 
 {
   Viewer *sgroot = (Viewer *)sgroot_;
-  SceneGraphPtr back1, title;
+  SceneGraphPtr back;
 
-  back1 = sgroot->createSceneGraph();
-  sgroot->setSceneData(back1);
-
-  /* createPropertyFromSceneGraph */
-  title = sgroot->createSceneGraph("title001");
+  back = sgroot->createSceneGraph();
+  back->set_move_collision(back_move, back_coll);
+  sgroot->setSceneData(back);
 
   charactor[0].x  = w/2;
   charactor[0].y  = h/2;
-  charactor[0].vx = back1->stack_xyz[0];
-  charactor[0].vy = back1->stack_xyz[1];
-  //charactor[0].frame = back1->frame;
-  charactor[0].parent = (void*)back1;
-  charactor[0].root   = (void*)title;
+  charactor[0].parent = (void*)back;
   
   int size = sizeof(ObjPropertyPtr)*16;
 
   /* set_game_task(int id, ObjProperty property, int size, PostFunction post_func) */
-  /* DataSegment の List を渡すようにする*/
-  sgroot->set_game_task(TITLE_MOVE, charactor, size, createSceneGraphFromProperty);
+  sgroot->set_game_task(TITLE_MOVE, charactor, size, create_title);
+
 }
 
+
 void
 create_stage(void *sgroot_, int w, int h, ObjPropertyPtr charactor) 
 {
@@ -56,8 +57,8 @@
   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->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;
@@ -67,18 +68,3 @@
   sgroot->setSceneData(stage);
 }
 
-void
-stage_move(SceneGraphPtr node, void *sgroot_, int w, int h)
-{
-
-  //stage_plan(node, sgroot_, w, h);
-  node->frame += 1;
-
-}
-
-void
-stage_coll(SceneGraphPtr node, void *sgroot_, int w, int h,SceneGraphPtr tree) 
-{
-}
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/e_redbullet.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,1 @@
+#define e_redbullet scene_graph
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/e_redbullet.xml	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="e_redbullet" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			30.113185 30.098001 0.000000
+			-30.052460 30.098014 0.000000
+			-30.052480 -30.067646 0.000000
+			-30.052480 -30.067646 0.000000
+			30.113185 -30.067650 0.000000
+			30.113185 30.098001 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			0.030357 0.015178 0.000000
+		</model>
+		<texture>
+			0.995806 1.003316
+			-0.004194 1.003316
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			0.995806 1.003316
+		</texture>
+		<image name="enemy_redbullet.png">
+			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
+		</image>
+	</surface>
+</OBJECT-3D>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/plane.h	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,1 @@
+#define plane scene_graph
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/plane.xml	Tue Jun 29 04:25:32 2010 +0900
@@ -0,0 +1,302 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="plane" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			30.113185 30.098001 0.000000
+			-30.052460 30.098014 0.000000
+			-30.052480 -30.067646 0.000000
+			-30.052480 -30.067646 0.000000
+			30.113185 -30.067650 0.000000
+			30.113185 30.098001 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			0.030357 0.015178 0.000000
+		</model>
+		<texture>
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+		</texture>
+		<image name="enemy_plane.png">
+			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
+			YII=
+		</image>
+	</surface>
+</OBJECT-3D>
\ No newline at end of file