diff car.cc @ 131:2cc2796b3681

move car
author e085768
date Thu, 21 Jul 2011 00:04:08 +0900
parents 586d68c42c5d
children 1a92b58b5d01
line wrap: on
line diff
--- a/car.cc	Wed Jul 13 16:59:04 2011 +0900
+++ b/car.cc	Thu Jul 21 00:04:08 2011 +0900
@@ -20,7 +20,7 @@
 
 /* 初期位置と初期方向 */
 static FVECTOR location  = {0, 0, 0, 1};
-static FVECTOR direction = {0, 0, 0, 1};
+static FVECTOR direction = {0, 0, 1, 1};
 
 extern FILE* main_fp;
 
@@ -80,7 +80,7 @@
   ps2_vu0_copy_vector(car->direction, direction);
   ps2_vu0_copy_vector(car->location, location);
   INIT_VECTOR(car->vertical,    0, -1, 0, 1);
-  INIT_VECTOR(car->body->xyz,   600,  100, 500, 1);
+  INIT_VECTOR(car->body->xyz,   0,  0, 0, 1);
   INIT_VECTOR(car->body->angle, 0,  0, 0, 1);
 
   ps2util_obj_Renew_transMatrix(car->body);
@@ -176,18 +176,18 @@
 car_swerve(CarPtr car, int flg)
 {
   FMATRIX rot;
+  FVECTOR v;
   
   car->y_angle += (float)flg*car->rotation_angle;
   car->y_angle += (car->y_angle < 0) ? 360.0 : 0;
   car->y_angle += (car->y_angle > 360.0) ? -360.0 : 0;
 
-  // 下2行目でなんか2重に処理してる気がするけど別に良いのか
+  // rotの初期化が下2行目でなんか2重に処理してる気がするけど別に良いのか
   ps2_vu0_unit_matrix(rot);
   ps2_vu0_rot_matrix_y( rot, rot, degree2radian((float)flg*car->rotation_angle) );
 
-  FVECTOR v;
   ps2_vu0_copy_vector(v, car->direction);
-  ps2_vu0_apply_matrix(car->direction, rot, v); 
+  ps2_vu0_apply_matrix(car->direction, rot, v);
 }
 
 /*----------------------------
@@ -265,7 +265,8 @@
 
   printf("car->speed = %f ", car->speed);
   printf("\n");
-  
+
+  printf("car->body->xyz[x] = %f ", car->body->xyz[0]);
   printf("car->body->xyz[y] = %f ", car->body->xyz[1]);
   printf("car->body->xyz[z] = %f ", car->body->xyz[2]);
   printf("car->body->xyz[3] = %f ", car->body->xyz[3]);
@@ -296,10 +297,10 @@
   // 前フレームのcar->locationをprev_locationに保存
   ps2_vu0_copy_vector(prev_location, car->location);
 
-  // 車の現在地 = 車の位置 + 移動量 だと思う多分
+  // 車の現在地 = 車の位置 + 移動量  って事だと思う多分
   ps2_vu0_add_vector(car->location, car->location, mov);
 
-  // いまちょっとコメントアウト:miya
+  // いまちょっとコメントアウト
   /*
   // 壁にぶつかった時の処理
   if (car_field_check(game,car) == false) {
@@ -308,10 +309,10 @@
   car->speed = car->speed*0.5;
   }
   */
-
 }
 
 
+/* car->body->transfer と car->y_angle はここでなんか関係ある */
 static void
 car_axis_rotation(CarPtr car)
 {
@@ -332,7 +333,7 @@
 
     ps2_vu0_outer_product(rotaxis, car->vertical, yd);
     {
-      float scale=1/NORM(rotaxis);
+      float scale=1/NORM(rotaxis); // 単位ベクトル?
       rotaxis[0] *= scale;
       rotaxis[1] *= scale;
       rotaxis[2] *= scale;