void player_render() { if(!player) return; shapesprite_render(player->shape, player->x / 1000 - camera_x / 1000, player->y / 1000); //d_render_offset(-(800-256), -(480/2+30)); //if(boss_shooting) // shape_copy_render(flamethrower); d_render_offset(-(player->x / 1000 - camera_x / 1000)-4, -(player->y / 1000)+6); shape_copy_rotate(player->gun, player->gun_angle); shape_copy_render(player->gun); shape_copy_rotate(player->gun, -player->gun_angle); d_render_offset(-((player->x/1000) - camera_x/1000 )-16, -(player->y/1000+(player->gun_angle?player->gun_angle/20:0))); if(grenade_time) { d_render_tint(0x0, 0xFF, 0x0, 0xFF); shape_copy_render(player->grenade_shape); d_render_tint(0xFF, 0xFF, 0xFF, 0xFF); } d_render_offset(0, 0); if(gamestate_current()!=GAMESTATE_GAME) return; bullet_loop(&player->bullet); grenade_loop(&player->grenade); player_draw_stat(); return; }
int main(int argc, char **argv) { d_init_custom("AutoKorg", WINDOW_WIDTH, WINDOW_HEIGHT, 0, "robot", NULL); //Calling an initiating function. Said function creates a window //with resolution 800x600, that's now full-screen and with the title AutoKorg. DARNIT_FONT *kgfont = d_font_load("KGRayofSunshine.ttf", 60, 256, 256); //We create a font handle. DARNIT_TEXT_SURFACE *papper = d_text_surface_new(kgfont, 100 , 800, 10, 0); //Here we create a handle to a text surface, using the font previously handled. /*pthread_t threads[1]; hello = pthread_create(&threads[0], NULL, musikka, (void *) NULL);*/ d_cursor_show(1); //Call a funciton which shows the cursor in the window. initiate_buttons(); initiate_serial_port(); for(;;) { //Program loop. d_render_begin(); //Call to start rendering. d_render_blend_enable(); //Enable blend, a call to a function apparently needed. if(state < DISCO){ d_render_tint(255,255,255,255); } else { d_render_tint(rand() & 0xF0, rand() & 0xF0, rand() & 0xF0, 255); } //Another call to a needed function. Don't question the libdarnit. //d_text_surface_string_append(papper, svar); do_stuff(papper); //Call to a function which does stuff. draw_interface(); //Draws us some graphics. d_render_end(); //Call to a function which you do at the stop of rendering. d_loop(); //Call to a function that is to be called inbetween frames. d_text_surface_reset(papper); //Lastly we clear the textsurface. } return 0; //End of show. }
void view_mouse_draw(UI_WIDGET *widget, unsigned int type, UI_EVENT *e) { unsigned char r, g, b, a; d_render_tint_get(&r, &g, &b, &a); d_render_tint(255, 255, 255, 255); d_render_blend_enable(); d_render_tile_blit(mouse_tilesheet, 0, e->mouse->x, e->mouse->y); d_render_blend_disable(); d_render_tint(r, g, b, a); }
void ui_pane_render(UI_PANE *pane) { unsigned char r, g, b, a; d_render_tint_get(&r, &g, &b, &a); d_render_tint(pane->background_color.r, pane->background_color.g, pane->background_color.b, pane->background_color.a); d_render_rect_draw(pane->background, 1); d_render_tint(r, g, b, a); d_render_line_draw(pane->border, 4); if(pane->root_widget != NULL) pane->root_widget->render(pane->root_widget); }
void map_minimap_render(UI_WIDGET *widget) { //override for imagebox render, to render viewport border on minimap ui_imageview_render(widget); unsigned char r, g, b, a; d_render_tint_get(&r, &g, &b, &a); d_render_tint(255, 255, 255, 255); d_render_line_draw(minimap_viewport, 4); struct MAP_FLARE_LIST *l; for(l=map_flares; l; l=l->next) if(l->index>=20) { d_render_tint(player_color[l->player].r, player_color[l->player].g, player_color[l->player].b, 255); d_render_circle_draw(l->minimap_circle); } d_render_tint(r, g, b, a); }
int main(int argc, char **argv) { int i, j; struct GRAPH *g, *tree=NULL; struct VERTEX *v; struct POINT p; DARNIT_KEYS keys; srand(time(NULL)); d_init("Graphs", "uppg8", NULL); for(i=0; i<256; i++) { circle[i]=d_render_circle_new(32, 1); line[i]=d_render_line_new(1, 1); } for(j=0; j<4; j++) for(i=0; i<7; i++) { p.x=i*100+50;//(rand()%80)*10; p.y=j*100+50;//(rand()%48)*10; v=graph_add_vertex(&graph, p); for(g=graph; g; g=g->next) if(!(rand()%6)) graph_add_edge(v, g->vertex, rand()%100, DIRECTION_DOUBLE); } tree=graph_prim(graph); draw_graph(graph); for(g=graph;;) { keys=d_keys_get(); if(keys.start) { g=g==graph?tree:graph; draw_graph(g); } d_keys_set(keys); d_render_begin(); d_render_tint(0xFF, 0xFF, 0xFF, 0xFF); for(i=0; i<vertices; i++) d_render_circle_draw(circle[i]); for(i=0; i<edges; i++) { d_render_tint(length[i], 0x7F, 0x0, 0xFF); d_render_line_draw(line[i], 1); } d_render_end(); d_loop(); } d_quit(); return 0; }
void map_flare_draw() { struct MAP_FLARE_LIST **ll, *l; int j=0; for(ll=&map_flares; *ll; ll=&((*ll)->next), j++) { l=*ll; if(d_time_get()>l->created+l->duration) { *ll=l->next; int i; for(i=0; i<4; i++) d_render_circle_free(l->circle[i]); d_render_circle_free(l->minimap_circle); free(l); if(*ll) continue; else break; } d_render_tint(player_color[l->player].r, player_color[l->player].g, player_color[l->player].b, 255); d_render_circle_draw(l->circle[l->index/10]); l->index++; if(l->index>=40) l->index=0; } }
void map_render() { int i; d_render_offset(camera_x / 1000, 0); for(i=0; i<map.sections; i++) d_render_line_draw(map.line[i], map.lines[i]); for(i=0; i<map.enemies; i++) enemy_render(map.enemy[i]); for(i=0; i<map.powerups; i++) { d_render_tint(powerup_color[map.powerup[i].type].r, powerup_color[map.powerup[i].type].g, powerup_color[map.powerup[i].type].b, 0xFF); if(!map.powerup[i].taken) { d_render_offset(-(map.powerup[i].x) + camera_x / 1000, -(map.powerup[i].y)); shape_copy_render(map.powerup[i].shape); } } d_render_tint(0xFF, 0xFF, 0xFF, 0xFF); d_render_offset(0, 0); }
void player_draw_stat() { char buff[32]; sprintf(buff, "Score: %.8i\n", score); d_text_surface_reset(player->scoretext); d_text_surface_string_append(player->scoretext, buff); sprintf(buff, "Grenades: %.2i", player->grenades); d_text_surface_reset(player->grenadestext); d_text_surface_string_append(player->grenadestext, buff); d_render_rect_move(player->healthbar, 0, 0, 0, player->health * 2, PLAYER_HEALTH_BAR_HEIGHT); d_render_tint(255 - player->health * 255 / 100, player->health * 255 / 100, 0, 255); d_render_offset(0, 0); d_render_rect_draw(player->healthbar, 1); d_render_tint(255, 255, 255, 255); d_text_surface_draw(player->scoretext); d_text_surface_draw(player->grenadestext); return; }
void map_draw(int draw_powergrid) { int i; for(i=0; i<map->layers-2; i++) d_tilemap_draw(map->layer[i].tilemap); if(config.alpha) d_render_blend_enable(); d_tilemap_draw(map->layer[map->layers-2].tilemap); d_render_blend_disable(); //d_tilemap_draw(map->layer[map->layers-1].tilemap); d_render_offset(map->cam_x, map->cam_y); if(config.grid) { d_render_tint(18, 18, 18, 255); for(i=0; i<map_grid_chunks; i++) if(map_grid_chunk[i].lines&&map_grid_chunk[i].x+map_grid_chunk[i].w>map->cam_x&&map_grid_chunk[i].x<map->cam_x+platform.screen_w-sidebar_width&&map_grid_chunk[i].y+map_grid_chunk[i].h>map->cam_y&&map_grid_chunk[i].y<map->cam_y+platform.screen_h) d_render_line_draw(map_grid_chunk[i].lines, map_grid_chunk[i].size); d_render_tint(255, 255, 255, 255); } d_tilemap_draw(map->layer[map->layers-1].tilemap); if(powergrid&&(draw_powergrid||config.powergrid)) d_render_line_draw(powergrid, powergrid_lines); map_flare_draw(); if(map_selected.index>-1&&map_selected.building) { int x=map->layer[map->layers-2].tile_w*(map_selected.index%map->layer[map->layers-2].tilemap->w); int y=map->layer[map->layers-2].tile_h*(map_selected.index/map->layer[map->layers-2].tilemap->w); d_render_tint(player_color[map_selected.owner].r, player_color[map_selected.owner].g, player_color[map_selected.owner].b, 255); if(map_selected.circle) d_render_circle_draw(map_selected.circle); d_render_offset(map->cam_x-x, map->cam_y-y); d_render_line_draw(map_selected.border, 4); } d_render_tint(255, 255, 255, 255); d_render_offset(0, 0); }
void texteffect_loop() { unsigned i, j; int k; for (i = j = 0; i < ws.te.max_te && j < ws.te.te_used; i++) { if (!ws.te.te[i].time_left) continue; j++; k = (ws.te.te[i].time_left << 8) / ws.te.te[i].total_time; k = (k < 0) ? 0 : k; k = (k > 255) ? 255 : k; d_render_offset(ws.camera.x, ws.camera.y - (k >> 2)); d_render_tint(255, 255, 255, k); d_text_surface_draw(ws.te.te[i].s); ws.te.te[i].time_left -= d_last_frame_time(); if (ws.te.te[i].time_left <= 0) texteffect_del(i); } d_render_tint(255, 255, 255, 255); return; }
void ambiance_draw() { int flicker_offset; if (ws.ambiance.flicker.flicker_interval) { if (ws.ambiance.flicker.flicker) { ws.ambiance.flicker.flicker += d_last_frame_time(); flicker_offset = ws.ambiance.flicker.flicker; if (flicker_offset >= ws.ambiance.flicker.flicker_duration / 2) flicker_offset = ws.ambiance.flicker.flicker_duration / 2 - flicker_offset; flicker_offset *= ws.ambiance.flicker.flicker_offset; flicker_offset /= ws.ambiance.flicker.flicker_duration; ws.ambiance.flicker.flicker = flicker_offset; } } if (ws.ambiance.flicker.filter_active) { d_render_offset(0, 0); d_render_tint(ws.ambiance.flicker.r, ws.ambiance.flicker.g, ws.ambiance.flicker.b, ws.ambiance.flicker.a + ws.ambiance.flicker.flicker); d_render_rect_draw(ws.ambiance.flicker.rect, 1); } return; }
int main(int argc, char **argv) { char font_path[512]; char *tmp; bool fullscreen = false; if (argc >= 2 && !strcmp(argv[1], "-fs")) fullscreen = true; d_init_custom("Fascister i grönsakslandet ~ //achtung fulkod", DISPLAY_WIDTH, DISPLAY_HEIGHT, fullscreen, "birdie26", NULL); sprintf(font_path, "%s", d_fs_exec_path()); chdir(tmp = dirname(font_path)); sprintf(font_path, "%s/res/font.ttf", tmp); gfx.font.large = d_font_load(font_path, 36, 256, 256); gfx.font.small = d_font_load(font_path, 16, 256, 256); s = malloc(sizeof(*s)); ui_init(4); menu_init(); gameroom_init(); lobby_init(); character_room_init(); game_over_init(); gamestate_pane[GAME_STATE_MENU] = &menu.pane; gamestate_pane[GAME_STATE_SELECT_NAME] = &select_name.pane; gamestate_pane[GAME_STATE_CHARACTERS] = &character_room.pane; gamestate_pane[GAME_STATE_LOBBY] = &lobby.pane; gamestate_pane[GAME_STATE_ENTER_IP] = &enter_ip.pane; gamestate_pane[GAME_STATE_GAMEROOM] = &gameroom.pane; gamestate_pane[GAME_STATE_GAME_OVER] = &game_over.pane; signal(SIGINT, d_quit); //lol network_init(PORT); d_cursor_show(1); d_render_clearcolor_set(0x7F, 0x7F, 0x7F); if(argc > 1) { snprintf(player_name, NAME_LEN_MAX, "%s", argv[1]); game_state(GAME_STATE_MENU); } else game_state(GAME_STATE_SELECT_NAME); while(gamestate!=GAME_STATE_QUIT) { if(state_network_handler[gamestate]) state_network_handler[gamestate](); d_render_begin(); d_render_blend_enable(); d_render_tint(20, 20, 20, 255); if(gamestate_pane[gamestate]) ui_events(gamestate_pane[gamestate], 1); d_render_tint(255, 255, 255, 255); if(state_render[gamestate]) state_render[gamestate](); if(state_network_handler[gamestate]) state_network_handler[gamestate](); d_render_end(); d_loop(); } d_quit(); return 0; }