今天開始學習cocos2dnode
首先是拿一個網上的demo來學習,修改本身的。沒想到遇到的困難還真很多,api,方法名都不知道,不少都要到網上去查,下面紀錄一下今天遇到的問題api
作的是一個消除的小遊戲函數
看到demo裏面是畫點的,而我想用圖片,而後就不知道怎麼替換圖片了,靠。 網上找到方法,就是建立一個CCTexture2D而後替換:
代碼:學習
CCTexture2D * texture =[[CCTextureCache sharedTextureCache] addImage: @」pa_icon.png」];動畫
[sprite2 setTexture:texture];
想設置一個view的背景圖片也找不到屬性,而後又去網上找,在init方法的最上面加上此段代碼,明白了cocos2d的座標系是從左下角開始的
代碼:code
CGSize winsize = [[CCDirector sharedDirector] winSize];
CCSprite *back = [CCSprite spriteWithFile:@"Images/bgplaying.png"];
back.position = ccp(winsize.width/2, winsize.height/2);
[self addChild:back];
設置背景色爲透明色:[super initWithColor:ccc4(255, 255, 255, 0)]——-最後一個參數改成0就透明瞭
cocos2d裏面有內置的畫圓點的功能CCDrawNode,隨着修改radius的值能夠控制畫出圖形的形狀
代碼:隊列
[m_selectNode drawDot:ccp(15, 15) radius:DRAWSPRITE_RADIUES color:col];
須要對一個Srpint進行縮小的操做;下面的使用是先建立兩個縮放的動畫,而後再建立一個執行隊列,而且把動畫放進去,最後讓sprite執行這個動畫隊列。
代碼:遊戲
CCScaleBy * scaleBy2 = [CCScaleBy actionWithDuration:0.2 scale:0]; CCScaleBy * scaleBy2 = [CCScaleBy actionWithDuration:0.2 scale:0]; CCSequence * seq = NULL; seq = [CCSequence actions:scaleBy,scaleBy2, nil]; [itemSrpint runAction:seq];
設置sprtie的放大縮小比列的方法: [itemSrpint setScale:1.0];
今天學到的action的知識較多圖片
從sprite的原始點移動到指定的點回調函數
CCMoveTo * moveto = [CCMoveTo actionWithDuration:SPAWN_DROPDOWN_TIME/3 position:pos];
使sprite從一個點開始跳躍,設置跳的高度和次數
CCJumpTo * jump = [CCJumpTo actionWithDuration:SPAWN_JUMP_TIME/3*2 position:pos height:20 jumps:1];
設置動做執行完後的回調函數
CCCallBlockO * callB = [CCCallBlockO actionWithBlock:^(id object) {
m_hasSelected = NO;
self.visible = YES;
} object:self];
加載音頻文件(最好是在初始化的時候就加載,用的時候播放加載好的音頻文件就行了)
[[SimpleAudioEngine sharedEngine] preloadEffect:@"Sounds/1.aif"];
[[SimpleAudioEngine sharedEngine] playEffect:@"Sounds/1.aif"];
判斷兩種顏色是否相等
ccc4FEqual(m_currentDrawColor, node.m_color)
感受比較難點的技術就是畫線的,可是看了代碼後感受條理仍是很清晰的(我寫的時候是把畫線的方法寫在draw方法裏面,draw方法會在程序運行的時候一直調用,來刷新界面)
1
2
3
4
5
6
7
8
9
//獲取線的寬度
glLineWidth(10);
//設置線的顏色 ccColor4B c4b = ccc4BFromccc4F(m_currentDrawColor); ccDrawColor4B(c4b.r, c4b.g, c4b.b, c4b.a); //根據兩個點開始畫線 ccDrawLine(pos, pos1);