annotate Renderer/Test/gaplant_action.cc @ 639:70c5c2d2eb24

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 19 Nov 2009 18:45:24 +0900
parents 306c9a7717c3
children d0b8860c17f8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <iostream>
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <cmath>
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include "SceneGraphRoot.h"
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "gaplant.h"
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 using namespace std;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 void
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 move_right(SceneGraphPtr node)
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 {
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
10 /*cout << "右を押したんだ " << node->angle[2] << "\n";*/
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
11 node->angle[1] -= 10;
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
12 /* if (node->angle[2] < -30) {
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 node->angle[2] = -30;
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
14 }
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
15 node->xyz[0] += 5;*/
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 void
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 move_left(SceneGraphPtr node)
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 {
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
21 /*cout << "左を押したんだ " << node->angle[2] << "\n";*/
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
22 node->angle[1] += 10;
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
23 /* if (node->angle[2] > 30) {
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 node->angle[2] = 30;
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
25 }
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
26 node->xyz[0] -= 5;*/
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 void
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 move_down(SceneGraphPtr node)
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 {
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
32 /*cout << "下だって押したくなる時はある "<< node->angle[0] << "\n";*/
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
33 node->angle[0] += 10;
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
34 /*if (node->angle[0] > -60) {
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 node->angle[0] = -60;
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
36 }
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
37 node->xyz[1] += 5;*/
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 void
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 move_up(SceneGraphPtr node)
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 {
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
43 /*cout << "上を押したんだ "<< node->angle[0] << "\n";*/
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
44 node->angle[0] -= 10;
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
45 /*if (node->angle[0] < -120) {
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 node->angle[0] = -120;
628
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
47 }
306c9a7717c3 change gaplan.cc
yutaka@henri.cr.ie.u-ryukyu.ac.jp
parents: 578
diff changeset
48 node->xyz[1] -= 5;*/
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 void
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 gaplant_move(SceneGraphPtr node, int w, int h)
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 Pad *pad = sgroot->getController();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 if (pad->right.isHold() || pad->left.isHold() || pad->down.isHold() || pad->up.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 if (pad->right.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 move_right(node);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 } else if (pad->left.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 move_left(node);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 } else if (pad->down.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 move_down(node);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 } else if (pad->up.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 move_up(node);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 if (pad->cross.isHold() || pad->circle.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 if (pad->cross.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 node->xyz[2] += 5;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 } else if (pad->circle.isHold()) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 node->xyz[2] -= 5;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 void
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 gaplant_coll(SceneGraphPtr node, int w, int h, SceneGraphPtr tree)
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 SceneGraphIteratorPtr it = sgroot->getIterator(tree);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 //static int damage = 0;
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82
578
a068627a0bc6 ps3 move
game@localhost.localdomain
parents: 560
diff changeset
83 for (; it->hasNext(sgroot->getSgid("Ball"));) {
a068627a0bc6 ps3 move
game@localhost.localdomain
parents: 560
diff changeset
84 it->next(sgroot->getSgid("Ball"));
507
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 SceneGraphPtr ball = it->get();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 double dis_x = node->xyz[0] - ball->xyz[0];
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 double dis_y = node->xyz[1] - ball->xyz[1];
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 double dis_z = node->xyz[2] - ball->xyz[2];
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 double distance = sqrt(dis_x*dis_x + dis_y*dis_y + dis_z*dis_z);
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 if (distance < CHECK_HIT_RAD + BALL_RAD) {
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 cout << "今からもっと細かく判定するよ ^q^\n";
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 ball->remove();
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 }
735f76483bb2 Reorganization..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 }