annotate car.cc @ 146:d1ddd095ab03

draw dot hit cource -rainbow-
author e085768
date Fri, 29 Jul 2011 15:18:48 +0900
parents 993d5f7e5f30
children c920a164d68a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
1 /* Car.c */
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
2
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
3 #include <stdio.h>
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
4 #include <stdlib.h>
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
5 #include <stdbool.h>
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
6 #include "libps2.h"
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
7 #include "ps2util.h"
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
8 #include "field.h"
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
9 #include "car.h"
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
10 #include "mytype.h"
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
11 #include "quotanion.h"
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
12 #include "game.h"
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
13 #include "stdbool.h"
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
14
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
15 #include "gSprite.h"
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
16 #include "getStrFromFile.h"
125
c62fec1dd2f8 outPutPicture
e085768
parents: 124
diff changeset
17
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
18 #define DEFAULT_SET (EFFECT_TEXTURE_USE | EFFECT_ALPHABLEND_UNUSE | EFFECT_SHADING_FLAT)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
19 #define BUFSIZE 256
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
20
88
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
21 /* 初期位置と初期方向 */
138
993d5f7e5f30 collision
e085768
parents: 137
diff changeset
22 static FVECTOR location = {0, 0, 0, 1};
993d5f7e5f30 collision
e085768
parents: 137
diff changeset
23
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
24 static FVECTOR direction = {0, 0, 1, 1};
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
25
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
26 extern FILE* main_fp;
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
27
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
28 static CarPtr
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
29 car_create(int car_id, char *filename, char *texname, float speed_accel,
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
30 float speed_max, float rot, float brake)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
31 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
32 CarPtr car;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
33 OBJECT *body;
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
34 //TEXTURE* tex;
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
35 void *free_addr;
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
36
126
030394675d8e succes compile
e085768
parents: 125
diff changeset
37 // 今はなにもしてない.
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
38 body = ps2util_obj_Create_fromXML(filename);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
39 ps2util_obj_Set_effect(body, DEFAULT_SET);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
40
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
41 // xmlファイルから読み込み
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
42 call_createFromXMLfile(filename);
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
43
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
44 body = (OBJECT*)malloc(sizeof(OBJECT));
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
45
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
46 const char *sStr = "surface name=\""; // この文字列の直後の文字列を取得する
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
47 const char *eStr = "\" size="; // この文字列の直前までの文字列を抜き取る
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
48
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
49 // xmlファイルから surface name と 数を取得する
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
50 body->partNum = getStrFromFile( body->partName, filename, sStr, eStr );
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
51
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
52 /*
138
993d5f7e5f30 collision
e085768
parents: 137
diff changeset
53 for( int i = 0; i < body->partNum; i ++ ){
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
54 gSprite_DefSprite( 100, body->partName[i], 919, 666, 1);
138
993d5f7e5f30 collision
e085768
parents: 137
diff changeset
55 }
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
56 */
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
57
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
58 // 初期化 // createScenGraph関数の引数アリと無しの違いは?
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
59 //body = droot->createSceneGraph("car");
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
60
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
61 // car = (CarPtr)malloc(sizeof(CarPtr));
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
62
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
63 if (malloc_align16(&free_addr, &car, sizeof(Car)) == -1) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
64 fprintf(main_fp, "car.c: malloc_align16 error\n");
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
65 exit(EXIT_FAILURE);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
66 }
122
5219bf3d5e71 title_draw
e085768
parents: 118
diff changeset
67
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
68 car->body = body;
126
030394675d8e succes compile
e085768
parents: 125
diff changeset
69
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
70 car->next = NULL;
122
5219bf3d5e71 title_draw
e085768
parents: 118
diff changeset
71
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
72 car->speed = 0.0;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
73 car->speed_accel = speed_accel;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
74 car->speed_max = speed_max;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
75 car->brake = brake;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
76 car->rotation_angle = rot;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
77 car->y_angle = 0.0;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
78 car->free_addr = free_addr;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
79
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
80
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
81 ps2_vu0_copy_vector(car->direction, direction);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
82 ps2_vu0_copy_vector(car->location, location);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
83 INIT_VECTOR(car->vertical, 0, -1, 0, 1);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
84 INIT_VECTOR(car->body->xyz, 0, 0, 0, 1);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
85 INIT_VECTOR(car->body->angle, 0, 0, 0, 1);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
86
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
87 ps2util_obj_Renew_transMatrix(car->body);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
88 ps2util_obj_Set_effect(car->body, DEFAULT_SET);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
89
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
90 /*
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
91 if (*texname != 'n') {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
92 tex = read_png_file(texname);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
93 ps2util_tex_Set(tex);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
94 ps2util_obj_Set_texture(car->body, tex);
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
95 }
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
96 */
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
97
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
98 #ifdef DEBUG
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
99 fprintf(main_fp, "malloc car addr = %x\n", (int)free_addr);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
100 #endif
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
101
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
102 return car;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
103 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
104
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
105 // idは 1 か 2 か 3 で引数取ってこないと落ちるよ(登録されていない場合は落ちる)
122
5219bf3d5e71 title_draw
e085768
parents: 118
diff changeset
106 // car/car.dat ファイル内に3つしか車のデータ無から
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
107 static CarPtr
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
108 car_new_readCSV(FILE *fp, int id)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
109 {
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
110 CarPtr newCar;
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
111 int car_id;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
112 float speed_accel, speed_max, brake, rot;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
113 char buff[BUFSIZE], *bufp;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
114 char carImg[BUFSIZE], texImg[BUFSIZE];
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
115
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
116 bool flag; // 探したい車が見つかったらture
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
117
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
118 flag = false;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
119
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
120 while ((bufp = fgets(buff, BUFSIZE, fp)) != NULL) {
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
121
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
122 bufp++;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
123
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
124 switch (buff[0]) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
125 case 'n':
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
126 if (flag == false) {
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
127
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
128 // car_id = car/car.datファイルのnの後ろの数字一文字
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
129 sscanf(bufp, " %d\n", &car_id);
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
130 if (id == car_id) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
131 flag = true;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
132 }
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
133 }
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
134 break;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
135 case 't':
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
136 if (flag == true) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
137 sscanf(bufp, " %s %s %f %f %f %f\n",
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
138 carImg, texImg, &speed_accel, &speed_max, &rot, &brake);
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
139 newCar = car_create(id, carImg, texImg,
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
140 speed_accel, speed_max, rot, brake);
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
141 return newCar;
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
142 }
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
143 break;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
144 default:
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
145 break;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
146 }
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
147 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
148
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
149 /* ここまで辿り着いたら読み込み失敗 */
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
150 fprintf(main_fp, "error - car_new_readCSV\n");
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
151 exit(EXIT_FAILURE);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
152 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
153
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
154 CarPtr car_init(int id)
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
155 {
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
156 CarPtr newCar;
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
157 FILE *fp;
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
158 const char *filename = "car/car.dat";
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
159
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
160 if (!(fp = fopen(filename, "r"))) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
161 fprintf(main_fp, "error read file %s\n", filename);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
162 exit(EXIT_FAILURE);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
163 }
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
164
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
165 newCar = car_new_readCSV(fp, id);
116
ed702e49cc6c conpile
e085768
parents: 115
diff changeset
166
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
167 fclose(fp);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
168
100
e5f2eb98b575 change cc
e085768
parents: 99
diff changeset
169 return newCar;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
170 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
171
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
172 /*---------------------------
88
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
173 carをY軸で回転させる
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
174 flg: 回転方向 1:右, -1:左
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
175 ---------------------------*/
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
176 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
177 car_swerve(CarPtr car, int flg)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
178 {
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
179 FMATRIX rot;
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
180 FVECTOR v;
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
181
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
182 car->y_angle += (float)flg*car->rotation_angle;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
183 car->y_angle += (car->y_angle < 0) ? 360.0 : 0;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
184 car->y_angle += (car->y_angle > 360.0) ? -360.0 : 0;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
185
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
186 // rotの初期化が下2行目でなんか2重に処理してる気がするけど別に良いのか
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
187 ps2_vu0_unit_matrix(rot);
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
188 ps2_vu0_rot_matrix_y( rot, rot, degree2radian((float)flg*car->rotation_angle) );
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
189
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
190 ps2_vu0_copy_vector(v, car->direction);
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
191 ps2_vu0_apply_matrix(car->direction, rot, v);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
192 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
193
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
194 /*----------------------------
88
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
195 carを加速・減速する
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
196 (flg == 1) ? 加速 : 減速
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
197 ---------------------------*/
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
198 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
199 car_accelerate(CarPtr car, int flg)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
200 {
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
201 //加速
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
202 car->speed += (flg == 1) ? car->speed_accel : -car->brake;
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
203
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
204 // speedが0以下にならんように
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
205 car->speed = (car->speed < 0) ? 0 : car->speed;
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
206
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
207 // speedがMax超えないように
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
208 car->speed = (car->speed > car->speed_max) ? car->speed_max : car->speed;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
209 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
210
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
211
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
212 /*---------------------------------
88
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
213 進行後のcarに対してコース面の内外判定を行い、
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
214 : 現在のコース
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
215 : 現在のコースの次のコース
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
216 : 現在のコースの前のコース
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
217 に存在すればTRUEを返す
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
218 どのコースにも居ない(壁に衝突した)場合は
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
219 FALSEを返す。
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
220 ---------------------------------*/
90
8edae89a3877 compile on Mac OS X
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 88
diff changeset
221 static bool
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
222 car_field_check(Game *game ,CarPtr car)
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
223 {
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
224 FieldPtr p;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
225 FieldPtr f = field_get_actual();
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
226
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
227 // 現在のコースで衝突・内外判定
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
228 p = f;
146
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
229
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
230 if (col_detect(&p->colface, car->vertical, car->location) == true) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
231 goto FIELD_CHECK_OK;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
232 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
233
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
234 // 現在のコースの次に隣接するコースで衝突・内外判定
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
235 p = f->next;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
236 if (col_detect(&p->colface, car->vertical, car->location) == true) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
237 if (field_rap_increment(1)) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
238 game->rap++;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
239 }
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
240 goto FIELD_CHECK_OK;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
241 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
242
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
243 // 現在のコースの前に隣接するコースで衝突・内外判定
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
244 p = f->prev;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
245 if (col_detect(&p->colface, car->vertical, car->location) == true) {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
246 field_rap_increment(-1);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
247 goto FIELD_CHECK_OK;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
248 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
249
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
250 // どのコース上にも居ない(壁に衝突)
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
251 return false;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
252
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
253 FIELD_CHECK_OK:
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
254 field_set_actual(p);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
255 return true;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
256 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
257
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
258
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
259 /*------------------------------
88
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
260 速度speedと向きdirectionから
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
261 進行後の位置locationを求める。
ce9ef7dcf2f0 convert UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 43
diff changeset
262 また、進行後の衝突判定も行う。
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
263 ------------------------------*/
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
264 static void
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
265 car_move(Game *game,CarPtr car)
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
266 {
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
267 FVECTOR mov, prev_location;
126
030394675d8e succes compile
e085768
parents: 125
diff changeset
268
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
269 printf("car->speed = %f ", car->speed);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
270 printf("\n");
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
271
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
272 printf("car->body->xyz[x] = %f ", car->body->xyz[0]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
273 printf("car->body->xyz[y] = %f ", car->body->xyz[1]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
274 printf("car->body->xyz[z] = %f ", car->body->xyz[2]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
275 printf("car->body->xyz[3] = %f ", car->body->xyz[3]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
276 printf("\n");
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
277
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
278 printf("car->direction[x] = %f ", car->direction[0]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
279 printf("car->direction[y] = %f ", car->direction[1]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
280 printf("car->direction[z] = %f ", car->direction[2]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
281 printf("car->direction[3] = %f ", car->direction[3]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
282 printf("\n");
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
283
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
284 printf("car->location[x] = %f ", car->location[0]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
285 printf("car->location[y] = %f ", car->location[1]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
286 printf("car->location[z] = %f ", car->location[2]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
287 printf("car->location[3] = %f ", car->location[3]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
288
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
289 printf("\n");
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
290
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
291 // movは車の移動量を計算して入れるのかな。たぶん
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
292 ps2_vu0_scale_vector(mov, car->direction, car->speed);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
293
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
294 printf("mov[x] = %f ", mov[0]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
295 printf("mov[y] = %f ", mov[1]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
296 printf("mov[z] = %f ", mov[2]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
297 printf("mov[3] = %f ", mov[3]);
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
298 printf("\n");
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
299
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
300 // 前フレームのcar->locationをprev_locationに保存
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
301 ps2_vu0_copy_vector(prev_location, car->location);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
302
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
303 // 車の現在地 = 車の位置 + 移動量 って事だと思う多分
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
304 ps2_vu0_add_vector(car->location, car->location, mov);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
305
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
306
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
307 //思う方向と逆に動いたので、マイナスして見ている。
146
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
308 /*
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
309 car->body->xyz[0] = -car->location[0];
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
310 car->body->xyz[1] = -car->location[1];
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
311 car->body->xyz[2] = -car->location[2];
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
312 */
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
313
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
314 car->body->xyz[0] = car->location[0];
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
315 car->body->xyz[1] = car->location[1];
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
316 car->body->xyz[2] = car->location[2];
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
317
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
318
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
319 // 壁にぶつかった時の処理
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
320 if (car_field_check(game,car) == false) {
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
321 // 壁にぶつかったら計算前の前フレームの座標にしてsppedは半分
126
030394675d8e succes compile
e085768
parents: 125
diff changeset
322 ps2_vu0_copy_vector(car->location, prev_location);
030394675d8e succes compile
e085768
parents: 125
diff changeset
323 car->speed = car->speed*0.5;
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
324 printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
138
993d5f7e5f30 collision
e085768
parents: 137
diff changeset
325 printf("^^^^^^courseOUT!!!!!^^^^^^^^^\n");
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
326 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
327 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
328
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
329
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
330 /* car->body->transfer と car->y_angle はここでなんか関係ある */
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
331 static void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
332 car_axis_rotation(CarPtr car)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
333 {
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
334 FMATRIX pose, // 最後にcar->transferにコピーしてる
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
335 yrot,
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
336 yrotinv;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
337
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
338 ps2_vu0_unit_matrix(yrot);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
339 ps2_vu0_rot_matrix_y(yrot, yrot, -degree2radian(car->y_angle));
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
340
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
341 ps2_vu0_unit_matrix(yrotinv);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
342 ps2_vu0_rot_matrix_y(yrotinv, yrotinv, degree2radian(car->y_angle));
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
343
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
344 {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
345 FVECTOR yd = {0, -1, 0, 1};
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
346 FVECTOR rotaxis;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
347 FVECTOR q;
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
348
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
349 ps2_vu0_outer_product(rotaxis, car->vertical, yd);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
350 {
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
351 float scale=1/NORM(rotaxis); // 単位ベクトル?
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
352 rotaxis[0] *= scale;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
353 rotaxis[1] *= scale;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
354 rotaxis[2] *= scale;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
355 }
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
356
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
357 quotanion(q, rotaxis, acos(ps2_vu0_inner_product(yd, car->vertical)/(NORM(yd)*NORM(car->vertical))));
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
358 quotanion_rotmatrix(pose, q);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
359 }
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
360
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
361
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
362 ps2_vu0_mul_matrix(pose, yrot, pose);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
363 ps2_vu0_mul_matrix(pose, pose, yrotinv);
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
364 ps2_vu0_copy_matrix(car->body->transfer, pose);
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
365
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
366 ps2_vu0_rot_matrix_y(car->body->transfer, car->body->transfer, degree2radian(car->y_angle));
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
367 }
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
368
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
369
118
b6dc70f6aa7e chenge OBJECT->transfer
e085768
parents: 116
diff changeset
370
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
371 void car_update( Game *game, CarPtr car )
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
372 {
128
d9e3137e70a0 xml name change
e085768
parents: 126
diff changeset
373 // 移動 ここで壁との当たり判定もしとる
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
374 car_move(game,car);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
375
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
376 // 摩擦による速度減少
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
377 car->speed -= 0.005;
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
378 car->speed = (car->speed < 0) ? 0 : car->speed;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
379
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
380 // 角度。なぜかマイナス2倍でウマくいってる
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
381 car->body->angle[1] = -car->y_angle * 2;
146
d1ddd095ab03 draw dot hit cource -rainbow-
e085768
parents: 138
diff changeset
382 // car->body->angle[0] = -90.0f;
130
4f50f5a3b363 new repository
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 128
diff changeset
383
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
384 // 傾き
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
385 car_axis_rotation(car);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
386 }
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
387
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
388
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
389 void
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
390 car_destroy(CarPtr p)
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
391 {
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
392 /*
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
393 TEXTURE *t;
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
394
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
395 if ((t = p->body->surfaces->texture)) {
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
396 //ps2util_tex_Exclude(t);
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
397 free_texture(t);
91
cb6c6de125dc halfway
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 90
diff changeset
398 }
115
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
399 */
31dd5c07f7c1 class OBJECT:SceanGraph
e085768
parents: 100
diff changeset
400
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
401 ps2util_obj_Free(p->body);
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
402 free(p->free_addr);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
403
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
404 #ifdef DEBUG
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
405 fprintf(main_fp, "free car addr = %x\n", (int)p->free_addr);
0
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
406 #endif
0fae5658fb0b Initial revision
gongo
parents:
diff changeset
407 }
96
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
408
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
409 // 適当に自作
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
410 void car_id_update(Game *game, CarPtr jiki)
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
411 {
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
412 printf("car_id_update\n");
0b65ca27f113 compile on Mac OS X 2
Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
413 }