Cocos2dx 3 x建立Layer的步驟

2021-12-29 21:44:53 字數 1389 閱讀 4137

建立

1、新建類檔案。注意目錄為classes下,否則檔案不能正常找到。

2、修改預編譯頭。如用vs,預設為#pragma once,為了相容,改為#ifndef | #define | #endif

3、新增cocos2d.h標頭檔案

4、繼承cocos2d::layer,預設為private繼承,通常需要改為public繼承。

5、新增init()和create_func()

6、實現init()

7、新增createscene(),可選

最基本的**:

#ifndef _gamelayer_h

#define _gamelayer_h

#include "cocos2d.h"

class gamelayer : public cocos2d::layer

;#endif // _gamelayer_h// gamelayer.cpp

#include "gamelayer.h"

using_ns_cc;

// 建構函式,如有物件成員,需要在此初始化

gamelayer::gamelayer()

{}// 析構

gamelayer::~gamelayer()

{}//虛函式,初始化,當執行本類的create()函式時會被自動呼叫

bool gamelayer::init()

// scene的入口,通過該函式進入layer

scene* gamelayer::createscene()

進入// 直接進入

auto layer = gamelayer::createscene();

director::getinstance()->replacescene(layer);

// 特效進入

auto layer = gamelayer::createscene();

auto slidein = transitionslideinl::create(1.0f, layer);

director::getinstance()->replacescene(slidein);

// 進入特效完之後才發生

//宣告虛函式

virtual void onentertransitiondidfinish();新增定時器// gamelayer.h

private:

// 宣告

void gamestep(float dt);// gamalayer.cpp

// 實現

void gamelayer::gamestep(float dt)

void gamelayer::startgame()

cocos2d x 3 x 觸控響應

3.x需要自己註冊監聽事件。有兩種方式,乙個是用c 的bind繫結自定義函式,cocos2d x封裝了一下,提供了介面 cc callback 數字,數字代表引數個數。eventlistener需要兩個引數 touch 和 event 所以這裡使用的是cc callback 2 auto dispa...

cocos2d x 3 x記憶體管理

記憶體管理有ref提供的4個方法 void retain 將該物件的引用計數器 1 void release 將該物件的引用計數器 1 ref autorelease 不改變物件的引用計數器值,將物件新增到自動釋放池,返回物件本身 unsigned int getreferencecount con...

Cocos2dx 3 x多點觸控問題

首先,這並不是什麼教程。只是今天折騰了一天的乙個比較傻的問題。3.x的eventlistener想必各位已經都會了。toucheventallatonce是多點觸控,但幾乎沒什麼人用過。用法不難,但是很多人和我一樣卡在了無論怎麼搞touches的數量都只有一,換句話說,就是死活單點觸控。搜了很多論壇...