int loop_hook(t_event *e) { if (e->menu == MAIN_MENU) control_menu(e); else if (e->menu == GAME) control_player(e); else if (e->menu == TEXTURE_EDITOR) control_edit_tex(e); clear(e); if (e->menu == GAME) { render_map(e); render_minimap(e); } else if (e->menu == TEXTURE_EDITOR) render_edit_tex(e); mlx_put_image_to_window(e->mlx, e->win, e->img.addr, 0, 0); if (e->menu == GAME) mlx_string_put(e->mlx, e->win, 5, e->height - 22, 0xffffff, "Arrow or WASD to move and rotate"); if (e->menu == MAIN_MENU) render_menu(e); else if (e->menu == TEXTURE_EDITOR) render_edit_tex_gui(e); return (0); }
int main(int argc,char ** argv){ if(al_init()<0){ //fonction d'initialisation fprintf(stderr,"Error at the initialisation of Allegro"); return -1; } if(!al_init_image_addon() ) { printf("addon Error"); return 0; } options=create_options(); load_options(options,"Options.txt"); screen=create_screen(options); control=create_control(screen); ALLEGRO_BITMAP * bg_picture=NULL; bg_picture = al_load_bitmap("./Ressources/Pictures/test.png"); ALLEGRO_BITMAP * image_titre_d=NULL; image_titre_d =al_load_bitmap("./Ressources/Pictures/play_d.png"); ALLEGRO_BITMAP * image_titre_s=NULL; image_titre_s=al_load_bitmap("./Ressources/Pictures/play_s.png"); /** DEBUT ALLEGRO_BITMAP * image_credit_d=NULL; image_credit_d =al_load_bitmap("./ressource/image/credit_d.png"); ALLEGRO_BITMAP * image_credit_s=NULL; image_credit_s=al_load_bitmap("./ressource/image/credit_s.png"); ALLEGRO_BITMAP * image_quitter_d=NULL; image_quitter_d =al_load_bitmap("./ressource/image/quitter_d.png"); ALLEGRO_BITMAP * image_quitter_s=NULL; image_quitter_s=al_load_bitmap("./ressource/image/quitter_s.png"); */ if (!bg_picture || !image_titre_d || !image_titre_s){ printf("bug image\n"); } struct Title *titles=malloc(sizeof(struct Title)*1); struct Menu * menu=create_menu(bg_picture,titles,create_column_position(1,200,300,300),1); //struct Control* control=creer_control(ecran); /** DEBUT void (*p)(void); void jouer(){ partie = creer_partie(); lancer_jeu(partie);} void credits(){ ALLEGRO_BITMAP * image_credits=NULL; image_credits = al_load_bitmap("./ressource/image/credits.png"); al_draw_bitmap(image_credits,0,0,0); al_flip_display(); al_rest(5.0); } void quitter(){quitter_jeu(partie);} p=jouer; titres[0]=*creer_titre(image_titre_s,image_titre_d,*p); p=credits; titres[1]=*creer_titre(image_credit_s,image_credit_d,*p); p=quitter; titres[2]=*creer_titre(image_quitter_s,image_quitter_d,*p); */ void (*p)(void); void f(){control_menu(menu,control);}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ //FullscreenMessage(); ChangeWindowMode( FALSE ); SetMainWindowText("高橋テトリスver0.04"); if (DxLib_Init() == -1) return -1; //初期化 load(); if (SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//裏画面化 exe_cnt=0; func_state=0; while(ProcessLoop()==0){//メインループ music_ini(); switch(func_state){ case 0: //初期ロード launch_ini(); mode=0; menu_ini(); func_state=1; break; case 1: //ロゴ画面 graph_logo(); break; case 2: //メニュー画面 control_menu(); graph_menu(); break; case 50: //モード選択画面 control_menu(); graph_menu(); break; case 51: //モード選択後移行画面 graph_menu(); menu_selected_cnt++; if (menu_selected_cnt>30) { first_ini(); func_state=100; } break; case 100: //ゲームメイン画面 control_main(); block_main(); cal_score(); graph_main(); stage_cnt++; if (gameover_flag==1 && CheckStatePad(-1,PAD_NUM_HOLD)==1) { result_ini(); func_state=101; } if (CheckStatePad(-1,PAD_NUM_PAUSE)==1) { pause_push_Pl=PadPushPlayer; StopSoundMem( bgm_handle[bgm_num] ) ; pause_select=0; func_state=999; } break; case 999: //ポーズ画面 control_game_pause(); graph_main(); if (CheckStatePad((all_cpu_flag==0)?pause_push_Pl:-1,PAD_NUM_HOLD)==1) { switch (pause_select) { case 0: PlaySoundMem( bgm_handle[bgm_num] , DX_PLAYTYPE_LOOP , FALSE ) ; func_state=100; break; case 1: first_ini(); func_state=100; break; case 2: menu_ini(); func_state=50; break; } } if (CheckStatePad((all_cpu_flag==0)?pause_push_Pl:-1,PAD_NUM_PAUSE)==1) { PlaySoundMem( bgm_handle[bgm_num] , DX_PLAYTYPE_LOOP , FALSE ) ; func_state=100; } break; case 101: //リザルト画面 control_result(); graph_main(); stage_cnt++; if (CheckStatePad(-1,PAD_NUM_HOLD)==1) func_state=102; break; case 102: //ゲームオーバー後選択画面 control_over_select(); graph_main(); stage_cnt++; if (CheckStatePad(-1,PAD_NUM_HOLD)==1) { switch (over_select) { case 0: first_ini(); func_state=100; break; case 1: menu_ini(); menu_select=mode; func_state=50; break; case 3: func_state=101; break; } } break; default: printfDx("error:不明なfunc_state\n"); break; } control_func_state(); exe_cnt++; music_play(); if(CheckStateKey(KEY_INPUT_ESCAPE)==1) break;//エスケープが入力されたらブレイク ScreenFlip();//裏画面反映 } DxLib_End();//DXライブラリ終了処理 return 0; }