comparison schedule.cc @ 128:d9e3137e70a0

xml name change
author e085768
date Thu, 07 Jul 2011 16:10:21 +0900
parents 030394675d8e
children 4f50f5a3b363
comparison
equal deleted inserted replaced
127:f129e644ec29 128:d9e3137e70a0
24 #include "mytype.h" 24 #include "mytype.h"
25 #include "linda.h" 25 #include "linda.h"
26 26
27 #include "sjoy.h" 27 #include "sjoy.h"
28 28
29 // getScreen_()関数用にインクルード
30 #include "Magoroku.h"
31 29
32 #ifdef LINDA 30 #ifdef LINDA
33 bool linda_update(int p, Game *game); 31 bool linda_update(int p, Game *game);
34 #else 32 #else
35 #define linda_update(change_state, game) true 33 #define linda_update(change_state, game) true
36 #endif 34 #endif
37 35
38 #define MAXCAR 3 // 選択可能機体 36 #define MAXCAR 4 // 選択可能機体
39 #define MAXFIELD 2 // 選択可能コース 37 #define MAXFIELD 2 // 選択可能コース
40 #define MAXRAP 3 // ラップ数 38 #define MAXRAP 3 // ラップ数
41 #define SP_SEL_CAR 50 39 #define SP_SEL_CAR 50
42 #define SP_SEL_COURSE 80 40 #define SP_SEL_COURSE 80
43 41
73 71
74 static void (*sche_func_assumption)(Game*); 72 static void (*sche_func_assumption)(Game*);
75 static void (*sche_func)(Game*) = &sche_game_init; 73 static void (*sche_func)(Game*) = &sche_game_init;
76 static int change_state = 0; 74 static int change_state = 0;
77 75
76
78 // schedule.ccで使用してる 77 // schedule.ccで使用してる
79 void linda_env_init( void ); 78 void linda_env_init( void );
80 79
81 static void 80 static void
82 set_schedule_assumption(void (*_func)(Game*) ) 81 set_schedule_assumption(void (*_func)(Game*) )
99 } 98 }
100 99
101 static void 100 static void
102 graphic_init() 101 graphic_init()
103 { 102 {
103 // flip();
104
104 printf("graphic_init()\n"); 105 printf("graphic_init()\n");
105 106
106 gSprite_Init(); // グラフィック関連の初期化 107 gSprite_Init(); // グラフィック関連の初期化
107 gFont_Init(); // フォント関連の初期化 108 gFont_Init(); // フォント関連の初期化
108
109 } 109 }
110 110
111 static void 111 static void
112 play_init( Game *game ) 112 play_init( Game *game )
113 { 113 {
114 printf("play_init()\n"); 114 printf("play_init()\n");
115 printf("game->car_id = %d\n",game->car_id); 115 printf("game->car_id = %d\n",game->car_id);
116 116
117 // ここで、car_idには1か2か3が入らんとダメ 117 // ここで、car_idには1か2か3が入らんとダメ
118 game->jiki = car_init(game->car_id); 118 game->jiki = car_init(game->car_id);
119 119
120 // carNode.cc内のcar_listに追加
120 carNode_append(game->jiki); 121 carNode_append(game->jiki);
121 122
122 field_init(game->course_id); 123 field_init(game->course_id);
123 } 124 }
124 125
125 // 適当に自作 :miya 126 // 適当に自作 :miya
126 void linda_env_init( void ) 127 void linda_env_init( void )
149 printf("sche_game_init()\n"); 150 printf("sche_game_init()\n");
150 151
151 game_env_init(game); 152 game_env_init(game);
152 graphic_init(); 153 graphic_init();
153 camera_init(); 154 camera_init();
155
156 FVECTOR c = { 0, 0, 0, 0 };
157 set_cameraPos( c );
154 158
155 #ifdef LINDA 159 #ifdef LINDA
156 //sche_func = &sche_game_wait; 160 //sche_func = &sche_game_wait;
157 //set_schedule_assumption(sche_game_wait); 161 //set_schedule_assumption(sche_game_wait);
158 #else 162 #else
180 /** 184 /**
181 * 通信対戦専用 185 * 通信対戦専用
182 * 全ユーザの接続を確認したら呼び出す 186 * 全ユーザの接続を確認したら呼び出す
183 * こいつも、linda がないので cut 187 * こいつも、linda がないので cut
184 */ 188 */
185 /* 189 /*
186 static void 190 static void
187 sche_game_wait_ready(Game *game) 191 sche_game_wait_ready(Game *game)
188 { 192 {
189 gFont_SetString("CONNECT OK!!", 170, 300); 193 gFont_SetString("CONNECT OK!!", 170, 300);
190 if (game->play_id == 1) { 194 if (game->play_id == 1) {
191 gFont_SetString(" PUSH START ", 170, 400); 195 gFont_SetString(" PUSH START ", 170, 400);
192 if (pad.st != 1) { goto WAIT_READY; } 196 if (pad.st != 1) { goto WAIT_READY; }
193 } 197 }
194 198
195 set_schedule_assumption(sche_game_opening); 199 set_schedule_assumption(sche_game_opening);
196 200
197 WAIT_READY: 201 WAIT_READY:
198 return; 202 return;
199 } 203 }
200 */ 204 */
201 205
202 206
203 void 207 void
204 sche_game_opening(Game *game) 208 sche_game_opening(Game *game)
205 { 209 {
206 printf("sche_game_opening\n");
207
208 static int blink_count = 0; 210 static int blink_count = 0;
209 211
210 // 試しブレンダーで作ったタイトルを表示してみたひ 212 gSprite_PutSprite( true, TITLE, 600, 100, -500, 0);
211 gSprite_PutSprite(TITLE, 600, 100, -500); 213
212
213 //ここを現在通らないらしい。 214 //ここを現在通らないらしい。
214 if (game->play_id==1){ 215 if (game->play_id==1){
215 if (blink_count < 35) { 216 if (blink_count < 35) {
216 gFont_SetString("PUSH START !!", 170, 380); 217 gFont_SetString("PUSH START !!", 170, 380);
217 } 218 }
229 230
230 set_schedule_assumption(sche_game_select_car); 231 set_schedule_assumption(sche_game_select_car);
231 232
232 OPENING: 233 OPENING:
233 return; 234 return;
234
235 235
236 if (game->play_id == 1) { 236 if (game->play_id == 1) {
237 if (title_scene() < 0){ 237 if (title_scene() < 0){
238 } 238 }
239 } else if (game->play_id == 2) { 239 } else if (game->play_id == 2) {
253 if (i==1){ 253 if (i==1){
254 title_finish_call(); 254 title_finish_call();
255 i=2; 255 i=2;
256 } 256 }
257 257
258 gSprite_PutSpriteEx(SP_SEL_CAR+game->car_id, 600, 200, TEST_Z_GRID,1.5, 1.5, 0.0); 258 gSprite_PutSpriteEx(true,SP_SEL_CAR+game->car_id, 600, 200, TEST_Z_GRID,1.5, 1.5, 0.0);
259 gSprite_PutSprite(R_ARROW, 750, 200, TEST_Z_GRID); 259 gSprite_PutSprite(true,R_ARROW, 750, 200, TEST_Z_GRID, 0);
260 gSprite_PutSprite(L_ARROW, 450, 200, TEST_Z_GRID); 260 gSprite_PutSprite(true,L_ARROW, 450, 200, TEST_Z_GRID, 0 );
261 261
262 gFont_SetString("SELECT CAR", 180, 50); 262 gFont_SetString("SELECT CAR", 180, 50);
263 263
264 if (pad.right == 1) { 264 if (pad.right == 1) {
265 game->car_id = 265 game->car_id =
283 283
284 void 284 void
285 sche_game_select_course(Game *game) 285 sche_game_select_course(Game *game)
286 { 286 {
287 printf("sche_game_select_course()\n"); 287 printf("sche_game_select_course()\n");
288 gSprite_PutSpriteEx(SP_SEL_COURSE+game->course_id, 600, 200, TEST_Z_GRID ,1.7, 1.8, 0.0); 288 gSprite_PutSpriteEx(true, SP_SEL_COURSE+game->course_id, 600, 200, TEST_Z_GRID ,1.7, 1.8, 0.0);
289 gSprite_PutSprite(R_ARROW, 750, 200, TEST_Z_GRID); 289 gSprite_PutSprite(true, R_ARROW, 750, 200, TEST_Z_GRID, 0);
290 gSprite_PutSprite(L_ARROW, 450, 200, TEST_Z_GRID); 290 gSprite_PutSprite(true, L_ARROW, 450, 200, TEST_Z_GRID, 0);
291 291
292 gFont_SetString("SELECT COURSE", 150, 50); 292 gFont_SetString("SELECT COURSE", 150, 50);
293 293
294 if (game->play_id == 1) { 294 if (game->play_id == 1) {
295 if (pad.right == 1) { 295 if (pad.right == 1) {
316 sche_game_ready(Game *game) 316 sche_game_ready(Game *game)
317 { 317 {
318 printf("sche_game_ready()\n"); 318 printf("sche_game_ready()\n");
319 static int blink_count = 0;// 319 static int blink_count = 0;//
320 320
321 int tesX = 200; 321 int tesX = 500;
322 322
323 // PLAYER_1 or PLAYER_2 323 // PLAYER_1 or PLAYER_2 通信対戦できないから常にPLAYER_1ですね
324 gSprite_PutSprite(27+game->play_id, 265 + tesX, 10, TEST_Z_GRID - 300); 324 gSprite_PutSprite(true, 27+game->play_id, 265 + 50 , 200, TEST_Z_GRID + 400, 0 );
325 325
326 gSprite_PutSpriteEx(SP_SEL_CAR+game->car_id, 50 + tesX, 120, TEST_Z_GRID - 300, 1.5, 1.5 , 0.0); 326 gSprite_PutSpriteEx(true, SP_SEL_CAR+game->car_id, 50 + tesX, 120, TEST_Z_GRID - 300, 1.5, 1.5 , 0.0);
327 gSprite_PutSpriteEx(SP_SEL_COURSE+game->course_id, 340 + tesX, 120, TEST_Z_GRID - 300, 1.7, 1.8 , 0.0); 327 gSprite_PutSpriteEx(true, SP_SEL_COURSE+game->course_id, 340 + tesX, 120, TEST_Z_GRID - 300, 1.7, 1.8 , 0.0);
328 328
329 /* 点滅 */ 329 /* 点滅 */
330 if (blink_count < 35) { 330 if (blink_count < 35) {
331 gFont_SetString("GAME START !!", 170, 380); 331 gFont_SetString("GAME START !!", 170, 380);
332 } 332 }
356 static void 356 static void
357 sche_game_main_ready(Game *game) 357 sche_game_main_ready(Game *game)
358 { 358 {
359 gFont_SetString("Loading....", 180, 100); 359 gFont_SetString("Loading....", 180, 100);
360 set_schedule_assumption(sche_game_main); 360 set_schedule_assumption(sche_game_main);
361
361 } 362 }
362 363
363 static void 364 static void
364 sche_game_main(Game *game) 365 sche_game_main(Game *game)
365 { 366 {
366 printf("sche_game_main()\n"); 367 printf("sche_game_main()\n");
367 368
369 // jikiによってカメラも移動( camera_update()って関数のほう使うあらイラんね )
370 // set_cameraPos( game->jiki->body->xyz );
371
368 /** begin: dispaly RAP TIME **/ 372 /** begin: dispaly RAP TIME **/
369 if(RUNNIG==0){ 373 if(RUNNIG==0){
370 start_time = game_time_get_msec(); 374 start_time = game_time_get_msec();
371 RUNNIG=1; 375 RUNNIG=1;
372 } 376 }
376 gFont_SetString("TIME",300,20); 380 gFont_SetString("TIME",300,20);
377 gFont_SetString(raptime,400,20); 381 gFont_SetString(raptime,400,20);
378 /** end: dispaly RAP TIME **/ 382 /** end: dispaly RAP TIME **/
379 383
380 // light_init と init_lightの書き間違え? 384 // light_init と init_lightの書き間違え?
381 init_light(&l); 385 // init_light(&l);
382 set_light(&l); 386 set_light(&l);
383 387
384 car_id_update(game, game->jiki); 388 car_id_update(game, game->jiki);
389 // 宣言では引数が二つだったから、第一引数に game を入れてみた
390 car_update(game, game->jiki);
385 391
386 field_update(game->jiki); 392 field_update(game->jiki);
387 393
388 //camera_update(game,game->jiki->body->transfer); 394 // 車のDraw関数
389 camera_update(game, &(game->jiki->body->matrix) );
390
391 carNode_draw(); 395 carNode_draw();
396
397
398 //camera_update(game, game->jiki->body->transfer);
399 {
400 // game->jiki->body->matrix[16] を FMATRIX(float[4][4])に変換
401 FMATRIX cm; //carMatrix
402
403 changeMatrix( cm, game->jiki->body->matrix );
404
405 camera_update( game, cm ); // カメラがcarの後に着いていく処理してるかも
406
407 returnMatrix( game->jiki->body->matrix, cm );
408 }
392 409
393 gFont_SetStringInt(game->rap, 50, 100); 410 gFont_SetStringInt(game->rap, 50, 100);
394 411
395 /* スピードメーター */ 412 /* スピードメーター */
396 //gSprite_DefSprite(SP_METER, 1, 1,(int)(106.0*(game->jiki->speed/game->jiki->speed_max)), 34); 413 //gSprite_DefSprite(SP_METER, 1, 1,(int)(106.0*(game->jiki->speed/game->jiki->speed_max)), 34);
397 414
398 // とりあえずコンパイル通すためにコメント。あとで調べましょう 415 // とりあえずコンパイル通すためにコメント。あとで調べましょう
399 // gSprite_DefSprite(SP_METER, "name", (float)(106.0*(game->jiki->speed/game->jiki->speed_max)), 34.0, 100); 416 // gSprite_DefSprite(SP_METER, "name", (float)(106.0*(game->jiki->speed/game->jiki->speed_max)), 34.0, 100);
400 417
401 gSprite_PutSprite(SP_METER, 400, 400, TEST_Z_GRID); 418 gSprite_PutSprite(true,SP_METER, 400, 400, TEST_Z_GRID, 0);
402 419
403 /* km/h */ 420 /* km/h */
404 gSprite_PutSprite(KM, 470, 350, TEST_Z_GRID); 421 gSprite_PutSprite(true, KM, 470, 350, TEST_Z_GRID, 0);
405 422
406 /* Rap */ 423 /* Rap */
407 gSprite_PutSprite(RAP, 80, 100, TEST_Z_GRID); 424 gSprite_PutSprite(true,RAP, 80, 100, TEST_Z_GRID, 0);
408 425
409 if (game->rap > MAXRAP) { 426 if (game->rap > MAXRAP) {
410 ranking = 1; 427 ranking = 1;
411 set_schedule_assumption(sche_game_main_goal); 428 set_schedule_assumption(sche_game_main_goal);
412 } 429 }
413 430
414 gFont_SetStringInt((int)(100.0*game->jiki->speed), 380, 350); 431 gFont_SetStringInt((int)(100.0*game->jiki->speed), 380, 350);
415 432
433 // 右にカーブ
416 if ((pad.right > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) { 434 if ((pad.right > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) {
417 car_swerve(game->jiki, 1); 435 car_swerve(game->jiki, 1);
418 } 436 }
437
438 // 左にカーブ
419 if ((pad.left > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) { 439 if ((pad.left > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) {
420 car_swerve(game->jiki, -1); 440 car_swerve(game->jiki, -1);
421 } 441 }
442
443 // 丸ボタン押したら加速
422 if (pad.circle > 0) { 444 if (pad.circle > 0) {
423 car_accelerate(game->jiki, 1); 445 car_accelerate(game->jiki, 1);
424 } 446 // game->jiki->body->xyz[0] ++; //テスト用でし
447 }
448
449 // バツボタン押したら減速
425 if (pad.cross > 0) { 450 if (pad.cross > 0) {
451 //game->jiki->body->xyz[2] ++;
426 car_accelerate(game->jiki, -1); 452 car_accelerate(game->jiki, -1);
427 } 453 }
428 454
429 if (pad.r1 == 1) { 455 if (pad.r1 == 1) {
430 game->camera_type = !game->camera_type; 456 game->camera_type = !game->camera_type;
431 } 457 }
458
459 // startボタン押したらpause画面へ
432 if (pad.st == 1) { 460 if (pad.st == 1) {
433 set_schedule_assumption(sche_game_main_pause); 461 set_schedule_assumption(sche_game_main_pause);
434 } 462 }
435 463
436 //S-dandy の obj てきな 464 //S-dandy の obj てきな
443 printf("sche_game_main_pause\n"); 471 printf("sche_game_main_pause\n");
444 472
445 static int select = 0; 473 static int select = 0;
446 474
447 field_update(game->jiki); 475 field_update(game->jiki);
448 carNode_draw(); 476
449 477 // とりあえず
478 // carNode_draw();
479
450 if (game->play_id == 1) { 480 if (game->play_id == 1) {
451 // 選択マーク 481 // 選択マーク
452 gSprite_PutSprite(17, 100, 190+select*100, TEST_Z_GRID); 482 gSprite_PutSprite(true, SELECT, 100 + 250, 190+select*100 + 10, TEST_Z_GRID + 400, 0);
453 483
454 gFont_SetString("BACK TO GAME", 200, 200); 484 gFont_SetString("BACK TO GAME", 200, 200);
455 gFont_SetString("GO TO TITLE", 200, 300); 485 gFont_SetString("GO TO TITLE", 200, 300);
456 } else { 486 } else {
457 gFont_SetString("Pause ...", 200, 200); 487 gFont_SetString("Pause ...", 200, 200);
487 gFont_SetString("You WIN!!", 200, 250); 517 gFont_SetString("You WIN!!", 200, 250);
488 else 518 else
489 gFont_SetString("You Lose...", 200, 250); 519 gFont_SetString("You Lose...", 200, 250);
490 #endif 520 #endif
491 521
492
493 // 宣言では引数が二つだったから、第一引数に game を入れてみた 522 // 宣言では引数が二つだったから、第一引数に game を入れてみた
494 car_update(game, game->jiki); 523 car_update(game, game->jiki);
524
495 field_update(game->jiki); 525 field_update(game->jiki);
526
496 carNode_draw(); 527 carNode_draw();
497 camera_update( game, (FMATRIX)(game->jiki->body->matrix) ); 528
529 // ちょっとコメントアウト
530 // camera_update( game, (FMATRIX)(game->jiki->body->matrix) );
498 531
499 if (pad.st == 1) { 532 if (pad.st == 1) {
500 set_schedule_assumption(sche_game_main_finish); 533 set_schedule_assumption(sche_game_main_finish);
501 } 534 }
502 } 535 }
517 gFont_SetString("GAME OVER ...", 200, 200); 550 gFont_SetString("GAME OVER ...", 200, 200);
518 551
519 if (pad.st == 1) { 552 if (pad.st == 1) {
520 set_schedule_assumption(sche_game_opening); 553 set_schedule_assumption(sche_game_opening);
521 } 554 }
522
523 } 555 }
524 556
525 // 適当に作りました 557 // 適当に作りました
526 void wait_sync(Game *game) 558 void wait_sync(Game *game)
527 { 559 {
536 568
537 void 569 void
538 schedule(Game *game) 570 schedule(Game *game)
539 { 571 {
540 flip(); 572 flip();
573
541 printf("----------------------\n"); 574 printf("----------------------\n");
542 printf("schedule()\n"); 575 printf("schedule()\n");
543 576
544 sche_func(game); 577 sche_func(game);
545 578
550 unset_schedule(); 583 unset_schedule();
551 } 584 }
552 585
553 wait_sync(game); 586 wait_sync(game);
554 swap_dbuff(); 587 swap_dbuff();
588
589 // この関数はなんなのかな
555 sjoy_poll(); 590 sjoy_poll();
556 591
557 ps2util_sprite_Draw(); 592 ps2util_sprite_Draw();
558 gSprite_Draw_Reset(); 593 gSprite_Draw_Reset();
559 gFont_Draw_Reset(); 594 gFont_Draw_Reset();