comparison spe/chara_state4.cc @ 49:f4140672ef9f

fix.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Fri, 21 Jan 2011 22:18:28 +0900
parents c330ded6d728
children cfd42ee2ad28
comparison
equal deleted inserted replaced
45:e01948ce859a 49:f4140672ef9f
1 #include "chara_state3.h" 1 #include "task_base.h"
2 #include "tobject.h" 2 #include "task_object.h"
3 3
4 SchedDefineTask(STATE4); 4 SchedDefineTask1(State4, state4);
5 5
6 static int 6 static int
7 run(SchedTask *smanager, void *rbuf, void *wbuf) 7 state4(SchedTask *smanager, void *rbuf, void *wbuf)
8 { 8 {
9 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0); 9 CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
10 CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
11 player *jiki = (player*)smanager->get_input(rbuf, 1);
10 12
11 p->y += p->vy; 13 p->y += p->vy;
12 p->x += p->vx; 14 p->x += p->vx;
13 if(p->y < jiki.y && p->y + 16 > jiki.y) 15 if(p->y < jiki->y && p->y + 16 > jiki->y)
14 { 16 {
15 p->vy = -2; 17 p->vy = -2;
16 p->vx = ((jiki.x > p->x) ? 4 : -4); 18 p->vx = ((jiki->x > p->x) ? 4 : -4);
17 p->task = STATE7; 19 p->task = STATE7;
18 } 20 }
19 else p->task = STATE4; 21 else p->task = STATE4;
20 smanager->swap(); 22
23 *q = *p;
21 return 0; 24 return 0;
22 } 25 }