• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            f(sixleaves) = sixleaves

            重劍無(wú)鋒 大巧不工

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評(píng)論 :: 0 Trackbacks

            #

            總結(jié)下cocos2dx的這些動(dòng)作,知識(shí)大概的總結(jié),不是包含所有。文中的名詞是自己取得。
            首先我們要把握主線,我們?cè)赾ocos2dx用到的動(dòng)作都是派生自Action類,而Action又派生自Ref類。而我們主要用到的時(shí)屬于Action派生的FiniteTimeAction(有限時(shí)間的動(dòng)作類)類所派生的類。
            FiniteTimeAction中得有限時(shí)間類又分為兩個(gè)部分,一個(gè)部分是瞬時(shí)動(dòng)作類(ActionInstant),也就是執(zhí)行時(shí)你是看不到過(guò)程,只能看到結(jié)果。一部分是ActionInterval(持續(xù)動(dòng)作類),這類動(dòng)作都是有持續(xù)時(shí)間的。
            1.框架:
            Action類派生出:FiniteTimeAction
            #FiniteTimeAction類派生出:ActionInstant類和ActionInterval類
            ##ActionInstant類派生出:CallFunc類、FlipX、Hide、Place(這里只是列出我常用的)
            ##ActionInterval類派生出:又分為兩大類,一大類是純持續(xù)動(dòng)作類、一大類是動(dòng)作包裝類(這是我自己細(xì)分的)
            其中純持續(xù)動(dòng)作類包括:BezierBy(To)(貝茲爾曲線動(dòng)作)、Blink(閃爍動(dòng)作)、FadeIn(Out)、JumpBy(To)(跳轉(zhuǎn)動(dòng)作,指定起跳位置、高度、次數(shù))、RotateBy(To)、ScaleBy(To)(拉伸動(dòng)作)。
            其中一般By是相對(duì)的意思當(dāng)前位置或者倍數(shù),To是指定絕對(duì)。第一個(gè)參數(shù)都是指定持續(xù)時(shí)間。
            其中動(dòng)作包裝類包括::Repeat、RepeatForever、Sequence、Spawn,動(dòng)作包裝類對(duì)所包裝的動(dòng)作有一定副作用,其副作用一般可顧名思義。
            如上,Repeat包裝后的動(dòng)作就是重復(fù)指定次數(shù)被包裝的動(dòng)作、RepeatForever則是持續(xù)不斷、Sequence可以包裝多個(gè)動(dòng)作、其副作用是讓多個(gè)動(dòng)作順序執(zhí)行
            Spawn包裝后的動(dòng)作的副作用是,所有動(dòng)作一起執(zhí)行。

            2.動(dòng)作的創(chuàng)建:
            一般動(dòng)作的創(chuàng)建是調(diào)用相應(yīng)動(dòng)作的類的create工廠方法。

            3.動(dòng)作的執(zhí)行:
            一般動(dòng)作的是發(fā)送runAction消息給指定的Sprite對(duì)象,傳入?yún)?shù)就是動(dòng)作對(duì)象。

            4.幾個(gè)重要?jiǎng)幼鱏equence、Spawn、CallFunc
            Sequence動(dòng)作的使用就是如代碼:
            auto actions = Sequence::create(action1,action2,...,actionN, NULL);
            sprite->runAction(actions);
            Spawn的使用也一樣,知識(shí)把關(guān)鍵字替換掉
            CallFunc動(dòng)作是我們就稱為回調(diào)動(dòng)作把(或者說(shuō)是把函數(shù)轉(zhuǎn)化為動(dòng)作),傳入的第二個(gè)函數(shù)指針需要通過(guò)callFunc_selector格式化該函數(shù)指針。
            auto actionCF= CallFunc::create(this, callFunc_selector(HelloWord::sayLove));

            posted @ 2014-09-28 16:13 swp 閱讀(1252) | 評(píng)論 (0)編輯 收藏

            在寫(xiě)程序中,我們經(jīng)常要判斷,或者寫(xiě)個(gè)循環(huán),具體讓其循環(huán)幾次,這個(gè)怎么計(jì)算。
            我分別舉幾個(gè)例子。
            eg1:for (i = 0; i < n; i++);
            這個(gè)是大家再熟悉不過(guò)的了,為什么它是n次循環(huán),如果我能用數(shù)學(xué)的角度看是這樣的,首先i的取值范圍中,每個(gè)整數(shù)對(duì)應(yīng)一個(gè)
            循環(huán),所以所謂的循環(huán)次數(shù),也就是這個(gè)范圍內(nèi)的整數(shù)的個(gè)數(shù)。而上述的循環(huán)范圍是[0, n).它的整數(shù)個(gè)數(shù)就是n - 0 = n,只有
            對(duì)于半閉合半開(kāi)放的區(qū)間能這樣計(jì)算,這也是為什么從0開(kāi)始計(jì)數(shù)的好處之一。一目了然。
            eg2:
            while(L--) {
            }
            這個(gè)循環(huán)循環(huán)幾次呢,首先我們確定L的有效范圍,由于是后置減減,所以有效范圍是[L, 0).所以循環(huán)也是L次
            如果是
            while(--L){},那范圍就是[L-1, 0),所以其循環(huán)次數(shù)是L - 1
            posted @ 2014-09-23 21:02 swp 閱讀(1110) | 評(píng)論 (0)編輯 收藏

            題目描述

            為了縮短領(lǐng)救濟(jì)品的隊(duì)伍,NNGLRP決定了以下策略:每天所有來(lái)申請(qǐng)救濟(jì)品的人會(huì)被放在一個(gè)大圓圈,面朝里面。選定一個(gè)人為編號(hào) 1 號(hào),其他的就從那個(gè)人開(kāi)始逆時(shí)針開(kāi)始編號(hào)直到 N。一個(gè)官員一開(kāi)始逆時(shí)針數(shù),數(shù) k 個(gè)申請(qǐng)者,然后另一個(gè)官員第 N 個(gè)始順時(shí)針?lè)较驍?shù) m 個(gè)申請(qǐng)者,這兩個(gè)人就被送去再教育。如果兩個(gè)官員數(shù)的是同一個(gè)人,那個(gè)人則被送去從政,然后2個(gè)官員再在剩下的人里面繼續(xù)選直到?jīng)]人剩下來(lái),注意兩個(gè)被選 中的人是同時(shí)走掉的,所以就有可能兩個(gè)官員選中一個(gè)人。

            [編輯]Input

            輸入含有多組測(cè)試資料,每組測(cè)試資料一列含有三個(gè)數(shù) N,k 和 m(k, m > 0,0<N<20)。 當(dāng)輸入為 0 0 0 代表輸入結(jié)束。

            [編輯]Output

            對(duì)每組測(cè)試資料輸出一列。輸出被選中的申請(qǐng)者的編號(hào)順序(一對(duì)一對(duì)的)。每個(gè)數(shù)的寬度為 3 。每一對(duì)前面的那個(gè)編號(hào)為逆時(shí)針數(shù)的官員選出的,后面的那個(gè)編號(hào)為順時(shí)針數(shù)的官員選出的(但是如果這2個(gè)官員選出同一個(gè)人,那就只會(huì)有一個(gè)編號(hào))。每一對(duì) 之間以逗號(hào)分開(kāi)。格式請(qǐng)參考Sample Output。

            [編輯]Sample Input

            10 4 3 
            13 17 42
            7 8 47
            0 0 0

            [編輯]Sample Output

             4 8, 9 5, 3 1, 2 6, 10, 7 
            4 11, 10 1, 8 6, 13 7, 3, 5 12, 9 2
            1 3, 5 7, 2 4, 6
            這道題目有點(diǎn)繞,也講得不嚴(yán)密。這里主要說(shuō)下幾個(gè)容易錯(cuò)的地方。
            首先是你每次在寫(xiě)程序之前,都要十分清除規(guī)則,題目中的人是圍著一圈,而且第一個(gè)的左邊是第N個(gè)人,也就是它是逆時(shí)針標(biāo)號(hào)的。這個(gè)十分關(guān)鍵。
            其次是go函數(shù)的實(shí)現(xiàn),go函數(shù)是數(shù)過(guò)L個(gè)人,返回最后一個(gè)的位置。我并不贊同,某些版本數(shù)組是從1開(kāi)始計(jì)數(shù),因?yàn)檫@樣對(duì)于表達(dá)式的表達(dá)十分不方便。你可以
            自己嘗試用1來(lái)做,會(huì)很不方便。就是因?yàn)間o函數(shù)是這樣一個(gè)函數(shù),所以當(dāng)我們?cè)谙乱淮蔚臅r(shí)候的開(kāi)始位置,一定是為那個(gè)人出去的位置,也就是a[i]=0的位置。
            所以我們第一次迭代的位置,原本A是應(yīng)該在位置0,B在位置n-1。這時(shí)候只能是A在n-1和B在0.(你可以用數(shù)學(xué)歸納法理解)。
             1 #include <stdio.h>
             2 
             3 #define MAXN 25
             4 int n,k,m;
             5 int a[MAXN];
             6 int go(int p, int d, int k);//數(shù)過(guò)k個(gè)人,開(kāi)始位置p必須是數(shù)1時(shí)候的前一個(gè)位置。 
             7 int main() {
             8     while (scanf("%d%d%d", &n, &k, &m) == 3 && n) {
             9         for (int i = 0; i < n; i++) {
            10             a[i] = i + 1;
            11         }
            12         int left = n;
            13         int pA = n-1, pB = 0;
            14         int pANext,pBNext;
            15         while (left) {
            16             pA = go(pA, 1, k);//1表示逆時(shí)針,因?yàn)樗悄鏁r(shí)針標(biāo)號(hào)
            17             pB = go(pB, -1, m);//-1表示順時(shí)針
            18             printf("%3d", pA + 1); left--;
            19             if (pA != pB) { printf("%3d", pB + 1); left--;}
            20             a[pA] = a[pB] = 0;
            21             if (left) printf(",");
            22         }
            23         printf("\n");
            24     }    
            25     return 0;
            26 }
            27 int go(int p, int d, int L) {
            28     while (L--) {
            29         do { p = (p+n+d)%n;} while(a[p] == 0);
            30     }
            31     return p;
            32 }
            解析:至于下一個(gè)位置為什么是p = (p+n+d)%n.其實(shí)很簡(jiǎn)單。因?yàn)槲覀兪且徊讲阶叩模灾挥袃煞N邊界情況。假設(shè)當(dāng)前位置是p(0=<p<n),
            第一種邊界:p + 1 > n - 1,即 p + 1此時(shí)應(yīng)該是到達(dá)0位置,但此時(shí)p + 1 = n,如果我們?nèi)∮鄶?shù),則 (p+1)%T = 0,T = n(T表示這個(gè)圓圈的周期大小)。
            剛好能符合,又因?yàn)門(mén) = n,所以(P+T+1)%T還是不變的。
            第二種邊界: p - 1 < 0, 即 p - 1此時(shí)的值是-1,對(duì)于這種情況可以反過(guò)來(lái)看,它是向后退后1個(gè)單位,可以看成向前走T - 1個(gè)單位即p -1 等效于 p + T - 1
            ,我們要等到此時(shí)的位置,再去余,(P+T-1)%T。
            對(duì)于情況一、二。可以歸納為(P+T+d)%T,當(dāng)為順時(shí)針是d取1,否則-1.
            posted @ 2014-09-23 20:46 swp 閱讀(1825) | 評(píng)論 (0)編輯 收藏

            1.創(chuàng)建對(duì)象:

                 在java中創(chuàng)建對(duì)象只能用new才行,返回的是引用類型,所以對(duì)象名其實(shí)是引用。而C++中的對(duì)象創(chuàng)建不一樣,C++可以用指針存對(duì)象,相當(dāng)于引用。也可以直接用類標(biāo)識(shí)符來(lái)創(chuàng)建對(duì)象。如Person是類,Person a,b;在C++中就創(chuàng)建了兩個(gè)對(duì)象,在java中是Person對(duì)象的引用。

            2.C++中了this指針:

                 C++中的this指針和java中的一樣。在C++中,this指針指向當(dāng)前對(duì)象,this指針隱含在每個(gè)成員函數(shù)之中,其類型是class className *.

                 內(nèi)部機(jī)制:

                 在C++中訪問(wèn)數(shù)據(jù)成員都是隱含的使用this指針操作的。需要注意的是。

                 1.this指針是const類型,不可改變。

                 2.this指針針對(duì)對(duì)象,所以靜態(tài)成員是沒(méi)有this指針的。

            3.構(gòu)造函數(shù)和析構(gòu)函數(shù)

                 構(gòu)造函數(shù)就不說(shuō)了,只說(shuō)下默認(rèn)構(gòu)造函數(shù)就死className() {},默認(rèn)會(huì)生成。但是如果你自己定義了構(gòu)造函數(shù),而且不是定義成默認(rèn)構(gòu)造函數(shù),就要在定義一下默認(rèn)構(gòu)造函數(shù),不然創(chuàng)建對(duì)象時(shí)候必須指定參數(shù),不能用無(wú)參數(shù)的。

                 析構(gòu)函數(shù),就是用來(lái)在對(duì)象要銷毀時(shí)候,回收一些對(duì)象自己向系統(tǒng)申請(qǐng)的內(nèi)存。析構(gòu)函數(shù)調(diào)用完后,系統(tǒng)才清除對(duì)象本身占據(jù)的內(nèi)存。

                  Tips:

                   1.析構(gòu)函數(shù)不能重載,只有一種形式~className() {},這是和構(gòu)造函數(shù)的區(qū)別

                   2.三種情況下調(diào)用析構(gòu)函數(shù),對(duì)象離開(kāi)局部作用域后,撤銷對(duì)象觸發(fā),程序終止,觸發(fā);delete運(yùn)算符回收new創(chuàng)建的對(duì)象觸發(fā);臨時(shí)匿名函數(shù)使用完畢;

            4.拷貝構(gòu)造函數(shù)和單參構(gòu)造函數(shù)

                    (1)拷貝構(gòu)造函數(shù),其實(shí)就是構(gòu)造函數(shù)中的單參數(shù)形式的構(gòu)造函數(shù),只是其參數(shù)比較特別,是對(duì)自身同類對(duì)象的引用。拷貝構(gòu)造函數(shù)在一下幾個(gè)的方會(huì)用到。

                     Date a;Date b(a);//調(diào)用的就是拷貝構(gòu)造函數(shù)

                     Date b = a;//調(diào)用的也是拷貝構(gòu)造函數(shù)

                     function(Date d){….};function(a);//調(diào)用的也是拷貝構(gòu)造函數(shù)(先創(chuàng)建Date類的匿名對(duì)象,然后調(diào)用拷貝構(gòu)造函數(shù))

                     Date c = function(a);//這邊f(xié)unction返回Date對(duì)象,也是調(diào)用拷貝構(gòu)造函數(shù)(沒(méi)有創(chuàng)建匿名對(duì)象)

                     (2)單參構(gòu)造函數(shù)

                      單參數(shù)構(gòu)造函數(shù)。其實(shí)拷貝構(gòu)造函數(shù)也是單參構(gòu)造函數(shù)。但是我將他們區(qū)別開(kāi)來(lái),主要是單參構(gòu)造函數(shù),主要是用在,隱式的類型轉(zhuǎn)換上。

                      如你定義了一個(gè)Integer類,直接Integer a = 1;是會(huì)出錯(cuò)的。因?yàn)?不能自動(dòng)或者隱含的轉(zhuǎn)換成Integer對(duì)象,所以這時(shí)候你就要定義

                      單參數(shù)構(gòu)造函數(shù),用來(lái)讓自動(dòng)轉(zhuǎn)換,在java中稱為包裝。由于是構(gòu)造函數(shù),參數(shù)中的類型就是那個(gè)要轉(zhuǎn)換的類型。其它和基本構(gòu)造函數(shù)一樣。

            5.靜態(tài)成員

                    靜態(tài)成員又分為靜態(tài)數(shù)據(jù)成員和靜態(tài)函數(shù)成員。C++中的靜態(tài)函數(shù)成員和java也沒(méi)區(qū)別。主要是靜態(tài)數(shù)據(jù)成員。所以我們總結(jié)下靜態(tài)數(shù)據(jù)成員

                  (1)靜態(tài)數(shù)據(jù)成員和類共存亡而不是和對(duì)象。

                  (2)靜態(tài)數(shù)據(jù)成員在類加載時(shí)候分配空間并進(jìn)行初始化,而不是在對(duì)象加載時(shí)候。所以靜態(tài)數(shù)據(jù)成員默認(rèn)初始化為0。

                         重點(diǎn)是:類中的靜態(tài)數(shù)據(jù)成員知識(shí)一份聲明,必須在類外重新定義并初始化靜態(tài)數(shù)據(jù)成員。

                  (3)類外通過(guò)類作用域運(yùn)算符::訪問(wèn)靜態(tài)數(shù)據(jù)成員。

            6.const用法

                    (1)const成員函數(shù),這時(shí)候const加載函數(shù)名后面 {}之前。表示函數(shù)不會(huì)改變當(dāng)前對(duì)象的狀態(tài),而且只能調(diào)用const成員函數(shù)。(養(yǎng)成習(xí)慣,能加盡量加)

                           Tips:這里const也是函數(shù)簽名的一部分。

                    (2)const對(duì)象,表示常量對(duì)象。

                    (3)const形參,表示函數(shù)中不會(huì)改變?cè)撔螀ⅰW⒁猓撼A繉?duì)象,只能調(diào)用const成員函數(shù),因?yàn)檫@才能保證狀態(tài)不被改變,同時(shí)這樣保證了他就是常量對(duì)象。

                            Tips:這里const也是函數(shù)簽名的一部分。

                     (4)const返回值,說(shuō)明返回值是不可以改變的。

            以上這些都是總結(jié),不是寫(xiě)給沒(méi)基礎(chǔ)的人看的。只是為了方便整理和記憶。

            posted @ 2014-09-04 17:18 swp 閱讀(312) | 評(píng)論 (0)編輯 收藏

            這道題目是大數(shù)加法。總結(jié)一些一點(diǎn)經(jīng)驗(yàn)。

            (1)整值函數(shù)的應(yīng)用。(這個(gè)不懂的話,去看我Math欄目下有這個(gè)分析)

            (2)sscanf、sprintf的應(yīng)用

            (3)分塊計(jì)算的格式問(wèn)題。

            先直接看代碼:
                
             1 #include <iostream>

             2 #include <cstdio>
             3 #include <vector>
             4 #include <cstring>
             5 using namespace std;
             6 struct BigInteger {
             7     static const int BASE = 100000000;
             8     static const int WIDTH = 8;
             9     vector<int> s;
            10     
            11     BigInteger(long long num = 0) {
            12         *this = num;
            13     }
            14     
            15     BigInteger operator=(long long num) {
            16         s.clear();
            17         do {
            18             s.push_back(num % BASE);
            19             num /= BASE;
            20         }while (num > 0);
            21         return *this;
            22     }
            23     
            24 
            25     BigInteger operator=(const string& str) {
            26         s.clear();
            27         int x;
            28         int len = (str.size() - 1) / WIDTH + 1;//這里有人看不懂,請(qǐng)看我寫(xiě)的整值函數(shù) 
            29         for (int i = 0; i < len; i++) {
            30             int end = str.size() - i * WIDTH;
            31             int start = max(0, end - WIDTH);//確定分割的區(qū)間為[start, end)是左閉右開(kāi),長(zhǎng)度就是end - start 
            32             sscanf(str.substr(start, end - start).c_str(), "%d", &x);
            33             s.push_back(x);
            34         }
            35         return *this;
            36     }
            37     
            38     BigInteger operator+(const BigInteger& bi) const{
            39         BigInteger temp;
            40         temp.s.clear();
            41         for (int i = 0,g = 0;;i++) {
            42             
            43             if (g == 0 && i >= s.size() && i >= bi.s.size()) break;
            44             int x = g;
            45             if (i < s.size()) x += s[i];
            46             if (i < bi.s.size()) x += bi.s[i];
            47             temp.s.push_back(x % BASE);
            48             g = x / BASE;
            49         }
            50         return temp;    
            51     }    
            52     
            53     BigInteger operator +=(const BigInteger& b) {
            54         *this = *this + b;return *this;
            55     }
            56 };
            57 
            58 istream& operator >>(istream &in, BigInteger& x) {
            59     string s;
            60     if (!(in >>s)) return in;
            61     x = s;
            62     return in;
            63 }
            64     
            65 ostream& operator <<(ostream &out, BigInteger&bi) {
            66     out << bi.s.back();
            67     for (int i = bi.s.size()-2; i >= 0; i--) {//再?gòu)牡箶?shù)第二個(gè)輸出 
            68         char buf[20];
            69         sprintf(buf, "%08d", bi.s[i]);
            70         //cout << buf;
            71         for (int j =0; j < strlen(buf); j++) out << buf[j];
            72     }
            73     return out;
            74 }
            75 
            76 int main() {
            77     int n;
            78     BigInteger a,b,c;
            79     cin >> n;
            80     int kase = 1;
            81     while (n) {
            82         cin >> a >> b;
            83         c = a + b;
            84         if (n != 1)
            85            cout <<"Case " << kase++ << ":" << "\n" << a << " + " << b << " = " << c << endl << endl;
            86         else
            87            cout <<"Case " << kase++ << ":" << "\n" << a << " + " << b << " = " << c << endl;
            88         n--;
            89     }
            90     return 0;
            91 }
            (1)(2)略。
            (3)分塊處理的坑:

            前面兩個(gè)我就不總結(jié)了,這里主要說(shuō)下,分塊計(jì)算的坑。假設(shè)有這個(gè)字符串"123400000001",由于我們要將其
            按照沒(méi)8位字符分成一塊所以第一塊就是00000001、第二快就是1234,然后按照小端存儲(chǔ)格式、低地址對(duì)應(yīng)低位
            但是但他們用sscanf格式化成整數(shù)時(shí)候,00000001不可能還是這樣,這樣就是八進(jìn)制了,而是變成了1,所以我們
            在輸出的時(shí)候,除了最高位對(duì)應(yīng)的那一塊可能不足8位,剩下的塊肯定都要8位處理,所以上面代碼,才從第二快進(jìn)行
            輸出,而且格式是%08d.
            posted @ 2014-09-04 14:56 swp 閱讀(1482) | 評(píng)論 (0)編輯 收藏

            最近寫(xiě)程序的時(shí)候、碰到一個(gè)問(wèn)題。其實(shí)就是將celing函數(shù)用C++默認(rèn)的除法運(yùn)算(向下取整)表示出來(lái)。所以我打算總結(jié)下整值函數(shù)。

            Firth.首先我們要熟悉頂函數(shù)和底函數(shù),最好的方式就是了解他們的圖形。

            由于數(shù)學(xué)符號(hào)在這里不好寫(xiě)出來(lái),我們用floor來(lái)表示底,celing表示頂。

            圖形其實(shí)就是以f(x) = x 為分界線,這邊就不畫(huà)出來(lái)了。向下取整組成的坐標(biāo)點(diǎn)就是(x, floor(x))

            這些剛好就是在f(x) = x下方的,而向上取整則是在上方的。

            Tips:

            所以從圖像中我們可以發(fā)現(xiàn)一下兩個(gè)等式(位移、奇函數(shù))

            1.x – 1 < floor(x) <= x <= celing(x) < x + 1 (可以通過(guò)位移圖像來(lái)得出該不等式)

            2.floor(-x) = – celing(x) 或者 celing(-x) = – floor(x) (這個(gè)其實(shí)可以簡(jiǎn)單記為奇函數(shù))

             

            Second.兩條法則(你要細(xì)分成4條我也不反對(duì))

            1.floor(x) = n 等價(jià)于 n <= x < n + 1 等價(jià)于 x – 1 < n <= x

            2.celing(x) = n 等價(jià)于 n - 1 < x <= n 等價(jià)于 x <= n < x + 1

            Tips:

            1.其中n是整數(shù),x是實(shí)數(shù)

            2.floor(x + n) = floor(x) + n (因?yàn)橛猩厦娣▌t有 floor(x) + n <= x + n < floor(x) + n + 1).

            3.但floor(nx) != n*floor(x)

             

            Third.實(shí)數(shù)和整數(shù)之間的關(guān)系,其實(shí)都等價(jià)于一個(gè)頂或底函數(shù)于整數(shù)的關(guān)系。

            1.x < n 等價(jià)于 floor(x) < n

            2.n < x 等價(jià)于 n < celing(x)

            3.x <= n 等價(jià)于 celing(x) <= n

            4.n <= x 等價(jià)于 n <= floor(x)

            Tips

            1.celing相當(dāng)于擴(kuò)大、floor相當(dāng)于縮小

            2.取到n,則看能取到最大或者最小,最大取celing、最小floor。

               不達(dá)n,則縮小或擴(kuò)大x等式不變。

            3.floor(x + y) 等于 floor(x) + floor(y) 或者是 floor(x) + floor(y) + 1

               x = floor(x) + {x}, y = floor(y) + {y},then

               x + y = floor(x) + floor(y) + {x} + {y},then

               floor(x + y) = floor(x) + floor(y) + floor( {x} + {y})

               and because  0<={x} < 1 and so do {y},so

              0<={x} + {y} <2,so floor({x} + {y}) = 0 or 1

             

            應(yīng)用:

               在程序中應(yīng)用之前,我先說(shuō)下一個(gè)等式的證明

               celing(n / m) = floor( (n + m – 1) / m)

               這里n 、m都是整數(shù),而且m是正整數(shù)。

            證明:

                因?yàn)閏eling(n /m) – floor(n /m) = celing(n / m – floor(n / m))

                = celing(1/m * ( n – m*floor(n / m))) = celing((n mod m) / m)-------------(1)利用了上面兩條法則中Tips的第二點(diǎn)

                 同理可以得出floor((n + m –1) /m) = floor((n mod m + m – 1) / m)---------- (2)

               由(1)可以得到celing((n mod m )/ m) = 1

               由(2)可以得到floor((n mod m + m – 1) / m) = 1 (因?yàn)閚 mod m + m – 1 < 2 *m –1)

               所以可以一步步向上反推得到上面的公式。(其實(shí)這是一種分而自治的證明思想)

            具體在程序中的應(yīng)用例如:

            當(dāng)你要在C++中寫(xiě)如下代碼時(shí)候,而且n 、m都是整數(shù)。

            則celing(n * 1.0 / m) = floor( (n – 1) / m) + 1

            由于C++中除運(yùn)算就是向下取整,所以

            celing(n * 1.0 / m) = (n - 1) / m + 1
            那么什么地方用得到,比如你在做大數(shù)運(yùn)算時(shí)侯,要進(jìn)行,分組,要8位一組
            然后算出一個(gè)可以分成幾組。可以直接利用這個(gè)原理,而不用再其進(jìn)行函數(shù)的
            調(diào)用,比如你在閱讀人家的代碼時(shí)候、有時(shí)候就會(huì)這樣寫(xiě)。

            下次你碰到這種代碼就會(huì)知道什么意思,和為什么能表示成這樣了。

            posted @ 2014-09-03 15:06 swp 閱讀(1136) | 評(píng)論 (0)編輯 收藏

                   現(xiàn)在已經(jīng)大四上學(xué)期了、然而在我看到的很多人其實(shí)是充滿了迷茫。根本不知道自己想要的是什么,也許這真的是教育的巨大失敗。實(shí)習(xí)這個(gè)話題、有人認(rèn)為要早早的去做為好,因?yàn)椴拍芨斓慕佑|社會(huì)經(jīng)驗(yàn),積累工作經(jīng)驗(yàn)。在如今這個(gè)充滿浮躁、毫無(wú)信仰的社會(huì)、在我看來(lái)什么時(shí)候去實(shí)習(xí)并不重要,不要為了學(xué)分而實(shí)習(xí),因?yàn)槟愀静恢滥阆胍氖鞘裁矗腿ッつ康淖穼ぃ沁@有時(shí)侯確實(shí)又是矛盾的。因?yàn)樵谀愀闱宄阕钕胍氖鞘裁矗闱宄阕钕氤蔀橐粋€(gè)什么樣的人并不是那么容易,因?yàn)楦杏X(jué)很多時(shí)候會(huì)欺騙你,只有你去嘗試了、專注的去做了,才會(huì)知道自己真正喜歡的是什么。但是其實(shí)這些早在你在找實(shí)習(xí)之前就應(yīng)該搞清除,你要了解你自己,而不是一頭扎入社會(huì)、盲目而無(wú)信仰,可悲的是,如今有很多人確實(shí)如此,于是他們總覺(jué)得生活不如意、不知道為什么而活著、不知道未來(lái)究竟在哪里。為什么說(shuō)大學(xué)里面是犯錯(cuò)的最好機(jī)會(huì),我十分的贊成這種觀點(diǎn),雖然現(xiàn)在我自身也不是特別有成就的人,但是這句話的卻是很有道理,大學(xué)里不是60分萬(wàn)歲、不是只是找個(gè)女朋友回去,搞不好還要奉子成婚的大學(xué),大學(xué)是真正意義上的自我教育,更重要的是你要在大學(xué)里搞清除、想明白自己到底要做個(gè)什么樣的人并為此打好基礎(chǔ),在這個(gè)搞清楚前,你需要不斷的嘗試、嘗試各種方法。
                  以我自身為例、在上大一時(shí)候,因?yàn)楦咧幸恢笨葱┖诳图记傻男〖總z,所以在報(bào)考大學(xué)時(shí)當(dāng)時(shí)我的想法就是,一定要報(bào)計(jì)算機(jī)類的,因?yàn)槲蚁矚g它,確實(shí)我喜歡編程、我喜歡數(shù)學(xué)。大一時(shí)候,我一直在想要怎么樣才能寫(xiě)個(gè)軟件、我在想那么我得掌握什么、那時(shí)候沒(méi)有認(rèn)識(shí)的學(xué)長(zhǎng)、沒(méi)有人告訴我說(shuō),hello,你該怎么怎么辦、再怎么怎么辦、其實(shí)別人就算告訴你、在我看來(lái)也沒(méi)有多大用處。因?yàn)槊總€(gè)人自身的條件和環(huán)境不可能完全一樣,你不可能復(fù)制別人的成功來(lái)達(dá)到自己的成功,但是你可以學(xué)習(xí)別人成功方法,向他們看齊,所以大一一整年、我自己以為把算法數(shù)據(jù)結(jié)構(gòu)搞定了、我就能寫(xiě)出牛逼的軟件、哈哈,天真!。于是那一整年都泡在算法數(shù)據(jù)結(jié)構(gòu)上、關(guān)鍵剛開(kāi)始自學(xué)也是聽(tīng)痛苦的,主要原因是沒(méi)有經(jīng)驗(yàn),竟然看了嚴(yán)蔚敏那本書(shū),然后還沒(méi)有人可以指導(dǎo)下、倒是那是能自己把你面到圖部分的代碼全部自己搞定、費(fèi)了好大一把盡。當(dāng)時(shí)就覺(jué)得,應(yīng)該差不多了,可以去寫(xiě)軟件了、、、唉、當(dāng)時(shí)就是個(gè)菜逼。大一那時(shí)還十分積極很幸運(yùn)的入選了ACM校隊(duì),不過(guò)我們學(xué)校的acm水平太菜了,但是這個(gè)經(jīng)歷對(duì)我后來(lái)學(xué)習(xí)算法有很大的幫助。然后來(lái)到大二偶然看到網(wǎng)上的直播課程、還是免費(fèi)的、于是當(dāng)時(shí)就心血來(lái)潮的去學(xué)習(xí)了、學(xué)了好大一年,覺(jué)得學(xué)了很多,但卻沒(méi)有底子。這就是我第一次犯的最大錯(cuò)誤,為什么,因?yàn)楫?dāng)時(shí)我也不知道該怎么寫(xiě)軟件,所以就只有去嘗試、這個(gè)代價(jià)是花費(fèi)了很長(zhǎng)時(shí)間,我才明白這不是我想要的,但是我也學(xué)到了一些關(guān)于計(jì)算機(jī)的東西。接著迷迷糊糊的來(lái)到了大三,學(xué)了計(jì)算機(jī)網(wǎng)絡(luò)、編譯原理、操作系統(tǒng)等一些課程、其實(shí)當(dāng)時(shí)我覺(jué)得這些課程這是他們的無(wú)聊枯燥、特別是網(wǎng)絡(luò)、寫(xiě)得全都是背誦的,根本不知道怎么去實(shí)踐、也就是在這個(gè)過(guò)程我又開(kāi)始了自學(xué)、開(kāi)始探索該怎么學(xué)習(xí)這些課程、在探索的過(guò)程、就慢慢的才了解到這些課程的內(nèi)在、后來(lái)覺(jué)得這些課程真的是很有意思。但是呢,問(wèn)題是等我探索完了、期末又來(lái)了,但是于此同時(shí)我對(duì)計(jì)算機(jī)和軟件這門(mén)學(xué)科了解的更深了,因?yàn)槲抑涝趺慈W(xué)。在大三下的時(shí)候,我就已經(jīng)知道自己要怎么去學(xué)習(xí)這些課程、并且在這個(gè)過(guò)程我還自學(xué)了大量的數(shù)學(xué)知識(shí)、接觸了大量程序的東西、就是因?yàn)橛羞@些嘗試、和真正的去做,我才越來(lái)越堅(jiān)定自己能做什么,喜歡做什么,想要的是什么、其實(shí)前幾年也不是白上的,只是學(xué)校教的畢竟有限,更多的是要自我教育。
                  其實(shí)大學(xué)里,我們就應(yīng)該好好珍惜時(shí)間,最簡(jiǎn)單的探索方法就是從大一一進(jìn)來(lái),你就去學(xué)習(xí)你感興趣的專業(yè)、最重要的課程都認(rèn)真的去學(xué)習(xí),在這個(gè)自學(xué)的過(guò)程、你一定能搞找到很多你本來(lái)看不清楚的東西,當(dāng)然你還要有一顆不放棄的心,因?yàn)檫@個(gè)過(guò)程不是那么的容易,但是當(dāng)你做到了你會(huì)越來(lái)越明白自己想要的究竟是什么,想成為什么樣的人,也許這個(gè)過(guò)程需要2年,也學(xué)需要3年,但請(qǐng)記住你在大學(xué),盡管去需找,需找你人生的意思!。所以大學(xué)是犯錯(cuò)誤和實(shí)踐的最好的時(shí)間、不怕犯錯(cuò)、就怕連錯(cuò)誤都不會(huì)犯,然后迷失掉自己。為了實(shí)習(xí)而實(shí)習(xí),而且你進(jìn)入社會(huì)第一家公司,對(duì)我們其實(shí)是十分重要的!
                   之所以我打算工作一年期間考研究生(現(xiàn)在還在學(xué)習(xí)),一來(lái)是不打算再過(guò)度依賴父母,自己也掙點(diǎn)錢,二來(lái)是為了給自己3年來(lái)好好的沉淀下這些東西,研究生階段、我一定天天都是高三、因?yàn)槲抑雷约阂氖鞘裁础4宋乃徒o哪些還在迷茫中的人,送給哪些還在大學(xué)里的人,如果你明白了、永遠(yuǎn)都不晚,努力去尋找,越早去尋找越好,也越能找到。
            posted @ 2014-09-02 00:14 swp 閱讀(220) | 評(píng)論 (0)編輯 收藏

            由于是數(shù)學(xué),所以要嚴(yán)謹(jǐn)。我們對(duì)于映射的概念直接摘抄來(lái)自同濟(jì)大學(xué)的高數(shù)課本。
            映射的概念:
            設(shè)X和Y是兩個(gè)非空的集合。存在一個(gè)法則T,使得X中的每個(gè)元素x按照法則T,在Y中都有一個(gè)唯一元素y與之對(duì)應(yīng)。
            那么T就稱為X到Y(jié)的映射。記為T(mén):X-->Y.
            (1)X稱為T(mén)的定義域、Y稱為T(mén)的值域。而且y稱為x的像,x稱為原像。
            (2)函數(shù)、算子、都是映射的別名。
            Tips:
            為了更好的理解、其實(shí)學(xué)過(guò)圖論,就很好理解、可以把X看成起始點(diǎn)集合、Y看成終點(diǎn)集合、那么映射就是從起始點(diǎn)出發(fā)、都只有一條路徑可以到對(duì)應(yīng)的達(dá)終點(diǎn)(也就是說(shuō)如果存在從某個(gè)起始點(diǎn)有兩條路徑可以到達(dá)不同的兩個(gè)終點(diǎn),就不叫映射)。
            所以所謂的就是終點(diǎn)、原像就是起始點(diǎn)。

            滿射、單射、一一映射:
            滿射:在映射的概念下,不存在孤立的終點(diǎn)。(就相當(dāng)于很多小島,分為左右兩半。左邊的每個(gè)小島都只有一座橋到達(dá)右邊的一個(gè)小島,不存在其它橋可以在去其它小島,然后右邊的小島都有橋連接,這就叫滿射)。
            單射:?jiǎn)紊渚褪遣淮嬖趦蓚€(gè)左邊的小島可以和右邊的同一座小島建立了橋。

            一一映射:同時(shí)滿足以上兩個(gè)
            嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)定義:
            設(shè)T是集合X到Y(jié)的映射,諾T(X)=Y,即Y中任一元素均是X中某元素的像,則陳T為X到Y(jié)上的滿射。
            對(duì)任意x1、x2屬于X,x1 <>x2,必定有T(x1)<>T(x2),則陳T為X到Y(jié)上的單射。
            一一映射:滿足以上兩個(gè)。

            逆映射、復(fù)合映射:
            這兩個(gè)的數(shù)學(xué)定義就不講了、去翻翻高數(shù)課本。主要總結(jié)下從離散化的圖來(lái)理解的角度。
            逆映射:也就是在一一映射的基礎(chǔ)下,反客為主。把起始點(diǎn)變成終點(diǎn)、終點(diǎn)變成起始點(diǎn)。
            復(fù)合映射:復(fù)合映射說(shuō)的是在映射的基礎(chǔ)下、對(duì)于第三方島嶼、右邊的島嶼都有建橋到第三方的島嶼(右映射到第三方,但第三方可能存在孤島)。則我們就可以把右邊看作中間點(diǎn)、左邊的島嶼也都有到第三方島嶼的路徑。(左邊映射到第三方
            ,但第三方可能存在孤島

            數(shù)學(xué)記號(hào):
            映射T的逆映射記為T(mén)(-1)(y) = x.
            T1、T2兩個(gè)映射復(fù)合映射記為:T2 。T1
            上面句號(hào)是在正中間.
            posted @ 2014-08-29 23:44 swp 閱讀(627) | 評(píng)論 (0)編輯 收藏

            最近在練習(xí)算法、覺(jué)得有必要總結(jié)下C++這方面的知識(shí),C++確實(shí)是復(fù)雜,but i love it。
            第一:運(yùn)算符重載的基本應(yīng)用。第二:運(yùn)算符重載于友原函數(shù)的關(guān)系。第三:結(jié)構(gòu)體于類關(guān)于運(yùn)算符重載的區(qū)別。首先我需要普及下基本的知識(shí):
            預(yù)備知識(shí)operator(操作符)、operand(操作數(shù))、表達(dá)式
            表達(dá)式是由操作符和操作數(shù)構(gòu)成的,而且一般每個(gè)表達(dá)式都有副作用,并且都有結(jié)果(關(guān)注結(jié)果和副作用)。什么意思?
            關(guān)于副作用的理解:其實(shí)就是在達(dá)到結(jié)果的這個(gè)過(guò)程中所做的一些事情,而這些事情產(chǎn)生了一些影響,但是不影響結(jié)果。
            好像有點(diǎn)繞、看看例子在理解吧。
            看例子:
            int a = 1,b=2,c; c = a + b;
            在這段代碼里面,c = a + b;就是表達(dá)式、其中 = 、 + 又稱為操作符、c、a、b又稱為操作數(shù)。其結(jié)果就是計(jì)算出了a+b的值,副作用沒(méi)有。
            又比如:
            cout << "Helloe" << endl;其中 <<是操作符、cout、"helloe"、endl是操作數(shù)。<<的結(jié)果是返回了ostream的引用,而副作用就是將"Helloe"輸出到屏幕。

            第一:運(yùn)算符重載的基本應(yīng)用。
            看如下代碼:
             1 #include <iostream>
             2 
             3 using namespace std;
             4 
             5 class Point {
             6 private:
             7     double x,y;
             8 public:
             9     Point(double x = 0, double y = 0):x(x),y(y) {
            10         
            11     }
            12     Point operator+(const Point &p) const{//這種是最基本的方式、其本質(zhì)是做操作數(shù)調(diào)用operator+函數(shù) 
            13         Point temp;
            14         temp.x = this->x + p.x; 
            15         temp.y = this->y + p.y;
            16         return temp;
            17     }
            18     /*
            19     ostream& operator<<(ostream& out) {
            20         out << x << " " << y;
            21         return out;
            22     }
            23     */
            24     friend ostream& operator<<(ostream& out, Point & p);   
            25 };
            26 ///*
            27 ostream& operator<<(ostream& out, Point & p) {
            28     out << p.x <<" "<< p.y;
            29     return out;
            30 }
            31 //*/
            32 
            33 int main() {
            34     
            35     Point a(1,5);
            36     Point b(5,7);
            37     Point c;
            38     c = a + b;
            39     //c << cout << endl;
            40     cout << c << endl; 
            41     return 0;
            42 }
            如上代碼:
            注釋掉的先不用看,12--17行就是最基本的運(yùn)算符重載、其調(diào)用在38行,本質(zhì)是:c = a.operator+(b);也就是調(diào)用做操作數(shù)的方法那么還要友元函數(shù)干什么呢?考慮下輸出,如果你想讓cout對(duì)象能自動(dòng)輸出Point的對(duì)象如何半到。你很聰明一定想到重載<<運(yùn)算符、yes!right!于是把operator<<作為成員函數(shù),你只能寫(xiě)成上面注釋掉的哪樣,那么調(diào)用時(shí),麻煩就來(lái)了、編程39行的樣子。尼瑪丫、真實(shí)變態(tài)、我是想讓它是cout << c << endl。搞得四不像了。是的就是因?yàn)檫@樣子不好用,所以我們要結(jié)合友元函數(shù)的技術(shù)和運(yùn)算重載技術(shù)來(lái)實(shí)現(xiàn)40行的調(diào)用。好了重點(diǎn)來(lái)了!謹(jǐn)記之!
            tips:對(duì)于非成員函數(shù)的運(yùn)算符重載,第一個(gè)參數(shù)就是左操作數(shù),第二個(gè)操作數(shù)就是右操作數(shù)。
            第二:運(yùn)算符重載和友原函數(shù)的關(guān)系
            所以上面的友元函數(shù)的參數(shù)順序是cout對(duì)象的引用是第一個(gè)參數(shù)、Point對(duì)象引用為第二個(gè)參數(shù)。
            我們還要解決第二個(gè)問(wèn)題,如何讓這個(gè)函數(shù)訪問(wèn)Point對(duì)象的私有部分,只要在Point類中聲明,hello我是你的朋友啦、他的東西就是你的啦、你要怎么用怎么用,這才是朋友么!不、是基友!我認(rèn)為應(yīng)該叫做基友函數(shù),哈哈。聲明格式就是加上friend和函數(shù)的聲明即可。
            tips:成員函數(shù)和非成員函數(shù)的運(yùn)算符重載的區(qū)別就是,參數(shù)個(gè)數(shù)不一樣。成員函數(shù)中的左操作數(shù)不用體現(xiàn)出來(lái)(用this即可)、而非成員函數(shù)的左右操作數(shù)都要體現(xiàn)在運(yùn)算符函數(shù)參數(shù)里面。
            第三:結(jié)構(gòu)體和類關(guān)于運(yùn)算符重載的區(qū)別
            關(guān)于區(qū)別,其實(shí)只有一個(gè),因?yàn)榻Y(jié)構(gòu)體默認(rèn)的權(quán)限是public、即其成員對(duì)外界都是可見(jiàn)的,所以其不需要友元函數(shù)來(lái)支持,但是其還是需要用非成員函數(shù)來(lái)重載<<比較方便、而不是用成員函數(shù)來(lái)重載<<.原因上面已經(jīng)說(shuō)過(guò)了。注意這個(gè)原因不是友元這項(xiàng)技術(shù)體現(xiàn)出來(lái)的,而是成員函數(shù)和非成員函數(shù)體現(xiàn)出來(lái)的,友元技術(shù)知識(shí)用來(lái)支撐其在類中的應(yīng)用。、
            tips:對(duì)于結(jié)構(gòu)體,非成員函數(shù)的運(yùn)算符重載方法,不需要聲明為友元函數(shù)。
            如下代碼:
             1 #include <iostream>
             2 
             3 using namespace std;
             4 
             5 struct Point{
             6     double x,y;
             7     Point(double x = 0, double y = 0):x(x),y(y) {
             8         
             9     }
            10     Point operator+(const Point &p) const{//這種是最基本的方式、其本質(zhì)是做操作數(shù)調(diào)用operator+函數(shù) 
            11         Point temp;
            12         temp.x = this->x + p.x; 
            13         temp.y = this->y + p.y;
            14         return temp;
            15     }
            16 };
            17 
            18 ostream& operator<<(ostream& out, Point & p) { 
            19     out << p.x <<" "<< p.y;
            20     return out;
            21 }
            22 
            23 
            24 int main() {
            25     
            26     Point a(1,5);
            27     Point b(5,7);
            28     Point c;
            29     c = a + b;
            30     cout << c << endl; 
            31     return 0;
            32 }
            posted @ 2014-08-29 16:31 swp 閱讀(2648) | 評(píng)論 (0)編輯 收藏

            這是我自己總結(jié)的cocos2dx,方便自己查看和復(fù)習(xí)。所以不一定適合您。
            //
            //  ImageScene.h
            //  sceneDemo
            //
            //  Created by sixleaves on 14-7-29.
            //
            //

            #ifndef __sceneDemo__ImageScene__
            #define __sceneDemo__ImageScene__

            #include "cocos2d.h"
            class ImageScene : public cocos2d::Layer
            {

            public:
                static cocos2d::Scene * createScene();
                virtual bool init();
                CREATE_FUNC(ImageScene);
            };

            #endif /* defined(__sceneDemo__ImageScene__) */
            /*
             總結(jié):
             知識(shí)點(diǎn)一:
             Scene場(chǎng)景類、Layer層的概念
             其實(shí)Scene是一對(duì)多得關(guān)系,一個(gè)場(chǎng)景類可以有多個(gè)Layer層。
             實(shí)質(zhì)上Scene就是由Layer層構(gòu)成的。他們的關(guān)系,你可以看成
             是樹(shù)的結(jié)構(gòu),而且Scene和Layer都繼承自Node類,所以其都
             能有addChild方法,所以Scene可以把Layer添加進(jìn)去。
             
             知識(shí)點(diǎn)二:宏定義的兩個(gè)應(yīng)用
             1.在預(yù)編譯時(shí)期的過(guò)濾應(yīng)用(防御性措施)
             #ifndef __xxXXxxX_H__
             #define __xxXXxxX_H__
             insert #include code
             #endif
             這樣在當(dāng)包含兩次時(shí),就會(huì)過(guò)濾掉下一次包含。
             2.宏函數(shù)
             可以查看CREATE_FUNC的定義:
             如下
                    #define CREATE_FUNC(__TYPE__) \
                    static __TYPE__* create() \
                    { \
                    __TYPE__ *pRet = new __TYPE__(); \
                    if (pRet && pRet->init()) \
                    { \
                    pRet->autorelease(); \
                    return pRet; \
                    } \
                    else \
                    { \
                    delete pRet; \
                    pRet = NULL; \
                    return NULL; \
                    } \
                    }
            “\”號(hào)的意義:首先宏函數(shù)其實(shí)本質(zhì)上必須寫(xiě)成一行,
                       而\只是在編程中對(duì)于不方便寫(xiě)在一行的代碼的格式化
                       它告訴編譯器,我這一行還沒(méi)結(jié)束,把下面的繼續(xù)整合
                       上來(lái)成為一行。而在此處,這樣寫(xiě)是為了提高可讀性。
            該函數(shù)的作用:創(chuàng)建指定對(duì)象,并且調(diào)用這個(gè)對(duì)象的構(gòu)造函數(shù)(init)。
             
            知識(shí)點(diǎn)三:C++中的多態(tài)
            對(duì)于同一個(gè)父類的類,調(diào)用的方法,取決于對(duì)象,這種形式的多態(tài)
            需要將父類中相應(yīng)地方法定義為virutal即可。其實(shí)這就是java
            中的盡量使用借口引用的原因、其就是為了適應(yīng)多態(tài),區(qū)別在于C++
            中比較啰嗦,而java是默認(rèn)就是有virtual這種功能的。不用你再寫(xiě)
            明。
            所以為了能夠在創(chuàng)建這個(gè)對(duì)象后調(diào)用其構(gòu)造函數(shù)init。需要重寫(xiě)它
            這就是為什么其父類將其聲明為virtual的原因。至于createScene
            純粹就是工廠方法。
             
            */

            createScene主要還是分別調(diào)用Scene類和自定義layer類的工廠方法create創(chuàng)建對(duì)象,讓后將其添加到Scene對(duì)象中。
            //
            //  ImageScene.cpp
            //  sceneDemo
            //
            //  Created by sixleaves on 14-7-29.
            //
            //

            #include "ImageScene.h"
            USING_NS_CC;

            Scene * ImageScene::createScene() {
                auto scene = Scene::create();
                auto imageScene = ImageScene::create();
                scene->addChild(imageScene);
                return scene;
            }


            bool ImageScene::init() {
                Size size = Director::getInstance()->getVisibleSize();
                auto sprite = Sprite::create("CloseSelected.png");
                sprite->setPosition(size.width/2, size.height/2);
                addChild(sprite);
                return true;
            }
            posted @ 2014-07-30 15:49 swp 閱讀(291) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共10頁(yè): First 2 3 4 5 6 7 8 9 10 
            久久精品国产亚洲AV不卡| 婷婷久久综合| 99久久久国产精品免费无卡顿| 免费久久人人爽人人爽av| 精品999久久久久久中文字幕| 青青草原综合久久| 亚洲AV伊人久久青青草原| 麻豆av久久av盛宴av| 久久夜色撩人精品国产| 97精品伊人久久久大香线蕉| 久久精品国产99国产精偷| 免费无码国产欧美久久18| 精品久久久久久无码人妻热| 国产精品天天影视久久综合网| 久久无码人妻精品一区二区三区| 久久综合久久自在自线精品自 | 人妻少妇精品久久| 国产精品永久久久久久久久久| 一本综合久久国产二区| 亚洲熟妇无码另类久久久| 久久国产香蕉视频| 国产精品一久久香蕉国产线看| 国产精品99久久久久久猫咪| 99精品国产综合久久久久五月天| 久久免费美女视频| 国产精品久久久久影院色| 2020国产成人久久精品| 欧美大战日韩91综合一区婷婷久久青草 | 国产人久久人人人人爽| 久久精品国产一区二区三区日韩| 亚洲国产精品嫩草影院久久| 99久久伊人精品综合观看| 97久久香蕉国产线看观看| 久久超碰97人人做人人爱| 无码日韩人妻精品久久蜜桃 | 国产国产成人久久精品| 色婷婷综合久久久久中文| 久久久久国产精品人妻| 午夜视频久久久久一区| 国产免费久久精品99re丫y| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 |