int main(int argc, char * argv[]) { if(!t3f_initialize("ex_tilemap", 640, 480, 60.0, logic, render, T3F_USE_KEYBOARD | T3F_USE_MOUSE, NULL)) { return 1; } font = al_load_bitmap_font("data/font.png"); if(!font) { return 1; } tileset = t3f_load_tileset("data/tileset.tts"); if(!tileset) { return 1; } tilemap = t3f_load_tilemap("data/tilemap.ttm"); if(!tilemap) { return 1; } camera.x = 0; camera.y = 0; camera.z = 0; t3f_run(); return 0; }
int main(int argc, char * argv[]) { if(!t3f_initialize("ex_gui", 640, 480, 60.0, logic, render, T3F_USE_KEYBOARD | T3F_USE_MOUSE, NULL)) { return 1; } bitmap = al_load_bitmap("data/bitmap.png"); if(!bitmap) { return 1; } font = al_load_bitmap_font("data/font.png"); if(!font) { return 1; } t3f_set_gui_driver(NULL); page = t3f_create_gui(0, 0); t3f_add_gui_text_element(page, red_proc, "Red", font, 16, 0, t3f_color_white, T3F_GUI_ELEMENT_SHADOW); t3f_add_gui_text_element(page, green_proc, "Green", font, 16, 24, t3f_color_white, T3F_GUI_ELEMENT_SHADOW); t3f_add_gui_text_element(page, blue_proc, "Blue", font, 16, 48, t3f_color_white, T3F_GUI_ELEMENT_SHADOW); t3f_add_gui_image_element(page, black_proc, bitmap, 16, 120, T3F_GUI_ELEMENT_SHADOW); t3f_run(); return 0; }
/* initialize our app, load graphics, etc. */ bool app_initialize(APP_INSTANCE * app, int argc, char * argv[]) { /* initialize T3F */ if(!t3f_initialize(T3F_APP_TITLE, 640, 480, 60.0, app_logic, app_render, T3F_DEFAULT, app)) { printf("Error initializing T3F\n"); return false; } app->state = 0; return true; }
bool mapper_initialize(void) { const char * val = NULL; if(!t3f_initialize("T3F Mapper", vwidth, vheight, 60.0, mapper_logic, mapper_render, T3F_USE_KEYBOARD | T3F_USE_MOUSE, NULL)) { return false; } al_set_new_bitmap_flags(ALLEGRO_NO_PREMULTIPLIED_ALPHA); al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA); mapper_font = al_load_bitmap_font("fonts/basic_font.png"); if(!mapper_font) { return false; } /* load config */ val = al_get_config_value(t3f_config, "tileset", "width"); if(val) { mapper_tile_width = atoi(val); } val = al_get_config_value(t3f_config, "tileset", "height"); if(val) { mapper_tile_height = atoi(val); } val = al_get_config_value(t3f_config, "tilemap", "width"); if(val) { mapper_map_width = atoi(val); } val = al_get_config_value(t3f_config, "tilemap", "height"); if(val) { mapper_map_height = atoi(val); } val = al_get_config_value(t3f_config, "tilemap", "layers"); if(val) { mapper_map_layers = atoi(val); } mapper_camera.x = 0; mapper_camera.y = 0; mapper_camera.z = 0; return true; }
bool csd_initialize(int argc, char * argv[]) { if(!t3f_initialize("Crystal Stacker Deluxe", 640, 480, 60.0, csd_logic, csd_render, T3F_DEFAULT | T3F_USE_MOUSE | T3F_RESIZABLE | T3F_FORCE_ASPECT)) { return false; } al_init_ttf_addon(); if(!csd_load_images()) { return false; } csd_read_config(); csd_setup_controllers(); if(!csd_title_setup()) { return false; } srand(time(0)); return true; }
int main(int argc, char * argv[]) { int i; char fn[1024] = {0}; if(!t3f_initialize("ex_atlas", 640, 480, 60.0, logic, render, T3F_USE_KEYBOARD | T3F_USE_MOUSE, NULL)) { return 1; } t3f_srand(&rng_state, time(0)); /* load bitmaps into sprite sheet */ atlas = t3f_create_atlas(512, 512); if(!atlas) { printf("Failed to create atlas!\n"); return 0; } for(i = 0; i < 8; i++) { sprintf(fn, "data/%d.png", i); bitmap[i] = al_load_bitmap(fn); if(!bitmap[i]) { return 1; } t3f_add_bitmap_to_atlas(atlas, &bitmap[i], T3F_ATLAS_SPRITE); } for(i = 0; i < 1024; i++) { object[i].x = t3f_drand(&rng_state) * 640.0; object[i].y = t3f_drand(&rng_state) * 480.0; object[i].vx = t3f_drand(&rng_state) * 4.0 - 2.0; object[i].vy = t3f_drand(&rng_state) * 4.0 - 2.0; object[i].bitmap = t3f_rand(&rng_state) % 8; } t3f_run(); return 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; }
bool paddle_initialize(void) { /* initialize the T^3 Framework - create 640x480 display - logic runs at 60.0 FPS, typical game refresh rate - name the program "Paper Paddle" (displayed as window title when in windowed mode) - use paddle_logic() and paddle_render() to handle logic and rendering - use keyboard (T3F_USE_KEYBOARD), mouse (T3F_USE_MOUSE), sound (T3F_USE_SOUND), and fullscreen mode (T3F_USE_FULLSCREEN) */ if(!t3f_initialize("Paper Paddle", 640, 480, 60.0, paddle_logic, paddle_render, T3F_USE_KEYBOARD | T3F_USE_MOUSE | T3F_USE_SOUND, NULL)) { printf("Failed to initialize T^3 Framework!\n"); return false; } /* load bitmaps */ paddle_bitmap[EXAMPLE_BITMAP_BG] = al_load_bitmap("data/graphics/bg.png"); if(!paddle_bitmap[EXAMPLE_BITMAP_BG]) { printf("Failed to load image!\n"); return false; } paddle_bitmap[EXAMPLE_BITMAP_LOGO] = al_load_bitmap("data/graphics/logo.png"); if(!paddle_bitmap[EXAMPLE_BITMAP_LOGO]) { printf("Failed to load image!\n"); return false; } paddle_bitmap[EXAMPLE_BITMAP_PADDLE] = al_load_bitmap("data/graphics/paddle.png"); if(!paddle_bitmap[EXAMPLE_BITMAP_PADDLE]) { printf("Failed to load image!\n"); return false; } paddle_bitmap[EXAMPLE_BITMAP_BALL] = al_load_bitmap("data/graphics/ball.png"); if(!paddle_bitmap[EXAMPLE_BITMAP_BALL]) { printf("Failed to load image!\n"); return false; } /* load fonts */ paddle_font[EXAMPLE_FONT_MENU] = al_load_bitmap_font("data/fonts/title_font.png"); if(!paddle_font[EXAMPLE_FONT_MENU]) { printf("Failed to load font!\n"); return false; } paddle_font[EXAMPLE_FONT_GAME] = al_load_bitmap_font("data/fonts/game_font.png"); if(!paddle_font[EXAMPLE_FONT_GAME]) { printf("Failed to load font!\n"); return false; } /* load sound samples */ paddle_sample[EXAMPLE_SAMPLE_HIT] = al_load_sample("data/sounds/hit.ogg"); if(!paddle_sample[EXAMPLE_SAMPLE_HIT]) { printf("Failed to load sample!\n"); return false; } paddle_sample[EXAMPLE_SAMPLE_SCORE] = al_load_sample("data/sounds/score.ogg"); if(!paddle_sample[EXAMPLE_SAMPLE_SCORE]) { printf("Failed to load sample!\n"); return false; } /* create GUI */ t3f_set_gui_driver(NULL); paddle_menu = t3f_create_gui(0, 0); t3f_add_gui_text_element(paddle_menu, paddle_menu_play_proc, "Play", paddle_font[EXAMPLE_FONT_MENU], 320, 240, t3f_color_black, T3F_GUI_ELEMENT_CENTRE); t3f_add_gui_text_element(paddle_menu, paddle_menu_quit_proc, "Quit", paddle_font[EXAMPLE_FONT_MENU], 320, 270, t3f_color_black, T3F_GUI_ELEMENT_CENTRE); return true; }
bool initialize(int argc, char * argv[]) { const char * val; ALLEGRO_BITMAP * bp; process_arguments(argc, argv); if(!t3f_initialize(640, 480, 60.0, "The Devil", logic, render, T3F_DEFAULT | T3F_USE_MOUSE)) { return false; } t3f_3d_set_projection(&projection, 0, 0, 640, 480, 320, 240); t3f_3d_select_projection(&projection); animation[ANIMATION_PLAYER] = t3f_load_animation_from_bitmap("data/player.png"); if(!animation[ANIMATION_PLAYER]) { return false; } animation[ANIMATION_DEMON] = t3f_load_animation_from_bitmap("data/demon.png"); if(!animation[ANIMATION_DEMON]) { return false; } animation[ANIMATION_ARCHDEMON] = t3f_load_animation_from_bitmap("data/archdemon.png"); if(!animation[ANIMATION_ARCHDEMON]) { return false; } animation[ANIMATION_PLAYER_SHOT] = t3f_load_animation_from_bitmap("data/player_shot.png"); if(!animation[ANIMATION_PLAYER_SHOT]) { return false; } animation[ANIMATION_ENEMY_SHOT] = t3f_load_animation_from_bitmap("data/enemy_shot.png"); if(!animation[ANIMATION_ENEMY_SHOT]) { return false; } animation[ANIMATION_SPIRIT] = t3f_create_animation(); if(!animation[ANIMATION_SPIRIT]) { return false; } bp = al_load_bitmap("data/spirit0.png"); t3f_animation_add_bitmap(animation[ANIMATION_SPIRIT], bp); t3f_animation_add_frame(animation[ANIMATION_SPIRIT], 0, 0, 0, 0, al_get_bitmap_width(bp), al_get_bitmap_height(bp), 0, 5); bp = al_load_bitmap("data/spirit1.png"); t3f_animation_add_bitmap(animation[ANIMATION_SPIRIT], bp); t3f_animation_add_frame(animation[ANIMATION_SPIRIT], 1, 0, 0, 0, al_get_bitmap_width(bp), al_get_bitmap_height(bp), 0, 5); bp = al_load_bitmap("data/spirit2.png"); t3f_animation_add_bitmap(animation[ANIMATION_SPIRIT], bp); t3f_animation_add_frame(animation[ANIMATION_SPIRIT], 2, 0, 0, 0, al_get_bitmap_width(bp), al_get_bitmap_height(bp), 0, 5); animation[ANIMATION_LOGO] = t3f_load_animation_from_bitmap("data/logo.png"); if(!animation[ANIMATION_LOGO]) { return false; } animation[ANIMATION_TITLE] = t3f_load_animation_from_bitmap("data/title_logo.png"); if(!animation[ANIMATION_TITLE]) { return false; } sprite_sheet = al_create_bitmap(512, 512); if(!sprite_sheet) { return false; } t3f_start_sprite_sheet(sprite_sheet, T3F_SPRITE_SHEET_TYPE_SPRITES); t3f_add_animation_to_sprite_sheet(animation[ANIMATION_PLAYER]); t3f_add_animation_to_sprite_sheet(animation[ANIMATION_DEMON]); t3f_add_animation_to_sprite_sheet(animation[ANIMATION_ARCHDEMON]); t3f_add_animation_to_sprite_sheet(animation[ANIMATION_PLAYER_SHOT]); t3f_add_animation_to_sprite_sheet(animation[ANIMATION_ENEMY_SHOT]); t3f_add_animation_to_sprite_sheet(animation[ANIMATION_SPIRIT]); t3f_finish_sprite_sheet(); font[FONT_GAME] = al_load_bitmap_font("data/default_font.png"); if(!font[FONT_GAME]) { return false; } sample[SAMPLE_GAME_OVER] = al_load_sample("data/game_over.ogg"); if(!sample[SAMPLE_GAME_OVER]) { return false; } sample[SAMPLE_LEVEL_UP] = al_load_sample("data/level_up.ogg"); if(!sample[SAMPLE_LEVEL_UP]) { return false; } sample[SAMPLE_MAX_MULTIPLIER] = al_load_sample("data/max_multiplier.ogg"); if(!sample[SAMPLE_MAX_MULTIPLIER]) { return false; } sample[SAMPLE_HIGH_SCORE] = al_load_sample("data/high_score.ogg"); if(!sample[SAMPLE_HIGH_SCORE]) { return false; } sample[SAMPLE_TWIN_SHOT] = al_load_sample("data/twin_shot.ogg"); if(!sample[SAMPLE_TWIN_SHOT]) { return false; } sample[SAMPLE_TRIPLE_SHOT] = al_load_sample("data/triple_shot.ogg"); if(!sample[SAMPLE_TRIPLE_SHOT]) { return false; } sample[SAMPLE_POWERUP] = al_load_sample("data/powerup.ogg"); if(!sample[SAMPLE_POWERUP]) { return false; } sample[SAMPLE_SHOOT] = al_load_sample("data/shoot.ogg"); if(!sample[SAMPLE_SHOOT]) { return false; } sample[SAMPLE_HIT] = al_load_sample("data/hit.ogg"); if(!sample[SAMPLE_HIT]) { return false; } sample[SAMPLE_DIE] = al_load_sample("data/die.ogg"); if(!sample[SAMPLE_DIE]) { return false; } sample[SAMPLE_MULTIPLIER] = al_load_sample("data/multiplier.ogg"); if(!sample[SAMPLE_MULTIPLIER]) { return false; } cinema = load_cinema("data/intro.cin", 0); if(!cinema) { return false; } ending_cinema = load_cinema("data/ending.cin", 0); if(!ending_cinema) { return false; } level_color[0] = al_map_rgba(131, 0, 0, 255); level_color[1] = al_map_rgba(131, 22, 0, 255); level_color[2] = al_map_rgba(131, 46, 0, 255); level_color[3] = al_map_rgba(131, 68, 0, 255); level_color[4] = al_map_rgba(131, 99, 0, 255); level_color[5] = al_map_rgba(131, 126, 0, 255); level_color[6] = al_map_rgba(101, 131, 0, 255); level_color[7] = al_map_rgba(77, 131, 0, 255); level_color[8] = al_map_rgba(0, 131, 73, 255); level_color[9] = al_map_rgba(0, 105, 131, 255); level_color[10] = al_map_rgba(0, 135, 254, 255); hyperlink_set_driver(NULL); val = al_get_config_value(t3f_config, "Save Data", "High Score"); if(val) { high_score = atoi(val); } t3f_play_music("data/title.xm", 0.0, 0.0); state = STATE_LOGO; return true; }