大海教你学手游2015CocosLua第一季_01环境搭建与场景封装

本文主要是介绍大海教你学手游2015CocosLua第一季_01环境搭建与场景封装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

课程地址:http://ke.qq.com/cgi-bin/courseDetail?course_id=78017

cocos2d-x直播课交流群: 461039382(发布每节课视频和资料)

网盘资料下载:http://pan.baidu.com/s/1dDvZvAp ( 密码要进群才有)

         Cocos是一款跨平台移动游戏引擎,实际上是把不同平台的图形处理、交互事件通过

C++实现了统一Api,见下图:


中间蓝色的部分Cocos2d-x就是通过C++调用ios、Android等平台的图形库OpenGL,同时平台的用户交互事件传递给Cocos2d-x的导演类,这样开发者就可以在Cocos2d-x基础上使用C++的Api开发跨平台的手机游戏和应用了。

         当然开发者可以选择三种语言

1.  使用C++

a)        语法严谨,代码高效

b)        方便定制对于底层系统平台的功能调用(C++可以调OC,C++可以调Java)

c)        跟别人说你会C++岂不是很牛吗!

2.  使用Lua

a)        代码简单、弱语言

b)        灵活的代码结构

c)        高效开发

d)        可以动态更新(这个最吊,不用重装App就能更新)

3.  使用JavaScript

a)        可以让原来做网页的开发者上手

b)        可以将游戏发布到H5浏览器

好吧!我们从Lua学起,先入门,再精通,从Lua入门是不错的选择,从C++开始对于开发者来讲有一定难度。

第一课要解决以下问题:

1.  要解决如何搭建开发环境

a)        首先安装jdk1.7

b)        再安装Python2.7 (不能安装高版本)

c)        安装CocosCode IDE(1.2 ,2.0版居然没有提示,后续再说吧)

d)        安装Cocos2d-x3.2源码(后面会讲cocos2d-x3.6和Quick,如果上来就是3.6 MVC估计用户都会蒙圈,不知道引擎团队怎么想的,我认为这个MVC影响了用户对CocosApi的统一理解,应该作为可选包,不应该作为默认模板)

e)        配置CocosCodeIDE

相关资源如下图,可以到网盘下载:

2.  Cocos的核心概念

a)        导演 Director(控制所有界面的显示和切换,其实还有事件分发、垃圾处理等)

b)        场景Scene(就是游戏的一个界面,每个界面都可以有很多层)

c)        图层Node(文字、图片、菜单、动画等在场景中的每一个绘图元素都是一个图层)

d)        动作Action(是对Node的变换的封装)

如下图:


做游戏就是定义多个场景画面,然后通过Director实现画面的切换。

3.  如何理解第一个工程的文件结构

a)        Res 文件夹保存游戏中的所有资源如图片、声音、动画、关卡文件等

b)        Src 是源码文件夹保存游戏开发的lua源代码

Main.lua 是入口文件,主要是定义了一个场景然后运行这个场景,代码如下:

 

require"Cocos2d"--引用cocos lua函数库

-- cclog

localcclog = function(...)

    print(string.format(...))

end

-- for CCLuaEngine traceback

function __G__TRACKBACK__(msg)

    cclog("----------------------------------------")

    cclog("LUA ERROR:" .. tostring(msg) .. "\n")

    cclog(debug.traceback())

    cclog("----------------------------------------")

    returnmsg

end

localfunctionmain() --入口函数

    collectgarbage("collect")

    -- avoidmemory leak

    collectgarbage("setpause", 100)

    collectgarbage("setstepmul", 5000)

    --添加文件搜索路径

    cc.FileUtils:getInstance():addSearchPath("src")

    cc.FileUtils:getInstance():addSearchPath("res")

    --设置屏幕适配 cc.Director:getInstance():getOpenGLView():setDesignResolutionSize(960, 640, 0)

    --createscene 1。创建一个场景

    localMS=require("MyScene")

    localms_scene=MS:create()

    --2,显示这个场景

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

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

    else

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

    end

end

localstatus, msg = xpcall(main, __G__TRACKBACK__)

ifnotstatusthen

    error(msg)

end

 

4.  定义自己的场景

以下是场景类的封装,并在屏幕显示背景和英雄,运行结果如下:

 

代码如下:

1.--定义第一个场景

2.--定义一个类  MyScene 继承cc.Scene

3.localMyScene=class("MyScene",function ()

4.return cc.Scene:create()

5.end)

6.--创建函数

7.functionMyScene:create()

8.    print("MyScene:create")

9.localms=MyScene.new()

10.         ms:addChild(ms:init())

11.         returnms

12.     end

13.     --构造函数

14.     functionMyScene:ctor()

15.         print("MyScene:ctor")

16.        --添加成员属性

17.         self.winsize=cc.Director:getInstance():getWinSize()

18.     end

19.     --初始化函数

20.     functionMyScene:init()

21.         print("MyScene:init")

22.         locallayer=cc.Layer:create()

23.         --添加背景图片层到场景

24.         localsp_bk=cc.Sprite:create("bbg_burning_land.jpg")

25.         layer:addChild(sp_bk)

26.         sp_bk:setPosition(self.winsize.width/2,self.winsize.height/2)

27.         -- 添加人物层到场景

28.         localsp=cc.Sprite:create("kick07.png")

29.         layer:addChild(sp)

30.         sp:setAnchorPoint(0,1)

31.         sp:setPosition(self.winsize.width/2,self.winsize.height/2)

32.         sp:setRotation(40)

33.         sp:setLocalZOrder(3) --设置当前图层的显示顺序

34.         --让人物运行动作

35.         --sp:runAction(cc.RotateBy:create(5,720))

36.         --添加文字层

37.         localtxt01=cc.Label:createWithSystemFont("9秒课堂","",40)

38.         layer:addChild(txt01)

39.         txt01:setPosition(self.winsize.width/2,self.winsize.height/2+70)

40.         --添加人物层

41.         localhero01=cc.Sprite:create("hero01.png")

42.         hero01:setAnchorPoint(0.5,0.5)

43.         hero01:setPosition(480,320)

44.         hero01:setLocalZOrder(4)

45.         layer:addChild(hero01)

46.         hero01:setScale(0.3)--缩放到原有尺寸的30%

47.         returnlayer

48.     end

49.      

50.             returnMyScene

这篇关于大海教你学手游2015CocosLua第一季_01环境搭建与场景封装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367817

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer