changeset 15:813485a28b6f

ppe/Move is integrated into EnemyMove.
author tkaito
date Sun, 08 Aug 2010 18:05:46 +0900
parents e95c5c280f47
children bd714b077534
files ppe/EnemyMove.cc ppe/EnemyMove.h stage_init.cc
diffstat 3 files changed, 1437 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ppe/EnemyMove.cc	Sun Aug 08 18:05:46 2010 +0900
@@ -0,0 +1,1352 @@
+#include <stdio.h>
+#include "SchedTask.h"
+#include "EnemyMove.h"
+#include "Func.h"
+
+static int
+move00(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+
+  s->swap();
+  return 0;
+}
+
+static int
+move01(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x -= obj[0].vx;
+  obj[0].y -= obj[0].vy;
+
+  s->swap();
+  return 0;
+}
+
+static int
+move02(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].vy -= 0.25;
+  obj[0].y  += obj[0].vy;
+
+  s->swap();
+  return 0;
+}
+
+static int
+move03(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  /*
+  if((obj[0].dt1 == 60) ||
+     (obj[0].dt1 == 90) ||
+     (obj[0].dt1 == 30))
+    {
+      Puttama(0, obj[0].x, obj[0].y);
+    }
+  obj.dt++;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move04(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  /*
+  if(obj[0].y < jiki.y && obj[0].y + 16 > jiki.y)
+    {
+      obj[0].vy = -2;
+      obj[0].vy = ((jiki.x > obj[0].x) ? 4 : -4);
+      move07(s, rbuf, wbuf);
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move05(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  /*
+  if(obj[0].y + 96 < jiki.y
+     && obj[0].y + 128 > jiki.y)
+    {
+      obj[0].vy = -2;
+      obj[0].vx = ((jiki.x > obj[0].x) ? 4 : -4);
+      move00(s, rbuf, wbuf);
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move06(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  /*  
+  if(obj[0].y + 96 < jiki.y
+     && obj[0].y + 128 > jiki.y)
+    {
+      obj[0].vy = 2;
+      obj[0].vx = ((jiki.x > obj[0].x) ? 4 : -4);
+      move00(s, rbuf, wbuf);
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move07(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  /*
+  if((obj[0].dt == 60) || (obj[0].dt == 90)
+     || (obj[0].dt1 == 30))
+    {
+      Puttama(1, obj[0].x, obj[0].y);
+    }
+  obj[0].dt++;
+  */
+  s->swap();
+
+  return 0;
+}
+
+static int
+move08(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if(obj[0].y < 520)
+    {
+      tekino0 = obj[0];
+      obj[0].y += obj.vy;
+      count++;
+      DefSpriteEx(obj.charano, 16*4, 32*4);
+      PutSpriteEx(obj.charano, (obj[0].x * 4), (obj[0].y * 4), 0.2, 0.2, 1);
+      obj[0].dt1 = 512;
+      obj[0].s = 0.125;
+
+      s->swap();
+      return 0;
+    }
+  move09(s, rbuf, wbuf);
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move09(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if(obj[0].s <= 2)
+    {
+      obj[0].s += 0.05;
+      obj[0].y -= 12;
+      count++;
+      DefSpriteEx(54, 16*4, 32*4);
+      PutSpriteEx(54, (obj[0].x * 4), (obj[0].y * 4), obj[0].s, obj[0].s, 1);
+
+      s->swap();
+      return 0;
+    }
+  count++;
+  DefSpriteEx(54, 16, 32);
+  PutSpriteEx(54, obj[0].x, obj[0].y, obj[0].s, obj[0].s, 1);
+  rinkx = obj[0].x;
+  rinky = obj[0].y;
+  Putenemy(5, rinkx - 16, rinky - 16, 1, 0, Move10);
+  Putenemy(5, rinkx - 16, rinky - 16, -1, 0, Move10);
+  move11(s, rbuf, wbuf);
+  obj[0].dt1 = 8192;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move10(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if(obj[0].dt1 < 48)
+    {
+      obj[0].x += obj[0].vx;
+      obj[0].y += obj[0].vy;
+      obj[0].dt1++;
+      
+      s->swap();
+      return 0;
+    }
+  rinkf1 = 1;
+  obj[0].dt1 = rinkx;
+  obj[0].dt2 = rinky;
+  move13(s, rbuf, wbuf);
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move11(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if(rinkf1 == 0)
+    {
+      count++;
+      DefSpriteEx(54, 16, 32);
+      PutSpriteEx(54, obj[0].x, obj[0].y, obj[0].s, obj[0].s, 1);
+
+      s->swap();
+      return 0;
+    }
+  obj[0].dt1 = 0;
+  obj[0].dt2 = 0;
+  move12(s, rbuf, wbuf);
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move12(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if(fastebos > 60*60)
+    {
+      if(obj[0].y > 240+32)
+        {
+          obj[0].state = delete_chara;
+        }
+      obj[0].y += 3;
+      rinky += 3;
+      count++;
+      DefSpriteEx(54, 16, 32);
+      PutSpriteEx(54, obj.x, obj.y, 2, 2, 1);
+
+      s->swap();
+      return p;
+    }
+  if(obj[0].dt1 <= 60)
+    {
+      if(jiki.x + 15 - rinkx < -5)
+        {
+          obj[0].vx = -0.8;
+        }
+      else if(jiki.x + 15 - rinkx > 5)
+        {
+          obj[0].vx = +0.8;
+        }
+      else obj[0].vx = 0;
+      rinkx = obj[0].x;
+      rinky = obj[0].y;
+    }
+  if((obj[0].dt1 > 60) && (obj[0].dt1 <= 70))
+    {
+      if(obj[0].dt1 % 2 == 1)
+        {
+          Puttama(0, rinkx - 16, rinky);
+          Puttama(0, rinkx, rinky);
+          Puttama(0, rinkx + 16, rinky);
+        }
+    }
+  if((obj[0].dt1 > 180) && (obj[0].dt1 <= 240))
+    {
+      if(obj[0].dt1 % 2 == 1)
+        {
+          rinkf2 = 1;
+          Puttama(2, rinkx - 16, obj[0].y - 32);
+          Puttama(3, rinkx + 32 - 16, obj[0].y - 32);
+        }
+      else
+        {
+          rinkf2 = 2;
+        }
+    }
+  if(obj[0].dt1 > 240)
+    {
+      rinkf2 = 2;
+    }
+  if((obj[0].dt1 > 240) && (obj[0].dt1 <= 400))
+    {
+      count++;
+      PutSprite(count, rinkx - 16, rinky + 32,
+                58 + obj[0].dt1 % 4);
+    }
+  if((obj[0].dt1 > 300) && (obj[0].dt1 <= 400))
+    {
+      rinkf2 = 3;
+      if(jiki.x + 15 - rinkx < -5)
+        {
+          obj[0].vx = -1;
+        }
+      else if(jiki.x + 15 - rinkx > 5)
+        {
+          obj[0].vx = +1;
+        }
+      else obj[0].vx = 0;
+      obj[0].x += obj[0].vx;
+      rinkx = obj[0].x;
+      rinky = obj[0].y;
+      Puttama(4, rinkx - 8, rinky + 16);
+    }
+  if((obj[0].dt1 > 400) && (obj[0].dt1 <= 500))
+    {
+      rinkf2 = 4;
+      if(jiki.x + 15 - rinkx > 5)
+        {
+          obj[0].vx = -1;
+        }
+      else if(jiki.x + 15 - rinkx > 5)
+        {
+          obj[0].vx = +1;
+        }
+      else obj[0].vx = 0;
+      obj[0].x += obj[0].vx;
+      rinkx = obj[0].x;
+      rinky = obj[0].y;
+    }
+  if(obj[0].dt1 > 500)
+    {
+      rinkf2 = 5;
+      if(jiki.x + 15 - rinkx < -5)
+        {
+          obj[0].vx = -1;
+        }
+      else if(jiki.x + 15 - rinkx > 5)
+        {
+          obj[0].vx = +1;
+        }
+      else obj[0].vx = 0;
+      obj[0].x += obj[0].vx;
+      rinkx = obj[0].x;
+      rinky = obj[0].y;
+    }
+  if(obj[0].dt1 > 600)
+    {
+      rinkf2 = 0;
+      obj[0].dt1 = 0;
+    }
+  fastebos++;
+  obj[0].dt1++;
+  count++;
+  DefSpriteEx(54, 16, 32);
+  PutSpriteEx(54, obj[0].x, obj[0].y, 2, 2, 1);
+*/
+  s->swap();
+  return 0;
+}
+
+static int
+move13(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if(tekino0.f == FALSE){
+    Bom(obj[0].x, obj[0].y);
+    obj[0].f = FALSE;
+    obj[0].state = delete_chara;
+    obj[0].collision = noaction;
+
+    s->swap();
+    return 0;
+  }
+
+  obj[0].x += rinkx - obj[0].dt1;
+  obj[0].y += rinky - obj[0].dt2;
+  obj[0].dt1 = rinkx;
+  obj[0].dt2 = rinky;
+  if(rinkf2 == 1)
+    {
+      if(obj[0].x > rinkx)
+        {
+          Puttama(2, obj[0].x + 32, obj[0].y);
+        }
+      if(obj[0].x < rinkx)
+        {
+          Puttama(3, obj[0].x, obj[0].y);
+        }
+    }
+  if(rinkf2 == 4)
+    {
+      count++;
+      PutSprite(count, obj[0].x, obj[0].y + 56, 58+filpcount % 4);
+    }
+  if(rinkf2 == 5)
+    {
+      if(obj[0].x > rinkx)
+        {
+          Puttama(5, obj[0].x + 8, obj[0].y + 24);
+        }
+      if(obj[0].x < rinkx)
+        {
+          Puttama(5, obj[0].x + 8, obj[0].y + 24);
+        }
+    }
+*/
+  s->swap();
+  return 0;
+}
+
+static int
+move20(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  obj[0].vy -= 0.5;
+  obj[0].vy += 0.4;
+
+  s->swap();
+  return 0;
+}
+
+static int
+move21(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  obj[0].vy += 0.5;
+  obj[0].vy += 0.4;
+
+  s->swap();
+  return 0;
+}
+
+static int
+move22(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  sf = rand() % 4;
+  if((sf == 0) || (sf == 1))
+    {
+      obj[0].x = -35;
+      obj[0].y = rand() % (120 - 35);
+      obj[0].vx = (rand() % 4 + 1);
+      obj[0].vy = rand() % 3 + 1;
+      move23(s, rbuf, wbuf);
+
+      s->swap();
+      return 0;
+    }
+  if((sf == 2))
+    {
+      obj[0].x = rand() % 290;
+      obj[0].y = -30;
+      obj[0].vx = rand() % 3 - 1;
+      obj[0].vy = (rand() % 4 + 1);
+      move23(s, rbuf, wbuf);
+
+      s->swap();
+      return 0;
+    }
+  if(sf == 3)
+    {
+      obj[0].x = 320;
+      obj[0].y = rand() % (120 - 35);
+      obj[0].vx = (rand() % 4 + 1) * -1;
+      obj[0].vy = rand() % 3 -1;
+      move23(s, rbuf, wbuf);
+
+      s->swap();
+      return 0;
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move23(SchedTask *s,void *rbuf, void *wbuf)
+{
+  //ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  //asteroid(s, rbuf, wbuf);
+
+  s->swap();
+  return 0;
+}
+
+static int
+move24(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  kyeenemyno = obj[0];
+  tekino0 = 0;
+  enemy_part1 = obj[0].next;
+  enemy_part2 = enemy_part1->next;
+  enemy_part3 = enemy_part2->next;
+  enemy_part4 = enemy_part3->next;
+  enemy_part5 = enemy_part4->next;
+  rinkx = 0;
+  rinky = 0;
+  rinkf1 = 0;
+  rinkf2 = 0;
+  move25(s, rbuf, wbuf);
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move25(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if(obj[0].dt1 <= 360)
+    {
+      obj[0].x = Mycos(obj[0].dt1) * 30 / SANKAKU + 82 + 32;
+      obj[0].y = Mysin(obj[0].dt1) * 30 / SANKAKU + 30;
+    }
+  if(obj[0].dt1 > 360)
+    {
+      obj[0].x = Mycos(obj[0].dt1) * 30 * -1 /SANKAKU + 142 + 32;
+      obj[0].y = Mysin(obj[0].dt1) * 30 / SANKAKU + 30;
+    }
+  count++;
+  PutSprite(count, obj[0].x - 42, obj[0].y, 64);
+  amari = rand() % 160;
+  if((amari == 1) && (enemy_part5->f == TRUE))
+    {
+      rinkf1 = 1;
+      move26(s, rbuf, wbuf);
+      return 0;
+    }
+  if((amari == 2) && (enemy_part1->f == TRUE))
+    {
+      rinkf1 = 5;
+      rinkx = 0;
+      move27(s, rbuf, wbuf);
+      //s->swap();
+      return 0;
+    }
+  if((enemy_part5->f == TRUE) && (enemy_part1->f != TRUE))
+    {
+      move28(s, rbuf, wbuf);
+      //s->swap();
+      return 0;
+    }
+  obj[0].dt1 += 3;
+  if(obj[0].dt1 == 720)
+    {
+      obj[0].dt1 = 0;
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move26(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if((obj[0].dt2 > 50) && (obj[0].dt2 < 100))
+    {
+      rinkf1 = 2;
+    }
+  if(obj[0].dt2 > 100)
+    {
+      rinkf1 = 3;
+    }
+  if(obj[0].dt2 == 400)
+    {
+      rinkf1 = 4;
+    }
+  count++;
+  PutSprite(count, obj[0].x - 42, obj[0].y, 64);
+  if(obj[0].dt2 == 401)
+    {
+      obj[0].dt2 = 0;
+      rinkf1 = 0;
+      move25(s, rbuf, wbuf);
+      return 0;
+    }
+  obj[0].dt2++;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move27(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if((obj[0].dt2 > 50) && (obj[0].dt2 < 60) && (obj[0].x > -24) && (obj[0].y > -24))
+    {
+      rinkf1 = 6;
+      rinkx -= 4;
+      obj[0].x -= 4;
+      obj[0].y -= 4;
+    }
+  if(obj[0].dt2 == 80)
+    {
+      rinkf1 = 7;
+    }
+  if(obj[0].dt2 == 81)
+    {
+      rinkf1 = 8;
+    }
+  if(obj[0].dt2 == 124)
+    {
+      rinkf1 = 9;
+    }
+  if(obj[0].dt2 == 400)
+    {
+      rinkf1 = 10;
+    }
+  if(obj[0].dt2 == 444)
+    {
+      rinkf1 = 11;
+    }
+  if(obj[0].dt2 == 500)
+    {
+      rinkf1 = 12;
+    }
+  if((obj[0].dt2 > 80) && (obj[0].dt2 < 200))
+    {
+      if((rinkx != 0) && (obj[0].dt2 % 2 == 1))
+        {
+          rinkx++;
+          obj[0].x++;
+          obj[0].y++;
+        }
+    }
+  count++;
+  PutSprite(count, obj[0].x - 32, obj[0].y, 6);
+  if(rinkf1 == 12)
+    {
+      obj[0].dt2 = 0;
+      rinkf1 = 0;
+      rinkx = 0;
+      move25(s, rbuf, wbuf);
+      return 0;
+    }
+  obj[0].dt2++;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move28(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if (obj[0].dt1 <= 360)
+    {
+      obj[0].x = Mycos(obj[0].dt1) * 30 / SANKAKU + 82 + 32;
+      obj[0].y = Mysin(obj[0].dt1) * 30 / SANKAKU + 30;
+    }
+  if (obj[0].dt1 > 360)
+    {
+      obj[0].x = Mycos(obj[0].dt1) * 30 * -1 / SANKAKU + 142 + 32;
+      obj[0].y = Mysin(obj[0].dt1) * 30 / SANKAKU + 30;
+    }
+  count++;
+  PutSprite(count, obj[0].x - 42, obj[0].y, 64);
+  if (obj[0].dt1 % 30 == 3)
+    {
+      Putenemy(24, obj[0].x + 14,
+               obj[0].y + 14,
+               (rand() % 5 + 0.5) * (rand() % 2 ==
+                                     1 ? -1 : 1),
+               (rand() % 5 + 0.5) * (rand() % 2 ==
+                                     1 ? -1 : 1), chara_state29);
+    }
+  obj[0].dt1 += 3;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move29(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  /*
+  if(obj[0].dt1 % 18 == 1)
+    {
+      Puttama(0, obj[0].x, obj[0].y);
+    }
+  obj[0].dt1++;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move30(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x -= 32;
+  obj[0].y = obj[0].y;
+
+  s->swap();
+  return 0;
+}
+
+static int
+move31(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if((enemy_part3->f == FALSE) || (kyeenemyno->f == FALSE))
+    {
+      Bom(obj[0].x, obj[0].y);
+      obj[0].f = FALSE;
+      obj[0].state = delete_chara;
+      obj[0].collision = noaction;
+      return 0;
+    }
+
+  if(rinkf1 == 0)
+    {
+      obj[0].x = kyeenemyno->x + 40;
+      obj[0].y = kyeenemyno->y + 28;
+      obj[0].dt2 = 0;
+    }
+  if(rinkf1 == 5)
+    {
+      obj[0].x = kyeenemyno->x + 52;
+      obj[0].y = kyeenemyno->y;
+      count++;
+      PutSprite(count, obj[0].x - 4, obj[0].y - 20, 80 + obj[0].dt2 % 4);
+      obj[0].dt2++;
+    }
+  if(rinkf1 == 6)
+    {
+      if(obj[0].y < 240 - 40)
+        {
+          obj[0].y += 6;
+        }
+      else
+        {
+          return 0;
+        }
+      count++;
+      PutSprite(count, obj[0].x - 4, obj[0].y - 20, 90 + obj[0].dt2 % 4);
+      obj[0].dt2++;
+    }
+  if(rinkf1 == 7)
+    {
+      Putenemy(22, obj[0].x + 14, obj[0].y + 14, 0, 0, chara_state40);
+      return 0;
+    }
+  if(rinkf1 == 11)
+    {
+      if(obj[0].y + 20 != obj[0].y)
+        {
+          obj[0].y--;
+        }
+      else
+        {
+          return 0;
+        }
+      count++;
+      PutSprite(count, obj[0].x + 8, obj[0].y + 44, 58 + obj[0].dt2 % 4);
+      obj[0].dt2++;
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move32(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if ((enemy_part4->f == FALSE)
+      || (kyeenemyno->f == FALSE))
+    {
+      Bom(obj[0].x, obj[0].y);
+      obj[0].f = FALSE;
+      obj[0].state = delete_chara;
+      obj[0].collision = noaction;
+      return 0;
+    }
+  obj[0].x = kyeenemyno->x - 40;
+  obj[0].y = kyeenemyno->y + 28;
+  if (rinkf1 == 5)
+    {
+      obj[0].x = kyeenemyno->x - 24 + 4;
+      obj[0].y = kyeenemyno->y + 28;
+      obj[0].charano = enemystate[20].charano; // これまずいね
+    }
+  if (rinkf1 == 11)
+    {
+      obj[0].charano = enemystate[14].charano; // これまずいね
+    }
+  if (rinkf1 == 7)
+    {
+      Putenemy(23, obj[0].x + 14,
+               obj[0].y + 14, 0, 0, chara_state41);
+      //      rinkf1=8;                                                                
+      return 0;
+    }
+  */
+
+  s->swap();
+  return 0;
+}
+
+static int
+move33(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if (kyeenemyno->f == FALSE)
+    {
+      Bom(obj[0].x, obj[0].y);
+      obj[0].f = FALSE;
+      obj[0].state = delete_chara;
+      obj[0].collision = noaction;
+      return p;
+    }
+  obj[0].x = kyeenemyno->x + 32;
+  obj[0].y = kyeenemyno->y;
+  if (rinkf1 == 5)
+    {
+      obj[0].x = kyeenemyno->x + 32 - 4;
+      obj[0].y = kyeenemyno->y;
+      obj[0].charano = enemystate[19].charano; // ここまずいね
+    }
+  if (rinkf1 == 6)
+    {
+      obj[0].charano = enemystate[11].charano; // ここマズイね
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move34(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if (kyeenemyno->f == FALSE)
+    {
+      Bom(obj[0].x, obj[0].y);
+      obj[0].f = FALSE;
+      obj[0].state = delete_chara;
+      obj[0].collision = noaction;
+      return p;
+    }
+  obj[0].x = kyeenemyno->x - 32;
+  obj[0].y = kyeenemyno->y;
+  if (rinkf1 == 5)
+    {
+      obj[0].charano = enemystate[21].charano;
+    }
+  if (rinkf1 == 6)
+    {
+      obj[0].charano = enemystate[12].charano;
+    }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move35(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if (kyeenemyno->f == FALSE)
+    {
+      Bom(obj[0].x, obj[0].y);
+      obj[0].f = FALSE;
+      obj[0].state = delete_chara;
+      obj[0].collision = noaction;
+      return p;
+    }
+  obj[0].x = kyeenemyno->x;
+  obj[0].y = kyeenemyno->y + 32;
+  if (rinkf1 == 1)
+    {
+      obj[0].charano = enemystate[16].charano;
+    }
+  if (rinkf1 == 2)
+    {
+      count++;
+      PutSprite(count, obj[0].x - 10,
+                obj[0].y + 16,
+                58 + obj[0].dt2 % 4);
+      count++;
+      PutSprite(count, obj[0].x + 10,
+                obj[0].y + 16,
+                58 + obj[0].dt2 % 4);
+      obj[0].dt2++;
+    }
+  if (rinkf1 == 3)
+    {
+      count++;
+      PutSprite(count, obj[0].x - 10,
+                obj[0].y + 16,
+                58 + obj[0].dt2 % 4);
+      count++;
+      PutSprite(count, obj[0].x + 10,
+                obj[0].y + 16,
+                58 + obj[0].dt2 % 4);
+      if (obj[0].dt2 % 20 == 1)
+        {
+          Puttama(7, obj[0].x, obj[0].y + 16);
+          Puttama(7, obj[0].x + 20,
+                  obj[0].y + 16);
+        }
+      obj[0].dt2++;
+    }
+  if (rinkf1 == 4) {
+    obj[0].charano = enemystate[15].charano;
+    obj[0].dt2 = 0;
+  }
+
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move40(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if (enemy_part1->f == FALSE)
+    {
+      Bom(obj[0].x, obj[0].y);
+      obj[0].f = FALSE;
+      obj[0].state = delete_chara;
+      obj[0].collision = noaction;
+      return 0;
+    }
+  if ((rinkf1 == 8) && (obj[0].dt1 % 3 == 1))
+    {
+      if ((obj[0].dt2 < 16))
+        {
+          obj[0].dt2++;
+          DefSprite(76, "boss2_rightarm_b", 16, obj[0].dt2, 480, boss);
+        }
+      else
+        {
+          //                                  rinkf1=9;                                
+          return 0;
+        }
+    }
+  if (rinkf1 == 9)
+    {
+      if (obj[0].dt1 % 15 == 1)
+        {
+          Puttama(8, obj[0].x, obj[0].y);
+        }
+    }
+  if (rinkf1 == 10)
+    {
+      if (obj[0].dt2 != 0)
+        {
+          obj[0].dt2--;
+          DefSprite(76, "boss2_rightarm_b", 16, obj[0].dt2, 480, boss);
+        }
+      else
+        {
+          obj[0].f = FALSE;
+          obj[0].state = delete_chara;
+          obj[0].collision = noaction;
+          //          rinkf1=11;                                                       
+        }
+    }
+  obj[0].dt1++;
+  */
+
+  s->swap();
+  return 0;
+}
+
+static int
+move41(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if (enemy_part2->f == FALSE)
+    {
+      Bom(obj[0].x, obj[0].y);
+      obj[0].f = FALSE;
+      obj[0].state = delete_chara;
+      obj[0].collision = noaction;
+      return 0;
+    }
+  obj[0].x = kyeenemyno->x - 20 - 7;
+  obj[0].y = kyeenemyno->y + 28 + 15;
+  if ((rinkf1 == 8) && (obj[0].dt1 % 3 == 1))
+    {
+      if ((obj[0].dt2 < 16))
+        {
+          obj[0].dt2++;
+          DefSprite(77, "boss2_leftarmbattery", obj[0].dt2, 16, 480, boss); //左腕アップアーム砲 
+        }
+      else
+        {
+          rinkf1 = 9;
+          return 0;
+        }
+    }
+  if (rinkf1 == 9)
+    {
+      if (obj[0].dt1 % 15 == 1)
+        {
+          Puttama(9 + rand() % 2, obj[0].x, obj[0].y);
+        }
+    }
+  if (rinkf1 == 10)
+    {
+      if (obj[0].dt2 != 0)
+        {
+          obj[0].dt2--;
+          DefSprite(77, "boss2_leftarmbattery", obj[0].dt2, 16, 480, boss);
+        }
+      else
+        {
+          obj[0].f = FALSE;
+          obj[0].state = delete_chara;
+          obj[0].collision = noaction;
+          return 0;
+          //          rinkf1=11;                                                       
+        }
+    }
+  obj[0].dt1++;
+*/
+  s->swap();
+  return 0;
+}
+
+static int
+move400(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].vy++;
+  obj[0].y += obj[0].vy / 4;
+
+  s->swap();
+  return 0;
+}
+
+static int
+move401(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  obj[0].vx++;
+  obj[0].x += obj[0].vx / 8;
+  if (obj[0].x > (jiki.x - 32))
+    {
+      obj[0].vy--;
+    }
+  obj[0].y += obj[0].vy / 8;
+  if (obj[0].dt1 % 50 == 37)
+    {
+      Puttama(1, obj[0].x + 8, obj[0].y + 24);
+    }
+  obj[0].dt1++;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move402(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  obj[0].vx--;
+  obj[0].x += obj[0].vx / 8;
+  if (obj[0].x < (jiki.x + 32))
+    {
+      obj[0].vy--;
+    }
+  obj[0].y += obj[0].vy / 8;
+  if (obj[0].dt1 % 50 == 37)
+    {
+      Puttama(1, obj[0].x + 8, obj[0].y + 24);
+    }
+  obj[0].dt1++;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move410(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  //kyeenemyno = obj[0];
+
+  s->swap();
+  return 0;
+}
+
+static int
+move411(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  if (obj[0].dt2 > 356)
+    {
+      obj[0].vx = -1;
+    }
+  if (obj[0].dt2 < -398)
+    {
+      obj[0].vx = 1;
+    }
+  if ((obj[0].dt1) % 62 == 0)
+    Putenemy(41,
+             obj[0].x,
+             obj[0].y,
+             (int) -Mycos(obj[0].dt1 / 16) * 4 /
+             SANKAKU,
+             (int) -Mysin(obj[0].dt1 / 16) * 4 /
+             SANKAKU, Move07);
+  if ((obj[0].dt1) % 13 == 0)
+    Puttama(11, obj[0].x + 32,
+            obj[0].y + 32);
+
+  obj[0].dt2 += obj[0].vx;
+  obj[0].dt1 += obj[0].dt2 / 4;
+
+  obj[0].x = jiki.x - 16 +
+    Mycos(obj[0].dt1 / 16) * 128 / SANKAKU;
+  obj[0].y = jiki.y - 16 +
+    Mysin(obj[0].dt1 / 16) * 128 / SANKAKU;
+  if (obj[0].x < 0)
+    {
+      obj[0].x = 0;
+    }
+  if (obj[0].x > 260)
+    {
+      obj[0].x = 260;
+    }
+  if (obj[0].y < 0)
+    {
+      obj[0].y = 0;
+    }
+  if (obj[0].y > 232)
+    {
+      obj[0].y = 232;
+    }
+  */
+
+  s->swap();
+  return 0;
+}
+
+static int
+move500(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].s = 0;
+  /*
+  kyeenemyno = obj[0];
+  obj[0].dt2++;
+  obj[0].dt2 %= 512;
+  obj[0].dt1++;
+  count++;
+  DefSpriteEx(100, 16, 16);
+  //            PutSprite(count, enemy[tekino].x + 16,                                 
+  //  enemy[tekino].y + 16, 100);                                                      
+  PutSpriteEx(100, obj[0].x + 16, obj[0].y + 16, 2, 2, obj[0].dt1);
+
+  if (obj[0].dt1 % (5 + obj[0].dt2 / 8) == 1) {
+    if (rand() % 2 == 1)
+      Putenemy(24, obj[0].x, obj[0].y,
+               (rand() % 5 + 0.5) * (rand() % 2 ==
+                                     1 ? -1 : 1),
+               (rand() % 5 + 0.5) * (rand() % 2 ==
+                                     1 ? -1 : 1), Move501);
+    else
+      Putenemy(rand() % 2 + 1, obj[0].x,
+               obj[0].y,
+               (int) Mycos(obj[0].dt1 / 4) * 4 /
+               SANKAKU,
+               (int) -Mysin(obj[0].dt1 / 4) * 4 /
+               SANKAKU, Move501);
+  }
+  if (obj[0].dt1 == 50) {
+    //Putenemy(44,0,0,1,1,411);
+  }
+*/
+  s->swap();
+  return 0;
+}
+
+static int
+move501(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  /*
+  if(obj[0].dt1 % 32 == 1)
+    {
+      Puttama(11, obj[0].x, obj[0].y);
+    }
+  obj[0].dt1++;
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+move600(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  kyeenemyno = obj[0];
+  obj[0].dt1 += 30;
+  obj[0].dt2++;
+  obj[0].dt1 %= 360;
+  obj[0].x += Mycos(obj[0].dt1) * 4 / SANKAKU;
+  obj[0].y += Mysin(obj[0].dt1) * 4 / SANKAKU;
+  Puttama(11, obj[0].x + 16, obj[0].y + 16);
+  Puttama(11, obj[0].x + 32, obj[0].y + 48);
+  Puttama(11, obj[0].x + 48, obj[0].y + 16);
+  if (obj[0].dt2 > 240)
+    move601(s, rbuf, wbuf);
+    return 0;
+  if (obj[0].x < 0)
+    obj[0].x = 0;
+  if (obj[0].x > 260)
+    obj[0].x = 260;
+  if (obj[0].y < 0)
+    obj[0].y = 0;
+  if (obj[0].y > 232)
+    obj[0].y = 232;
+  */
+
+  s->swap();
+  return 0;
+}
+
+static int
+move601(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  obj[0].dt2++;
+  if (obj[0].x < jiki.x)
+    obj[0].vx++;
+  if (obj[0].x > jiki.x)
+    obj[0].vx--;
+  obj[0].x += obj[0].vx;
+  Putenemy(6, obj[0].x + 16 + rand() % 32,
+           obj[0].y, 0, rand() % 4, Move400);
+  if (obj[0].x < 0)
+    obj[0].x = 0;
+  if (obj[0].x > 260)
+    obj[0].x = 260;
+  if (obj[0].y < 0)
+    obj[0].y = 0;
+  if (obj[0].y > 232)
+    obj[0].y = 232;
+  if (obj[0].dt2 > 800) {
+    move602(s, rbuf, wbuf);
+    return 0;
+  }
+  */
+
+  s->swap();
+  return 0;
+}
+
+static int
+move602(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  obj[0].dt2++;
+  Putenemy(24, obj[0].x + 14, obj[0].y + 14,
+           (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1),
+           (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1),
+           Move29);
+  if (obj[0].dt2 > 1024) {
+    move600(s, rbuf, wbuf);
+    obj[0].dt2 = 0;
+  }
+  */
+  s->swap();
+  return 0;
+}
+
+static int
+asteroid(SchedTask *s,void *rbuf, void *wbuf)
+{
+  ObjPropertyPtr obj = (ObjPropertyPtr)s->get_input(rbuf, 0);
+  /*
+  int i;
+
+  asteroiddt[asteroidi] = obj[0];
+  //            if(asteroidi==0)                                                     
+  //            {                                                                    
+  obj[0].x += obj[0].vx;
+  obj[0].y += obj[0].vy;
+  //            }                                                                    
+  if (asteroidi > 0) {
+    for (i = 0; i < asteroidi; i++) {
+      if ((asteroiddt[i]->x + 32 > obj[0].x)
+	  && (obj[0].x + 32 > asteroiddt[i]->x)
+	  && (asteroiddt[i]->y + 32 > obj[0].y)
+	  && (asteroiddt[i]->y < obj[0].y + 32)) {
+	obj[0].vx *= -1;
+	obj[0].vy *= -1;
+      }
+    }
+  }
+  asteroidi++;
+  */
+
+  s->swap();
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ppe/EnemyMove.h	Sun Aug 08 18:05:46 2010 +0900
@@ -0,0 +1,82 @@
+#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);
+};
+ */
+
+
+/* これは必須 */
+SchedDefineTask(Move00, move00);
+SchedDefineTask(Move01, move01);
+SchedDefineTask(Move02, move02);
+SchedDefineTask(Move03, move03);
+SchedDefineTask(Move04, move04);
+SchedDefineTask(Move05, move05);
+SchedDefineTask(Move06, move06);
+SchedDefineTask(Move07, move07);
+SchedDefineTask(Move08, move08);
+SchedDefineTask(Move09, move09);
+SchedDefineTask(Move10, move10);
+SchedDefineTask(Move11, move11);
+SchedDefineTask(Move12, move12);
+SchedDefineTask(Move13, move13);
+
+SchedDefineTask(Move20, move20);
+SchedDefineTask(Move21, move21);
+SchedDefineTask(Move22, move22);
+SchedDefineTask(Move23, move23);
+SchedDefineTask(Move24, move24);
+SchedDefineTask(Move25, move25);
+SchedDefineTask(Move06, move06);
+SchedDefineTask(Move27, move27);
+SchedDefineTask(Move28, move28);
+SchedDefineTask(Move29, move29);
+SchedDefineTask(Move30, move30);
+SchedDefineTask(Move31, move31);
+SchedDefineTask(Move32, move32);
+SchedDefineTask(Move33, move33);
+SchedDefineTask(Move34, move34);
+SchedDefineTask(Move35, move35);
+
+SchedDefineTask(Move40, move40);
+SchedDefineTask(Move41, move41);
+
+SchedDefineTask(Move400, move400);
+SchedDefineTask(Move401, move401);
+SchedDefineTask(Move402, move402);
+
+SchedDefineTask(Move410, move410);
+SchedDefineTask(Move411, move411);
+
+SchedDefineTask(Move500, move500);
+SchedDefineTask(Move501, move501);
+
+SchedDefineTask(Move600, move600);
+SchedDefineTask(Move601, move601);
+SchedDefineTask(Move602, move602);
+
+SchedDefineTask(Asteroid, asteroid);
+
+typedef struct {
+  double x, y;
+  double vx, vy;
+  const char *chara;
+  int vital;
+  int score;
+  int remove;
+  void *parent;
+  void *root;
+  
+} *ObjPropertyPtr, ObjProperty;
+
+
+#endif
--- a/stage_init.cc	Fri Aug 06 22:47:05 2010 +0900
+++ b/stage_init.cc	Sun Aug 08 18:05:46 2010 +0900
@@ -36,7 +36,7 @@
   SceneGraphPtr title = (SceneGraphPtr)charactor[0].root;
   title->xyz[0] = charactor[0].x;
   title->xyz[1] = charactor[0].y;
-  
+
   int size = sizeof(ObjProperty);
   //printf("size = %d\n", size);
   
@@ -51,8 +51,8 @@
 {
   SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
 
-  SceneGraphPtr stage = sgroot->createSceneGraph();
-  SceneGraphPtr mydandy = sgroot->createSceneGraph("mydandy");
+ 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);