예제 #1
0
static void state_init(){
    printf("gamestate init\n");
    FILE* fp = fopen("res/note_sprite.bmp", "rb");
    note_sprite = eeds_load_bmp(fp);
    fclose(fp);
    printf("init done!\n");
}
예제 #2
0
Font* Font_load(char* filename, int char_w, int char_h){
    printf("loading font %s...\n", filename);
    Font* font = (Font*) malloc(sizeof(Font));
    FILE* fp = fopen(filename, "rb");
    font->bmp = eeds_load_bmp(fp);
    font->char_w = char_w;
    font->char_h = char_h;
    return font;
}
예제 #3
0
static void state_resume(){
    eeds_set_leds(1);
    redraw_required = 1;

    FILE*fp = fopen("res/score_bg.bmp", "rb");
    if(fp == NULL){
        fprintf(stderr, "Unable to open score background.\n");
    }
    score_bg = eeds_load_bmp(fp);

    fclose(fp);
}
예제 #4
0
static void state_resume(){
    total_notes = 0;
    eeds_set_leds(0xAA);
    score_OK = 0;
    score_perfect = 0;
    score_great = 0;
    score_combo = 0;
    score_greatest_combo = 0;
    song = songs[active_selection];
    elapsed_time_in_ms = -song->offset_in_ms - 43;
    beat = 0;
    measure = 0;
    beats_per_measure = 4;
    ms_since_last_beat = 0;
    current_bpm_index = 1;
    current_bpm = song->BPMs[current_bpm_index];
    need_to_draw_song_bg = 1;
    ms_per_measure = 4*60000000 / current_bpm;

    while(n_notes > 0) remove_note(0);

    char path_to_bg[256];
    sprintf(path_to_bg, "res/Songs/%s/%s.bmp", song->basename, song->basename);
    /* load song background */
    FILE* fp = fopen(path_to_bg, "rb");
    song_bg = eeds_load_bmp(fp);
    fclose(fp);
    /* load background overlay */
    fp = fopen("res/game_bg.bmp", "rb");
    game_bg = eeds_load_bmp(fp);
    fclose(fp);
    /* merge song and background overlay */
    merge_bgs();
    char path_to_song[256];
    sprintf(path_to_song, "res/Songs/%s/%s.raw", song->basename, song->basename);
    audio_play(path_to_song);
}