1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| void xiaoxiaole() { if(lv_disp_get_hor_res(lv_disp_get_default())>=lv_disp_get_ver_res(lv_disp_get_default())) {screen_ratio=(float)lv_disp_get_ver_res(lv_disp_get_default())/400;} else { screen_ratio=(float)lv_disp_get_hor_res(lv_disp_get_default())/480; } lv_obj_clear_flag(lv_scr_act(), LV_OBJ_FLAG_SCROLLABLE);
screen1=lv_tileview_create(lv_scr_act()); lv_obj_set_style_bg_color(screen1,lv_color_hex(0x000000), LV_PART_MAIN); lv_obj_clear_flag(screen1, LV_OBJ_FLAG_SCROLLABLE);
bgmap=lv_img_create(screen1); lv_img_set_src(bgmap, &xiaoxiaole_bg_img); lv_img_set_pivot(bgmap,0,0); lv_img_set_zoom(bgmap,256*1.5*1.2); lv_obj_clear_flag(bgmap, LV_OBJ_FLAG_SCROLLABLE); game_window=lv_tileview_create(screen1); lv_obj_set_style_bg_color(game_window,lv_color_hex(0x000000), LV_PART_MAIN); lv_obj_set_style_bg_opa(game_window,200, LV_PART_MAIN); lv_obj_clear_flag(game_window, LV_OBJ_FLAG_SCROLLABLE); lv_obj_set_style_outline_width(game_window, 6, LV_PART_MAIN); lv_obj_set_style_outline_color(game_window, lv_color_hex(0xbb7700), LV_PART_MAIN); lv_obj_center(game_window); lv_obj_set_size(game_window,280*screen_ratio,280*screen_ratio); refs_btn=lv_img_create(screen1); lv_img_set_src(refs_btn, &refs_btn_img); lv_obj_align(refs_btn,LV_ALIGN_RIGHT_MID,8,0); lv_obj_add_flag(refs_btn, LV_OBJ_FLAG_CLICKABLE); lv_obj_add_event_cb(refs_btn,map_refs,LV_EVENT_CLICKED,0); lv_img_set_zoom(refs_btn, 150); exit_btn=lv_img_create(screen1); lv_img_set_src(exit_btn, &exit_img); lv_obj_align(exit_btn,LV_ALIGN_TOP_RIGHT,10,-20); lv_obj_add_flag(exit_btn, LV_OBJ_FLAG_CLICKABLE); lv_obj_add_event_cb(exit_btn,exit_game_cb,LV_EVENT_CLICKED,0); lv_img_set_zoom(exit_btn, 130); coin=lv_img_create(screen1); lv_img_set_src(coin, &coin_img); lv_img_set_zoom(coin, 130); lv_obj_align(coin,LV_ALIGN_TOP_LEFT,10,-20); score=0; score_lable=lv_label_create(screen1); lv_label_set_text_fmt(score_lable,"SCORE:%d",score); lv_obj_set_style_text_font(score_lable,&lv_font_montserrat_20,0); lv_obj_set_y(score_lable,40); lv_obj_set_style_text_color(score_lable, lv_color_hex(0x00aaff), LV_PART_MAIN); game_init(); }
static void game_init() { int i, j; lv_obj_refr_size(game_window); for(j=0;j<8;j++) { for(i=0;i<8;i++) { game_obj[j][i].x=i; game_obj[j][i].y=j; game_obj[j][i].alive=1; game_obj[j][i].color_index=rand()%7; game_obj[j][i].obj=lv_btn_create(game_window); lv_obj_set_pos(game_obj[j][i].obj,i*35*screen_ratio+1,j*35*screen_ratio+1); lv_obj_set_size(game_obj[j][i].obj,35*screen_ratio-2,35*screen_ratio-2); lv_obj_set_style_bg_color(game_obj[j][i].obj,lv_color_hex(color_lib[game_obj[j][i].color_index]),0); game_obj[j][i].obj->user_data=&game_obj[j][i]; lv_obj_add_event_cb(game_obj[j][i].obj,move_obj_cb,LV_EVENT_PRESSING,0); lv_obj_add_event_cb(game_obj[j][i].obj,move_obj_cb,LV_EVENT_RELEASED,0); } } if(map_is_full()&&same_color_check()){same_color_flash();lv_obj_clear_flag(refs_btn, LV_OBJ_FLAG_CLICKABLE);} }
|