mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-02-08 06:06:43 +01:00
lots of random changes
This commit is contained in:
parent
58dd22abfb
commit
380595e0ce
4 changed files with 91 additions and 13 deletions
68
intro.c
68
intro.c
|
@ -1,19 +1,75 @@
|
||||||
#include <allegro5/allegro.h>
|
#include <allegro5/allegro.h>
|
||||||
#include <allegro5/allegro_font.h>
|
#include <allegro5/allegro_font.h>
|
||||||
|
#include <math.h>
|
||||||
#include "intro.h"
|
#include "intro.h"
|
||||||
|
|
||||||
void Intro_Draw(struct Game *game) {
|
void Intro_Draw(struct Game *game) {
|
||||||
al_clear_to_color(al_map_rgb(0,0,0));
|
al_clear_to_color(al_map_rgb(0,0,0));
|
||||||
|
//printf("%f\n", ((-1*((game->intro.position)%al_get_display_width(game->display)))/(float)al_get_display_width(game->display)));
|
||||||
|
if (game->intro.in_animation)
|
||||||
|
al_draw_bitmap(game->intro.table, -1*(game->intro.page)*al_get_display_width(game->display) + cos(((-1*((game->intro.position)%al_get_display_width(game->display)))/(float)al_get_display_width(game->display))*(3.1415/2))*al_get_display_width(game->display), al_get_display_height(game->display)*((game->intro.position/3.0)/(float)al_get_display_width(game->display)), 0);
|
||||||
|
else
|
||||||
|
al_draw_bitmap(game->intro.table, -1*(game->intro.page)*al_get_display_width(game->display), al_get_display_height(game->display)*((game->intro.position/3.0)/(float)al_get_display_width(game->display)), 0);
|
||||||
al_draw_text(game->font, al_map_rgb(255,255,255), al_get_display_width(game->display)/2, al_get_display_height(game->display)/2, ALLEGRO_ALIGN_CENTRE, "Not implemented yet!");
|
al_draw_text(game->font, al_map_rgb(255,255,255), al_get_display_width(game->display)/2, al_get_display_height(game->display)/2, ALLEGRO_ALIGN_CENTRE, "Not implemented yet!");
|
||||||
DrawConsole(game);
|
//PrintConsole(game, "drawing");
|
||||||
al_flip_display();
|
if (game->intro.in_animation) {
|
||||||
al_rest(5.0);
|
//PrintConsole(game, "animating");
|
||||||
|
game->intro.position -= 5;
|
||||||
|
if (game->intro.position%al_get_display_width(game->display)==0) {
|
||||||
|
game->intro.in_animation = false;
|
||||||
|
PrintConsole(game, "Animation finished.");
|
||||||
|
}
|
||||||
|
else if (game->intro.position<=-3*al_get_display_width(game->display)) {
|
||||||
|
PrintConsole(game, "This was the last page.");
|
||||||
UnloadGameState(game);
|
UnloadGameState(game);
|
||||||
game->gamestate = GAMESTATE_LOADING;
|
game->gamestate = GAMESTATE_LOADING;
|
||||||
game->loadstate = GAMESTATE_MENU;
|
game->loadstate = GAMESTATE_MENU;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Intro_Load(struct Game *game) {}
|
void Intro_Load(struct Game *game) {}
|
||||||
int Intro_Keydown(struct Game *game, ALLEGRO_EVENT *ev) { return 0; }
|
int Intro_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
void Intro_Preload(struct Game *game) {}
|
if (ev->keyboard.keycode == ALLEGRO_KEY_ESCAPE) {
|
||||||
void Intro_Unload(struct Game *game) {}
|
UnloadGameState(game);
|
||||||
|
game->gamestate = GAMESTATE_LOADING;
|
||||||
|
game->loadstate = GAMESTATE_MENU;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!game->intro.in_animation) {
|
||||||
|
PrintConsole(game, "Animate page...");
|
||||||
|
game->intro.in_animation = true;
|
||||||
|
game->intro.page++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
void Intro_Preload(struct Game *game) {
|
||||||
|
game->intro.position = 0;
|
||||||
|
game->intro.page = 0;
|
||||||
|
game->intro.in_animation = false;
|
||||||
|
game->intro.table_bitmap = al_load_bitmap( "table.png" );
|
||||||
|
game->intro.table = al_create_bitmap(al_get_display_width(game->display)*4, al_get_display_height(game->display)*2);
|
||||||
|
al_set_target_bitmap(game->intro.table);
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, 0, 0, 0);
|
||||||
|
//game->intro.table_bitmap = al_load_bitmap( "loading.png" );
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, al_get_display_width(game->display), 0, ALLEGRO_FLIP_HORIZONTAL);
|
||||||
|
//game->intro.table_bitmap = al_load_bitmap( "menu.png" );
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, al_get_display_width(game->display)*2, 0, 0);
|
||||||
|
//game->intro.table_bitmap = al_load_bitmap( "table.png" );
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, al_get_display_width(game->display)*3, 0, ALLEGRO_FLIP_HORIZONTAL);
|
||||||
|
|
||||||
|
//game->intro.table_bitmap = al_load_bitmap( "loading.png" );
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, 0, al_get_display_height(game->display), ALLEGRO_FLIP_VERTICAL);
|
||||||
|
//game->intro.table_bitmap = al_load_bitmap( "loading.png" );
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, al_get_display_width(game->display), al_get_display_height(game->display), ALLEGRO_FLIP_VERTICAL | ALLEGRO_FLIP_HORIZONTAL);
|
||||||
|
//game->intro.table_bitmap = al_load_bitmap( "table.png" );
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, al_get_display_width(game->display)*2, al_get_display_height(game->display), ALLEGRO_FLIP_VERTICAL);
|
||||||
|
//game->intro.table_bitmap = al_load_bitmap( "menu.png" );
|
||||||
|
al_draw_bitmap(game->intro.table_bitmap, al_get_display_width(game->display)*3, al_get_display_height(game->display), ALLEGRO_FLIP_VERTICAL | ALLEGRO_FLIP_HORIZONTAL);
|
||||||
|
|
||||||
|
al_set_target_bitmap(al_get_backbuffer(game->display));
|
||||||
|
}
|
||||||
|
void Intro_Unload(struct Game *game) {
|
||||||
|
al_destroy_bitmap(game->intro.table_bitmap);
|
||||||
|
al_destroy_bitmap(game->intro.table);
|
||||||
|
}
|
||||||
|
|
14
main.c
14
main.c
|
@ -22,6 +22,7 @@ void PrintConsole(struct Game *game, char* text) {
|
||||||
//al_draw_bitmap_region(game->console, 0, al_get_bitmap_height(game->console)*0.2, al_get_bitmap_width(game->console), al_get_bitmap_height(game->console)*0.8, 0, 0, 0);
|
//al_draw_bitmap_region(game->console, 0, al_get_bitmap_height(game->console)*0.2, al_get_bitmap_width(game->console), al_get_bitmap_height(game->console)*0.8, 0, 0, 0);
|
||||||
al_draw_bitmap(con, 0, 0, 0);
|
al_draw_bitmap(con, 0, 0, 0);
|
||||||
al_set_target_bitmap(al_get_backbuffer(game->display));
|
al_set_target_bitmap(al_get_backbuffer(game->display));
|
||||||
|
al_destroy_bitmap(con);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawConsole(struct Game *game) {
|
void DrawConsole(struct Game *game) {
|
||||||
|
@ -211,6 +212,19 @@ int main(int argc, char **argv){
|
||||||
else if (game.gamestate==GAMESTATE_ABOUT) {
|
else if (game.gamestate==GAMESTATE_ABOUT) {
|
||||||
if (About_Keydown(&game, &ev)) break;
|
if (About_Keydown(&game, &ev)) break;
|
||||||
}
|
}
|
||||||
|
else if (game.gamestate==GAMESTATE_INTRO) {
|
||||||
|
if (Intro_Keydown(&game, &ev)) break;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
game.showconsole = true;
|
||||||
|
PrintConsole(&game, "ERROR: Keystroke in unknown gamestate! (5 sec sleep)");
|
||||||
|
DrawConsole(&game);
|
||||||
|
al_flip_display();
|
||||||
|
al_rest(5.0);
|
||||||
|
PrintConsole(&game, "Returning to menu...");
|
||||||
|
game.gamestate = GAMESTATE_LOADING;
|
||||||
|
game.loadstate = GAMESTATE_MENU;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(redraw && al_is_event_queue_empty(game.event_queue)) {
|
if(redraw && al_is_event_queue_empty(game.event_queue)) {
|
||||||
|
|
8
main.h
8
main.h
|
@ -32,6 +32,13 @@ struct Loading {
|
||||||
ALLEGRO_BITMAP *loading_bitmap, *image;
|
ALLEGRO_BITMAP *loading_bitmap, *image;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct Intro {
|
||||||
|
int position;
|
||||||
|
int page;
|
||||||
|
bool in_animation;
|
||||||
|
ALLEGRO_BITMAP *table, *table_bitmap;
|
||||||
|
};
|
||||||
|
|
||||||
struct Game {
|
struct Game {
|
||||||
ALLEGRO_DISPLAY *display;
|
ALLEGRO_DISPLAY *display;
|
||||||
ALLEGRO_FONT *font, *font_console;
|
ALLEGRO_FONT *font, *font_console;
|
||||||
|
@ -43,6 +50,7 @@ struct Game {
|
||||||
bool showconsole;
|
bool showconsole;
|
||||||
struct Menu menu;
|
struct Menu menu;
|
||||||
struct Loading loading;
|
struct Loading loading;
|
||||||
|
struct Intro intro;
|
||||||
};
|
};
|
||||||
|
|
||||||
void PreloadGameState(struct Game *game);
|
void PreloadGameState(struct Game *game);
|
||||||
|
|
8
menu.c
8
menu.c
|
@ -13,9 +13,9 @@ void Menu_Draw(struct Game *game) {
|
||||||
float x = 1.5;//*(rand() / (float)RAND_MAX);
|
float x = 1.5;//*(rand() / (float)RAND_MAX);
|
||||||
int minus;
|
int minus;
|
||||||
if (game->menu.cloud_position>0) minus=1; else minus=-1;
|
if (game->menu.cloud_position>0) minus=1; else minus=-1;
|
||||||
al_draw_scaled_bitmap(game->menu.rain, 0, 0, al_get_bitmap_width(game->menu.rain), al_get_bitmap_height(game->menu.rain), fmod(minus*game->menu.cloud_position,3)*x*5+al_get_bitmap_width(game->menu.pinkcloud_bitmap)/2.7, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*(0.88+(fmod(-2*(game->menu.cloud_position+80), 6))/20.0), al_get_bitmap_width(game->menu.pinkcloud_bitmap)*0.5, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.1, 0);
|
al_draw_scaled_bitmap(game->menu.rain, 0, 0, al_get_bitmap_width(game->menu.rain), al_get_bitmap_height(game->menu.rain), fmod(minus*game->menu.cloud_position,3)*x*5+al_get_bitmap_width(game->menu.pinkcloud_bitmap)/2.7, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*(0.88+(fmod(-1.8*(game->menu.cloud_position+80), 6))/20.0), al_get_bitmap_width(game->menu.pinkcloud_bitmap)*0.5, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.1, 0);
|
||||||
al_draw_scaled_bitmap(game->menu.rain, 0, 0, al_get_bitmap_width(game->menu.rain), al_get_bitmap_height(game->menu.rain), fmod(minus*game->menu.cloud_position,3)*x*3+al_get_bitmap_width(game->menu.pinkcloud_bitmap)/3.1, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*(0.78+(fmod(-3*(game->menu.cloud_position+80), 4))/20.0), al_get_bitmap_width(game->menu.pinkcloud_bitmap)*0.5, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.1, 0);
|
al_draw_scaled_bitmap(game->menu.rain, 0, 0, al_get_bitmap_width(game->menu.rain), al_get_bitmap_height(game->menu.rain), fmod(minus*game->menu.cloud_position,3)*x*3+al_get_bitmap_width(game->menu.pinkcloud_bitmap)/3.1, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*(0.78+(fmod(-2.8*(game->menu.cloud_position+80), 4))/18.0), al_get_bitmap_width(game->menu.pinkcloud_bitmap)*0.5, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.1, 0);
|
||||||
al_draw_scaled_bitmap(game->menu.rain, 0, 0, al_get_bitmap_width(game->menu.rain), al_get_bitmap_height(game->menu.rain), fmod(minus*game->menu.cloud_position,3)*x*6+al_get_bitmap_width(game->menu.pinkcloud_bitmap)/2.1, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*(0.87+(fmod(-5*(game->menu.cloud_position+80), 8))/24.0), al_get_bitmap_width(game->menu.pinkcloud_bitmap)*0.4, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.08, 0);
|
al_draw_scaled_bitmap(game->menu.rain, 0, 0, al_get_bitmap_width(game->menu.rain), al_get_bitmap_height(game->menu.rain), fmod(minus*game->menu.cloud_position,3)*x*6+al_get_bitmap_width(game->menu.pinkcloud_bitmap)/2.1, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*(0.87+(fmod(-4.9*(game->menu.cloud_position+80), 8))/26.0), al_get_bitmap_width(game->menu.pinkcloud_bitmap)*0.4, al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.08, 0);
|
||||||
al_draw_scaled_bitmap(game->menu.pinkcloud,0, 0, al_get_bitmap_width(game->menu.pinkcloud), al_get_bitmap_height(game->menu.pinkcloud), 0, 0, al_get_bitmap_width(game->menu.pinkcloud_bitmap), al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.8122,0);
|
al_draw_scaled_bitmap(game->menu.pinkcloud,0, 0, al_get_bitmap_width(game->menu.pinkcloud), al_get_bitmap_height(game->menu.pinkcloud), 0, 0, al_get_bitmap_width(game->menu.pinkcloud_bitmap), al_get_bitmap_height(game->menu.pinkcloud_bitmap)*0.8122,0);
|
||||||
al_set_target_bitmap(al_get_backbuffer(game->display));
|
al_set_target_bitmap(al_get_backbuffer(game->display));
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ void Menu_Draw(struct Game *game) {
|
||||||
al_draw_scaled_bitmap(game->menu.cloud_bitmap,0,0,al_get_bitmap_width(game->menu.cloud_bitmap), al_get_bitmap_height(game->menu.cloud_bitmap), al_get_display_width(game->display)*(sin((game->menu.cloud_position/40)-4.5)-0.3), al_get_display_height(game->display)*0.35, al_get_bitmap_width(game->menu.cloud_bitmap)/2, al_get_bitmap_height(game->menu.cloud_bitmap)/2,0);
|
al_draw_scaled_bitmap(game->menu.cloud_bitmap,0,0,al_get_bitmap_width(game->menu.cloud_bitmap), al_get_bitmap_height(game->menu.cloud_bitmap), al_get_display_width(game->display)*(sin((game->menu.cloud_position/40)-4.5)-0.3), al_get_display_height(game->display)*0.35, al_get_bitmap_width(game->menu.cloud_bitmap)/2, al_get_bitmap_height(game->menu.cloud_bitmap)/2,0);
|
||||||
al_draw_bitmap(game->menu.cloud2_bitmap,al_get_display_width(game->display)*(game->menu.cloud2_position/100.0), al_get_display_height(game->display)/1.5,0);
|
al_draw_bitmap(game->menu.cloud2_bitmap,al_get_display_width(game->display)*(game->menu.cloud2_position/100.0), al_get_display_height(game->display)/1.5,0);
|
||||||
al_draw_bitmap(game->menu.menu_bitmap,0, 0,0);
|
al_draw_bitmap(game->menu.menu_bitmap,0, 0,0);
|
||||||
al_draw_bitmap(game->menu.pinkcloud_bitmap,(al_get_display_width(game->display)*0.132) + (cos((game->menu.cloud_position/50+80)*1.74444))*20, 0,0);
|
al_draw_bitmap(game->menu.pinkcloud_bitmap,(al_get_display_width(game->display)*0.12) + (cos((game->menu.cloud_position/25+80)*1.74444))*40, 0,0);
|
||||||
al_draw_bitmap(game->menu.cloud_bitmap,al_get_display_width(game->display)*game->menu.cloud_position/100, 30,0);
|
al_draw_bitmap(game->menu.cloud_bitmap,al_get_display_width(game->display)*game->menu.cloud_position/100, 30,0);
|
||||||
|
|
||||||
al_draw_bitmap(game->menu.pie_bitmap, al_get_display_width(game->display)/2, al_get_display_height(game->display)*(game->menu.cloud_position)/10,0);
|
al_draw_bitmap(game->menu.pie_bitmap, al_get_display_width(game->display)/2, al_get_display_height(game->display)*(game->menu.cloud_position)/10,0);
|
||||||
|
|
Loading…
Reference in a new issue