void paddle_game_init(void) { al_hide_mouse_cursor(t3f_display); /* place paddles */ paddle[0].x = 32.0; paddle[0].y = 240.0 - 64.0 / 2.0; paddle[0].object = t3f_create_collision_object(0, 0, 16, 64, 32, 32, 0); t3f_move_collision_object_xy(paddle[0].object, paddle[0].x, paddle[0].y); paddle[0].active = true; paddle[1].x = 640.0 - 32.0 - 16.0; paddle[1].y = 240.0 - 64.0 / 2.0; paddle[1].object = t3f_create_collision_object(0, 0, 16, 64, 32, 32, 0); t3f_move_collision_object_xy(paddle[1].object, paddle[1].x, paddle[1].y); paddle[1].active = true; /* place ball */ ball.object = t3f_create_collision_object(0, 0, 16, 16, 32, 32, 0); paddle_init_ball(1.0); /* reset scores */ score[0] = 0; score[1] = 0; t3f_srand(&rng_state, time(0)); paddle_state = EXAMPLE_STATE_GAME; t3f_play_music("data/music/game.xm"); }
int demo_initialize(int argc, char * argv[]) { if(!t3f_initialize(640, 480, 60.0, "Paintball Party 2 Tech Demo 2", demo_logic, demo_render, T3F_DEFAULT | T3F_USE_MOUSE | T3F_USE_JOYSTICK)) { return 0; } demo_font = al_load_bitmap_font("demo_font.png"); if(!demo_font) { printf("Failed to load font!\n"); return 0; } t3f_3d_set_projection(&demo_camera.projection, 1.0, 1.0, 320.0, 240.0, 640, 640); t3f_3d_select_projection(&demo_camera.projection); demo_camera.x = 0.0; demo_camera.y = 0.0; demo_camera.z = 0.0; demo_camera.vx = 0; demo_camera.vy = 0; demo_camera.vw = al_get_display_width() / 2; demo_camera.vh = al_get_display_height() / 2; demo_camera.flags = 0; t3f_3d_set_projection(&demo_camera.projection, 0.5, 0.5, 320.0, 240.0, 640, 640); t3f_3d_select_projection(&demo_camera.projection); demo_tileset = t3f_load_tileset("export.ots"); if(!demo_tileset) { return 0; } demo_tilemap = t3f_load_tilemap("export.otm"); if(!demo_tilemap) { return 0; } demo_tilemap->tileset = demo_tileset; demo_collision_tilemap = t3f_load_collision_tilemap("export.ocm"); if(!demo_collision_tilemap) { return 0; } sprite_ani[DEMO_SPRITE_STATE_STAND_RIGHT] = load_animation("mario_sr.ani"); sprite_ani[DEMO_SPRITE_STATE_WALK_RIGHT] = load_animation("mario_wr.ani"); sprite_ani[DEMO_SPRITE_STATE_JUMP_RIGHT] = load_animation("mario_jr.ani"); sprite_ani[DEMO_SPRITE_STATE_FALL_RIGHT] = load_animation("mario_fr.ani"); sprite_ani[DEMO_SPRITE_STATE_DUCK_RIGHT] = load_animation("mario_dr.ani"); sprite_ani[DEMO_SPRITE_STATE_STAND_LEFT] = load_animation("mario_sl.ani"); sprite_ani[DEMO_SPRITE_STATE_WALK_LEFT] = load_animation("mario_wl.ani"); sprite_ani[DEMO_SPRITE_STATE_JUMP_LEFT] = load_animation("mario_jl.ani"); sprite_ani[DEMO_SPRITE_STATE_FALL_LEFT] = load_animation("mario_fl.ani"); sprite_ani[DEMO_SPRITE_STATE_DUCK_LEFT] = load_animation("mario_dl.ani"); if(!sprite_ani) { return 0; } platform_ani = load_animation("platform.ani"); if(!sprite_ani) { return 0; } platform.angle = 0.0; platform.x = 320 + cos(platform.angle) * 48.0; platform.y = 240 + sin(platform.angle) * 48.0; platform.cp = t3f_create_collision_object(0, 0, al_get_bitmap_width(platform_ani->bitmap[0]) * 2, al_get_bitmap_height(platform_ani->bitmap[0]) * 2, 32, 32, 0); platform.sticky = NULL; /* player.x = 0.0; player.y = 0.0; player.cp = t3f_create_collision_object(0, 0, 32, 32, 32, 32, 0); player.sticky = NULL; player.floor = 0; */ player.cp = t3f_create_collision_object(5, 0, 22, 56, 32, 32, 0); player.x = 64.0; player.y = 64.0; player.vx = 0.0; player.vy = 0.0; player.sticky = NULL; player.floor = false; player.state = DEMO_SPRITE_STATE_STAND_RIGHT; player.frame = 0; controller = t3f_create_controller(4); if(!controller) { return 0; } al_clear_to_color(al_map_rgb(255, 0, 0)); al_flip_display(); t3f_bind_controller(controller, DEMO_CONTROLLER_UP); al_clear_to_color(al_map_rgb(0, 255, 0)); al_flip_display(); t3f_bind_controller(controller, DEMO_CONTROLLER_DOWN); al_clear_to_color(al_map_rgb(0, 0, 255)); al_flip_display(); t3f_bind_controller(controller, DEMO_CONTROLLER_LEFT); al_clear_to_color(al_map_rgb(0, 0, 0)); al_flip_display(); t3f_bind_controller(controller, DEMO_CONTROLLER_RIGHT); return 1; }