cocos棋牌源码_cocos 游戏源码

hacker|
124

文章目录:

cocos游戏源码怎么用

cocos游戏源码使用方法如下:

1、启动CocosCreator。

2、选择打开其他项目。

3、点击打开按钮,CocosCreator编辑器主窗口打开即可。

Cocos Creator 引擎源码调试、修改

Cocos Creator 的引擎部分包括 JavaScript 、 Cocos2d-x-lite 和 adapter 三个部分,各部分对应源码在(Mac 版):

JavaScript:CocosCreator.app/Resource/engine(JS 引擎)

Cocos2d-x-lite:CocosCreator.app/Resource/cocos2d-x(Cococ2d-x 引擎)

adapter:CocosCreator.app/Resource/builtin/

如何使用Cocos Code IDE和Cocos2d-x开发《一个都不能落下》游戏

1.创建新工程

打开Cocos Code IDE,切换到Lua工作环境

选择菜单,新建一个Cocos Lua项目,输入项目名:NoOneLeftBehind。

点击下一步设置屏幕方向和分辨率,确认完成

这个时候你就可以点击运行按钮,没有问题的话示例demo就会弹出。

因为分辨率被我们更改过的关系,游戏画面有点变形。

2.游戏逻辑

现在我们就可以往游戏项目中添加自己的代码了。由于游戏的代码细节并不是本文的重点,所以这里只简单地介绍《一个都不能落下》的实现原理。整个游戏项目源码可以在我的Github上下载。

A.main.lua是游戏的入口,在main()函数中我们可以找到场景跳转的代码,这在接口上和Cocos2d-x是保持一致的,因此我们可以很容易上手。在这里我们更改第一个场景为主菜单场景。

--create scene

local scene = require("MenuScene")

local menuScene = scene.createScene()

if cc.Director:getInstance():getRunningScene() then

cc.Director:getInstance():replaceScene(menuScene)

else

cc.Director:getInstance():runWithScene(menuScene)

end

B.MenuScene.lua是游戏的主菜单,四种难度的游戏模式可以在这里进行选择。你可以用下面这种方式创建一个menu。

--create menu

local function menuCallbackOpenNormal()

cc.Director:getInstance():replaceScene(require("GameScene").createScene(2))

end

local normal = cc.MenuItemImage:create("normal.png", "normal.png")

normal:setPosition(0, 150)

normal:registerScriptTapHandler(menuCallbackOpenNormal)

...

local menu = cc.Menu:create(normal, nightmare, hell, inferno)

self:addChild(menu)

C.GameScene.lua是游戏的主场景,通过传进来的heroCount设置同时显示几个hero。

--add hero

function GameLayer:addControllers()

local visibleSize = cc.Director:getInstance():getVisibleSize()

local startY = 30

local gap = (visibleSize.height - startY) / self._heroCount

for i=1, self._heroCount do

local controller = require("HeroController").createController(self, startY + gap * (i - 1))

table.insert(self._controllers, i, controller)

end

end

D.在这里我们对英雄和他作用的环境进行了封装。然后在GameScene的每一帧调用HeroController的onUpdate函数,在这个函数中检测一个随机定时器来判断是否应该生成一个新的障碍物。

-- create block

function HeroController:onUpdate()

self.frameIndex = self.frameIndex +1

if self.frameIndex = self.nextKeyFrameIndex then

local block = require("Block").new()

block:init()

self._layer:addChild(block)

block:setPositionY(self._positionY + block:getContentSize().height / 2)

self:resetTimer()

end

end

E.物理引擎。Hero和,Ground,Block的碰撞这里采用了Cocos2d-x集成的物理引擎。以下代码反映了Hero和Block的碰撞检测。

-- collision detection

self.touchListener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN)

cc.Director:getInstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(self.touchListener, self)

local function onContactBegin(contact)

self:unscheduleUpdate()

cc.Director:getInstance():getEventDispatcher():removeEventListener(self.touchListener)

cc.Director:getInstance():getEventDispatcher():removeEventListener(self.contactListener)

cc.Director:getInstance():replaceScene(require("GameOver").create(self._heroCount, score))

end

self.contactListener = cc.EventListenerPhysicsContact:create();

self.contactListener:registerScriptHandler(onContactBegin, cc.Handler.EVENT_PHYSICS_CONTACT_BEGIN);

local eventDispatcher = self:getEventDispatcher()

eventDispatcher:addEventListenerWithSceneGraphPriority(self.contactListener, self);

F.Block类,封装了障碍物,每一帧向左移动。如果超出了屏幕则删除。

--move the block

function update(dt)

self:setPositionX(self:getPositionX() - 3.5)

if (self:getPositionX() 0) then

self:unscheduleUpdate()

self:removeFromParentAndCleanup()

end

end

self:scheduleUpdateWithPriorityLua(update, 0)

3.各平台打包

点击打包按钮,

如果没有添加本地代码,会提示添加本地代码。

A.Android打包

选择打包为APK,选择debug签名或者自定义签名,选择SDK版本,确认生成。

B.iOS平台打包

选择打包为IPA,选择证书和平台,确认生成。.....

我用cocos studio 如果想改cocos2d-x的源码怎么办

-x 版在包含 oc 版所有功能的基础上还提供了额外的模块,同时有 Studio 这样的编辑器支持,以及良好的跨平台特性。所以实在没有必要继续使用 oc 版了。我用cocos studio 如果想改cocos2d-x的源码怎么办

5条大神的评论

  • avatar
    访客 2022-12-25 下午 07:10:56

    nstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(self.touchListener, self)local function onContactBegin(contact)

  • avatar
    访客 2022-12-25 下午 10:19:21

    nTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN)cc.Director:getInstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(sel

  • avatar
    访客 2022-12-25 下午 03:45:20

    tor.app/Resource/engine(JS 引擎) Cocos2d-x-lite:CocosCreator.app/Resource/cocos2d-x(C

  • avatar
    访客 2022-12-25 下午 09:19:10

    ator 引擎源码调试、修改Cocos Creator 的引擎部分包括 JavaScript 、 Cocos2d-x-lite 和 adapter 三个部分,各部分对应源码在(Mac 版): JavaScript

  • avatar
    访客 2022-12-25 下午 10:37:46

    游戏源码使用方法如下:1、启动CocosCreator。2、选择打开其他项目。3、点击打开按钮,CocosCreator编辑器主窗口打开即可。Cocos Creator 引擎源码调试、修改Cocos Creator 的引擎部分包括 JavaScript 、 Cocos2d-x-

发表评论