tweaks for character positions

This commit is contained in:
Sebastian Krzyszkowiak 2013-06-06 10:08:31 +02:00
parent f73b9abd26
commit b983eac305
4 changed files with 9 additions and 8 deletions

View file

@ -46,7 +46,7 @@ void SelectSpritesheet(struct Game *game, struct Character *character, char* nam
//game->level.sheet_scale = tmp->scale;
//game->level.sheet_successor = tmp->successor;
if (character->bitmap) al_destroy_bitmap(character->bitmap);
character->bitmap = al_create_bitmap((game->viewport.height*0.25)*tmp->aspect*tmp->scale, (game->viewport.height*0.25)*tmp->scale);
character->bitmap = al_create_bitmap((game->viewport.height*0.25)*tmp->aspect*tmp->scale, (game->viewport.height*0.25)*tmp->scale); // FIXME: dimensions!
PrintConsole(game, "SUCCESS: Spritesheet for %s activated: %s (%dx%d)", character->name, name, al_get_bitmap_width(character->bitmap), al_get_bitmap_height(character->bitmap));
return;
}
@ -202,7 +202,7 @@ void DrawCharacter(struct Game *game, struct Character *character, ALLEGRO_COLOR
al_draw_bitmap_region(character->spritesheet->bitmap, al_get_bitmap_width(character->bitmap)*(character->pos%character->spritesheet->cols),al_get_bitmap_height(character->bitmap)*(character->pos/character->spritesheet->cols),al_get_bitmap_width(character->bitmap), al_get_bitmap_height(character->bitmap),0,0,0);
al_set_target_bitmap(al_get_backbuffer(game->display));
al_draw_tinted_rotated_bitmap(character->bitmap, tilt, al_get_bitmap_width(character->bitmap), al_get_bitmap_height(character->bitmap)/2, character->x*game->viewport.width + game->viewport.width*0.1953125, character->y*game->viewport.height + al_get_bitmap_height(character->bitmap)/2, character->angle, flags); // FIXME: viewport height? omg character should have its dimensions ;_;
al_draw_tinted_rotated_bitmap(character->bitmap, tilt, al_get_bitmap_width(character->bitmap), al_get_bitmap_height(character->bitmap)/2, character->x*game->viewport.width + al_get_bitmap_width(character->bitmap), character->y*game->viewport.height + al_get_bitmap_height(character->bitmap)/2, character->angle, flags); // FIXME: viewport height? omg character should have its dimensions ;_;
}

View file

@ -173,7 +173,7 @@ struct Level1Resources* Gamestate_Load(struct Game *game) {
RegisterSpritesheet(game, character, "stand");
RegisterSpritesheet(game, character, "fly");
RegisterSpritesheet(game, character, "run");
SelectSpritesheet(game, character, "walk");
SelectSpritesheet(game, character, "run");
SetCharacterPosition(game, character, 0.1, 0.7, 0);
data->dodger = Dodger_Load(game, character);

View file

@ -126,11 +126,11 @@ void Dodger_Logic(struct Game *game, struct Dodger* data) {
}
void Dodger_Draw(struct Game *game, struct Dodger* data) {
int derpyx = data->character->x*game->viewport.height*1.6;
int derpyx = data->character->x*game->viewport.width;
int derpyy = data->character->y*game->viewport.height;
int derpyw = al_get_bitmap_width(data->character->bitmap);
int derpyh = al_get_bitmap_height(data->character->bitmap);
int derpyo = game->viewport.height*1.6*0.1953125-al_get_bitmap_width(data->character->bitmap); /* offset */
int derpyo = 0;//game->viewport.height*1.6*0.1953125-al_get_bitmap_width(data->character->bitmap); /* offset */
bool colision = false;
struct Obstacle *tmp = data->obstacles;
while (tmp) {
@ -198,7 +198,7 @@ struct Dodger* Dodger_Load(struct Game *game, struct Character *character) {
data->speed = 0;
data->speed_modifier = 1;
data->handle_input = true;
data->debug_show_sprite_frames=false;
data->debug_show_sprite_frames=true;
return data;
}

View file

@ -29,7 +29,7 @@ bool DoMoonwalk(struct Game *game, struct TM_Action *action, enum TM_ActionState
struct Character *derpy = action->arguments->value;
if (state == TM_ACTIONSTATE_START) {
SelectSpritesheet(game, derpy, "walk");
SetCharacterPosition(game, derpy, -0.2, 0.71, 0);
SetCharacterPosition(game, derpy, -(al_get_bitmap_width(derpy->bitmap)/(float)game->viewport.width)*1.1, 0.71, 0);
}
else if (state == TM_ACTIONSTATE_RUNNING) {
MoveCharacter(game, derpy, 0.0009 , 0, 0);
@ -51,7 +51,7 @@ void Moonwalk_Draw(struct Game *game, struct Moonwalk *data) {
}
void Moonwalk_Start(struct Game *game, struct Moonwalk *data) {
SelectSpritesheet(game, data->derpy, "walk");
SelectSpritesheet(game, data->derpy, "stand");
al_play_sample_instance(data->music);
// TODO: find some way to restart Timeline
}
@ -73,6 +73,7 @@ struct Moonwalk* Moonwalk_Load(struct Game *game, int current_level) {
data->derpy = CreateCharacter(game, "derpy");
RegisterSpritesheet(game, data->derpy, "stand");
RegisterSpritesheet(game, data->derpy, "walk");
data->current_level = current_level;