void menu_draw(Entity *ent) { MenuEntityData *data = entity_data(ent); if (data->logo) { draw_sprite(data->logo, -0.4, 0.35, 6, 0); } draw_textf(game.default_font, al_map_rgb(255, 255, 255), 0, 0, MENU_FONT_SIZE, TEXT_HALIGN_RIGHT, "IP: "); textbox_draw(&data->server, 0, 0); draw_textf(game.default_font, al_map_rgb(255, 255, 255), 0, -1, MENU_FONT_SIZE, TEXT_HALIGN_RIGHT, "PORT: "); textbox_draw(&data->port, 0, -1); draw_textf( game.default_font, al_map_rgb(255, 255, 255), 0, -3, MENU_FONT_SIZE, TEXT_HALIGN_CENTER, "Aperte ENTER para conectar" ); draw_textf( game.default_font, al_map_rgb(255, 255, 255), 0, -4.5, MENU_FONT_SIZE / 2, TEXT_HALIGN_CENTER, "Código e sprites por Leonardo Giovanni Scur" ); }
virtual void render(int x, int y, int w) { mitem::render(x, y, w); if(image || altfont) { int xs = 0; if(image) { glBindTexture(GL_TEXTURE_2D, image->id); glDisable(GL_BLEND); glColor3f(1, 1, 1); xs = (FONTH*image->xs)/image->ys; glBegin(GL_TRIANGLE_STRIP); glTexCoord2f(0, 0); glVertex2f(x, y); glTexCoord2f(1, 0); glVertex2f(x+xs, y); glTexCoord2f(0, 1); glVertex2f(x, y+FONTH); glTexCoord2f(1, 1); glVertex2f(x+xs, y+FONTH); glEnd(); xtraverts += 4; glEnable(GL_BLEND); } draw_text(text, !image || *text == '\t' ? x : x+xs + FONTH/2, y); if(altfont && strchr(text, '\a')) { char *r = newstring(text), *re, *l = r; while((re = strchr(l, '\a')) && re[1]) { *re = '\0'; x += text_width(l); l = re + 2; pushfont(altfont->name); draw_textf("%c", x, y, re[1]); popfont(); } delete[] r; } if(image && isselection() && !hidebigmenuimages && image->ys > FONTH) { w += FONTH; int xs = (2 * VIRTW - w) / 5, ys = (xs * image->ys) / image->xs; x = (6 * VIRTW + w - 2 * xs) / 4; y = VIRTH - ys / 2; blendbox(x - FONTH, y - FONTH, x + xs + FONTH, y + ys + FONTH, false); glBindTexture(GL_TEXTURE_2D, image->id); // I just copy&pasted this... glDisable(GL_BLEND); glColor3f(1, 1, 1); glBegin(GL_TRIANGLE_STRIP); glTexCoord2f(0, 0); glVertex2f(x, y); glTexCoord2f(1, 0); glVertex2f(x+xs, y); glTexCoord2f(0, 1); glVertex2f(x, y+ys); glTexCoord2f(1, 1); glVertex2f(x+xs, y+ys); glEnd(); xtraverts += 4; glEnable(GL_BLEND); } } else mitemmanual::render(x, y, w); }
int main() { char filename[] = "cardioid.png"; struct image *i; int x,y; double a, r; i = draw_create_image(300,300); draw_full(i, white); draw_color(i, black); for(x=-4;x<=4;x++) draw_textf(i, 150+x*30+3,150+3, 1, "%d", x); for(y=-4;y<=4;y++) draw_textf(i, 150+3,150-y*30+4, 1, "%d", y); draw_color(i,blue); for(x=0;x<300;x+=30) draw_line(i, x,0, x,i->height-1); for(y=0;y<300;y+=30) draw_line(i, 0,y, i->width-1,y); draw_box(i, 0,0, i->width-1,i->height-1); draw_color(i, black); for(x=-1;x<=1;x++) draw_line(i, 150+x,0, 150+x,i->height-1); for(y=-1;y<=1;y++) draw_line(i, 0,150+y, i->width-1,150+y); draw_color(i, green); /* Cardioid */ for(a = 0.0; a < 360.0; a += 0.5) { r = 0.0 - sin(0.5*a/180*M_PI)*120.0; draw_pixel(i, 150+sin(a/180*M_PI)*r, 150+cos(a/180*M_PI)*r, red); } draw_color(i, black); draw_textf(i, 5,i->height-16-2, 2, "Cardioid"); draw_write_png(i, filename); draw_free_image(i); return 0; }
void gameplayhud(int w, int h) { glPushMatrix(); glScalef(0.5f, 0.5f, 1); draw_textf("using: %s", 636*2, h*2-256+149, selected ? selected->name : "(none)"); // temp glPopMatrix(); settexture("packages/hud/hud_rpg.png", 3); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); quad(0, h-128, 768, 128); settexture("packages/hud/hbar.png", 3); glColor4f(1, 0, 0, 0.5f); quad(130, h-128+57, 193*playerobj->s_hp/playerobj->eff_maxhp(), 17); glColor4f(0, 0, 1, 0.5f); quad(130, h-128+87, 193*playerobj->s_mana/playerobj->eff_maxmana(), 17); }
/** * Draws the current time and duration of the song to the screen. */ void update_track_data() { draw_textf(buffer, help_text_x, help_text_y4, TXT_WHITE, -1, -1, TXT_REGULAR, TXT_CENTER, "%ld:%02ld/%d:%02d", midi_time / 60, midi_time % 60, length / 60, length % 60); }
/** * Updates the display to show what song is currently playing. */ void update_song_data() { draw_textf(buffer, help_text_x, help_text_y3, TXT_WHITE, -1, -1, TXT_REGULAR, TXT_CENTER, "%d/%d: %s", track_n + 1, ALL_MUSIC_AMOUNT, CURR_TRACK->name); }