大海教你学手游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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 23:26:33

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

大海教你学手游2015CocosLua第一季_00课程介绍

话说大盘从5100直掉到3500点,千只股票跌幅超过20%,跌跌不休,散户.证监会.做空机构开始斗气地主来了: 散户:叫地主 空头:抢地主,3分 证监会:pass 空头:压死 证监会:不要 散户:不要 空头:顺子 散户:不要 证监会:不要 空头:拖拉机,就剩一张了 散户:--大哥 证监会:王炸 散户:牛逼!出对!出对! 证监会:3 空头:4 散户:汗汗! 看来,连环大招没管啥用,大招就为了不让散户走. 不过我从5100点跌到4700就预感,抄底估计要到3500,热痛割肉,为什么老太监比小太监富有

大海教你学手游2015CocosLua第一季_02场景跳转和用户触摸

: 课程地址:http://ke.qq.com/cgi-bin/courseDetail?course_id=78017 cocos2d-x直播课交流群: 461039382(发布每节课视频和资料) 网盘资料下载:http://pan.baidu.com/s/1dDvZvAp ( 密码要进群才有) 习大大在澳门的演讲,引用了一句经典的话:"以利相交,利尽则散:以势相交,势败则倾:以权相交,权失则弃:以情相交,情断则伤:唯以心相交,方能成其久远."经营企业也好,合伙做事也好,人际交往也好

通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile

通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile 1 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile' 2 #!usr/bin/env python 3 #-*-c

Python学习第一弹——Python环境搭建

一.Python简介: Python,是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用

android学习第一篇 开发环境搭建

android开发环境搭建 由于博主最近在学golang,所以就想着顺手把android开发给学了.最近这两天都在折腾idea,搭建开发环境.昨天晚上终于把golang和android的环境都搭好了,总结一下. 博主一开始使用android studio 做 android 开发,但使用idea做 golang 开发.这两个IDE都是功能十分庞大的,一同运行的话两个分别占用1.5G内存,所以就琢磨用idea开发安卓了.期间遇到几个坑,分享出来. 1.安装安卓SDK 下载地址 http://and

FFMPEG高级编程第一篇:环境搭建及编译

前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考. 本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点: 一.重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),为什么?前面说了,这是我以前工作的一个整理.况且关于ffmpeg的解码相关文章非常多了,如果大家感兴趣的话,可以

通过游戏学python 3.6 第一季 第三章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释 可复制直接使用 娱乐 可封装 函数

1 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释 2 3 import random 4 number = random.randint(1,99)#设定答案(可以假设成年龄吧) 5 amount = random.randint(3,8) #设定猜测次数 6 print('本次游戏次数为',amount,'次') 7 8 count = 0 #设定初始次数 9 while count <= amount: #条件成立无限循环 10 try: 11 guess

通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏 可复制使用 可封装

本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用的次数越少成绩越好. 1 #猜数字 2 3 number=33 4 5 conversion=input('请猜数字') 6 guess=int(conversion) 7 8 9 if guess == number: 10 print('猜对了') 11 elif guess > number:

通过游戏学python 3.6 第一季 第四章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 可复制直接使用 娱乐 可封装 函数

1 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码 2 3 import random 4 secrst = random.randint(1,99) 5 6 number = secrst 7 8 amount = random.randint(3,8) 9 print('本次游戏次数为',amount,'次') 10 11 count=0 12 while count<=amount: 13 try: 14 conversion=input('请猜数字') 15 guess=in