Mercurial > hg > old > magoroku_racing
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(); |