热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Cocos2d-HTML5初学者指南:第一部分基础知识

本文旨在为初学者提供Cocos2d-HTML5的基础知识入门指南。虽然作者在交大期间学习了基础的Web技术和AS3游戏开发,但感觉这些知识与实际应用仍有差距。几年前曾接触过Android开发,但由于缺乏C++和Objective-C的背景,未能深入。本篇将详细介绍Cocos2d-HTML5的核心概念和技术要点,帮助读者快速上手并掌握游戏开发的基本技能。

交大毕业后感觉还是盲目的,毕竟在那学的是基础WEB和AS3基础游戏制作,但感觉和AS无法日久生情...
话说在几年前学Android开发使用曾经接触了,但基于当时没接触C++/ObjC就没深究了。CH5这款引擎当时也还没有出现,所以接触的也不多,同时还使用了另一款libGDX引擎,但还是无爱。
目前来说HTML5还是比较冷门的,但就是很喜欢它,不久前想找个跨平台引擎来尝试开发游戏,看到了Cocos也有了HTML5版本,易实现跨平台、能直接在Windows环境上开发,使用JS来编写,还正是高兴,立马看上了,准备自学!
好了,不多说,接下来说正题,使用的是近期发布的CH5 V2.2.2CocoStudio 1.2.0.0版本,IDE为官方推荐的WebStorm7开发工具。
1、环境安装html5当然还是基于浏览器来运行。
首先,安装本地服务器,如 AppServ,WAMP,XAMPP(我安装了这个)。Cocos2d引擎下载:http://www.cocos2d-x.org/downloadIDE WebStorm编辑器(官方推荐):http://www.jetbrains.com/webstorm/浏览器: Chrome Dev 34.0.1788.0 dev-m开发者版本(必须安装JetBrain IDE Support插件),便于快捷从IDE直接运行项目。(浏览器按照需求来安装即可,这里安装的是Dev开发者版本
接着,把游戏引擎解压到服务器根目录,然后运行index.html看到如下界面说明成功。
(端口号63342是因运行于WebStorm关系)


2、网上搜到的教程,初始觉得这里的蛮不错的。因使用的引擎版本较高,按照教程操作会发现运行后黑屏,跟帖发现引擎多大部分源码已经更新或弃用导致,最后还是能成功的。
其次,多参考官方提供的例子(Test Cases)源码琢磨,都能正常上手。本地实例URL: ./samples/tests/index.html
个人是新手,加入了一些群组和论坛搜索遇到的问题、或者进行询问,通常都有大神们给予解答,之后另外发个自己常常上的一些网站供参考。WIKI:http://www.cocos2d-x.org/wiki/Cocos2d-html5API:http://www.cocos2d-x.org/reference/html5-js/V2.2.2/index.htmlDocs:http://www.cocos2d-x.org/docs/catalog/en一步一步教程:http://bbs.html5china.com/thread-4509-1-1.html (注意引擎版本打怪升级之路:http://www.cocoachina.com/bbs/read.php?tid=152420
3、引擎文件关系
HelloHTML5World文件夹为例,新手需要注意:
res 存放素材文件,如(游戏图片、音效)src 存放源码文件
resource.js 管理res内的素材文件,需要使用的素材都需要在这里声明
index.html为项目入口程序
cocos2d.js通常不修改,但保持appFiles:[]与自己的src内的xxx.js一致以避免错误
main.js 视为设置程序入口场景
- var myApp = new cocos2dApp(HelloWorldScene);
按照需要自行修改Scene类名进行各种调试
a、定义图层:
var MenuLayer = cc.Layer.extend({...});


b、创建场景:
var MenuScene = cc.Scene.extend({
onEnter:function () {
this._super();
var layer = new MenuLayer();
layer.init();
this.addChild(layer);
cc.log("-MenuSpriteSCENE-")
}
});


c、屏幕尺寸

自定义屏幕尺寸,需要在2个文件内做出修改:


index.html

自行调整所需的宽度和高度


main.js

cc.EGLView.getInstance().adjustViewPort(false);
cc.EGLView.getInstance().resizeWithBrowserSize(true);
cc.EGLView.getInstance().setDesignResolutionSize(320, 480, cc.RESOLUTION_POLICY.SHOW_ALL);

resizeWithBrower为true为根据当前浏览器窗口显示完整大小

更多可参考官方新关于屏幕大小文档: 

http://www.cocos2d-x.org/wiki/Understand_the_Resolution_Policy_in_Cocos2d-Html5_222?project_id=cocos2d-x


d、坐标

引擎的原点为左下角,Sprite默认的锚点在图片的中心点cc.p(0.5,0.5),锚点的范围一般是:0~1,根据需要来设置。

cc.p(0.5,0.5)图片的中心点
cc.p(0,0)图片的左下角
cc.p(0,1)图片的左上角
cc.p(1,0)图片的右下角
cc.p(1,1)图片的右上角


e、获取浏览器当前可见大小

 var winSize = cc.Director.getInstance().getWinSize();

背景居中显示:

this.sprite = cc.Sprite.create(res.s_menuBG);
this.sprite.setPosition(winSize.width / 2, winSize.height / 2);


f、音效测试

cc.AudioEngine.getInstance().setMusicVolume(0.1);
cc.AudioEngine.getInstance().playMusic(res.s_mainBGM, true);


g、鼠标右键

引擎默认右键无法使用,为了便于进入Console而开启:

在自定义的JS内初始化时候添加:

cc.setContextMenuEnable(true);

预览:logo严重不搭,纯属测试用途,勿喷:




推荐阅读
  • 活动主题:五一巨献,问答有礼,105QB送给IT互联网界的劳动人民活动时间:4月30日晚上10点~5月2日晚上10点网址:http:ask.jiutianniao.com ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 访问一个网页的全过程
    准备:DHCPUDPIP和以太网启动主机,用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连.学校的这台路由器与一个ISP链接,此ISP(Intern ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • Web App vs Native App:未来的移动应用趋势
    随着移动互联网的发展,Web App和Native App之间的竞争日益激烈。对于开发者而言,选择哪一种技术路径更为明智?本文将深入探讨两种应用模式的特点及未来趋势。 ... [详细]
  • 本文探讨了在使用HTML5 WebSocket技术构建浏览器内聊天室时遇到的连接不稳定问题,并提供了可能的解决方案和调试方法。 ... [详细]
  • 本文详细介绍了如何在VUE开发环境中正确安装和配置Nightwatch及Karma相关插件,并解决运行测试时遇到的Java版本不兼容问题。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • 本文介绍了如何利用摄像头捕捉图像,并将捕获的图像数据保存为文件。通过详细的代码示例,展示了摄像头调用的具体实现方法,适用于多种应用场景,如安全监控、图像处理等。 ... [详细]
  • 绑定完成的汗青绑定的基础是propertyChange事宜。怎样得知viewModel成员值的转变一直是开辟MVVM框架的主要题目。主流框架的处置惩罚有一下三大类:别的开辟一套AP ... [详细]
  • 媒介这里大部份是本身碰到过的状况,另有一部份自创了偕行的文章,假如人人有碰到别的坑,迎接提出来一同研讨。学问要点1.Meta标签1.制止用户缩放页面,页面强迫让文档的宽度与装备的宽 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • FileReader详解与实例---读取并显示图像文件
    我们曾经在《HTML5中File对象初探》中,使用到了FileReader,在那篇文章中,它被用来将一个文件读取为二进制字符串,并通过xhr发送到后端形成交互。作为FileAPI的一部 ... [详细]
author-avatar
fghnh102_441
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有