示例#1
0
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");
}
示例#2
0
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;
}