zoukankan      html  css  js  c++  java
  • 【来写个2048吧】—— 后期优化及源代码

        卡片里的数字假设越来越大则会超过卡片,这样看起来不好看,所以我们要推断数字的位数然后设置合适的大小。 
    在Card.cpp的setNumber()中增加例如以下代码
            //设置数字大小
            if ( num >= 0)
            {
                   labelCardNumber->setFontSize (100);
            }
            if ( num >= 16)
            {
                   labelCardNumber->setFontSize (90);
            }
            if ( num >= 128)
            {
                   labelCardNumber->setFontSize (60);
            }
            if ( num >= 1024)
            {
                   labelCardNumber->setFontSize (40);
            }
    

    这样就依据数字的位数改变大小了。

    然后就是不同的数字显示不同的颜色。
    相同在setNumber()中增加
    	//推断数字的大小来调整颜色 
            if(number == 0){ 
                   colorBackground->setColor (Color3B( 200,190 ,180));  
            } 
            if ( number == 2) { 
                   colorBackground->setColor (Color3B( 240,230 ,220));  
            } 
            if ( number == 4) { 
                   colorBackground->setColor (Color3B( 240,220 ,200));  
            } 
            if ( number == 8) { 
                   colorBackground->setColor (Color3B( 240,180 ,120));  
            } 
            if ( number == 16) { 
                   colorBackground->setColor (Color3B( 240,140 ,90));  
            } 
            if ( number == 32) { 
                   colorBackground->setColor (Color3B( 240,120 ,90));  
            } 
            if ( number == 64) { 
                   colorBackground->setColor (Color3B( 240,90 ,60));  
            } 
            if ( number == 128) { 
                   colorBackground->setColor (Color3B( 240,90 ,60));  
            } 
            if ( number == 256) { 
                   colorBackground->setColor (Color3B( 240,200 ,70));  
            } 
            if ( number == 512) { 
                   colorBackground->setColor (Color3B( 240,200 ,70));  
            } 
            if ( number == 1024) { 
                   colorBackground->setColor (Color3B( 0,130 ,0));  
            } 
            if ( number == 2048) { 
                   colorBackground->setColor (Color3B( 0,130 ,0));  
            } 
    

    这样差点儿相同就完毕了。


    事实上还有非常多效果没有加,如滑动卡片时的滑动效果,记录最高分等等。因为时间有限,就依据网上的教程试了一下。游戏非常easy,做起来不easy啊。


    最后附上全部的源码



  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3804381.html
Copyright © 2011-2022 走看看