如何使用cocos2d x3.0 中文-x 3.0制作一个太空射击游戏

如何在Xcode平台上安装并创建新的cocos2d-x项目
如何把著名的Cocos2dSimpleGame从objc 移植到Xcode上,通过使用cocos2d-x引擎,在iPhone平台上运行它。Cocos2dSimpleGame是由Ray Wenderlich编写。几乎所有的cocos2d-iphone初学者都曾读过他写的系列教程。
首先,你需要在http://download.cocos2d-x.org/
下载最新稳定版的cocos2d-x。2012年10月24日查阅,该版本还是cocos2d-2.0-x-2.0.3.zip。
Stable versions
2012年10月24日查阅如下:
1. Cocos2d-x
written in C++ and OpenGL ES 1.1/2.0,
run on iOS, Android, BlackBerry, Bada, Marmalade, Windows, Linux
(这是我要下载的cocos2d-2.0-x-2.0.3.zip文件114M)
update CCBReader to v2.1 beta0, add
CCTableView, update CCControlExtension, more stable javascript
binding, enhance lua binding, more elegant java lib codes, many
bugs fixed
add mac port, linux port, blackberry
port, multi-resolution support, implement CCEditBox, network
wrapper, many bugs fixed
support new iPad, simplify Android.mk
written, accelerometer simulation for iOS simulator, some bugs
support bb2.0, add
CCNotificationCenter, refactor lua support, more stable on Andorid,
bada and QNX when using dynamic_cast, Android template supports
box2d, chipmunk and lua, some crash fix
2. Cocos2d-html5
written in javascript, based on HTML5
technology. This branch focus on desktop browsers
3. Cocos2d-XNA
written in C#, base on XNA rendering,
for Windows Phone 7
Considering Windows Phone 7 doesn't
open C++ api and has no OpenGL ES support, so we ported cocos2d-x
into C# and using their XNA renderer.
Special thanks , they
have contributed lots of source code to this port.
More historical
Please visit
for more historical versions.
下载后解压后的文件如下:
其次是要安装对应的Xcode的模板。我们从0.8.2版开始就有了对应Xcode的模板。你可以像创建cocos2d-iphone项目那样简单地来创建cocos2d-x项目。首先,找到cocos2d-x的根目录,之后在mac的shell下运行install-templates.sh (注意不要少了”
./”)./install_template.sh。之前网上有介绍用这个带参数的命令“./install-templates-xcode.sh -u
&f”,经测试这样是不行的。而是要用不带参数的命令“./install-templates-xcode.sh
”。(注:这样就可以了!2012年10月24日)见下图:
--------------------------------------------------------------------------------------
& Last login: Wed Oct 24 19:24:21 on
DantekiMacBook-Pro:~ dans88$ ls
&Documents&&
&Downloads&&
&Library&&
&Pictures&&
DantekiMacBook-Pro:~ dans88$ cd
DantekiMacBook-Pro:Desktop dans88$ ls
Beginning Passbook in iOS 6.doc&&
&Resources&&
&iOS6新特征lout编程指南.doc
Firefox-latest.dmg&&
&SonyDevice&&
&install_flash_player_osx.dmg
&Sony_bak&&
&myHack-3.1.2.dmg
QQInput_Mac_Setup_2_3_42_400.dmg&&
QQ_V2.1.3.dmg&&
&cocos2d-x
DantekiMacBook-Pro:Desktop dans88$ cd
DantekiMacBook-Pro:cocos2d dans88$ ls
&cocos2d-win32.vc2010.sln&&
&create-blackberry-project.vbs&&
CHANGELOG&&
&cocos2d-win32.vc2012.sln&&
&document&&
&make-all-linux-project.sh
CocosDenshion&&
&cocos2dx&&
&extensions&&
README.mdown&&
&create-android-project.bat&&
&external&&
&scripting
build-win32.bat&&
&create-android-project.sh&&
&install-templates-msvc.bat&&
cocos2d-win32.vc2008.sln&&
&create-blackberry-project.sh&&
&install-templates-xcode.sh&&
DantekiMacBook-Pro:cocos2d dans88$ sudo
./install-templates-xcode.sh
Password:*****
cocos2d-x template installer
Installing Xcode 4 cocos2d-x iOS template
----------------------------------------------------
...creating destination directory:
/Users/dans88/Library/Developer/Xcode/Templates/cocos2d-x/
...copying cocos2d files
...copying CocosDenshion files
...copying extension files
...copying template files
Installing Xcode 4 Chipmunk iOS template
----------------------------------------------------
...copying Chipmunk files
Installing Xcode 4 Box2d iOS template
----------------------------------------------------
...copying Box2D files
Installing Xcode 4 lua iOS template
----------------------------------------------------
...copying lua files
Installing Xcode 4 JS iOS template
----------------------------------------------------
...copying js files
...copying spidermonkey files
DantekiMacBook-Pro:cocos2d dans88$
------------------------------------------------------
经测试,我的系统有三个Xcode版本,Xcode
4.4 、Xcode
4.5和Xcode
4.5.1在安装一次以后,三个版本都可以用!安装完成之后,你就可以打开Xcode,之后点击“Creat
a new Xcode project”。你会看到这个对话框
选择“cocos2d-x
application”,之后点“choose”,输入项目的名称。
Xcode将会帮你创建好cocos2d-x的项目。
请注意,iOS的cocos2d-x项目可以在任何你想要的地方被创建。Xcode里的wizard会复制所有cocos2dx、CocosDenshion等库到项目的文件夹里。这和VisualStudio上win32&沃Phone的wizard不同。
好了,之后编译运行,你会看到如下的HelloWorld效果图
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。如何使用Cocos2d-x 3.0制作一个太空射击游戏_百度知道
如何使用Cocos2d-x 3.0制作一个太空射击游戏
提问者采纳
Backgrounds: 一些背景图片,你等下会使用它们来制作一个滚动背景。里面包含星系,太阳,和空间异常(它移动速度比较慢),还有一组空间尘埃图片(它们会出现在背景前面,而且会移动地稍微快一点)Fonts: 使用 Glyph Designer制作的位图字体,我们将使用这些字体来在游戏中显示文字。Particles: 使用 Particle Designer制作的一些特殊的粒子效果。 在这里,我们用来创建星星飞动的效果。Sounds: 一些与太空相关的背景音乐和音效。使用 Garage Band 和 cxfr制作的。Spritesheets: 一张格式为pvr.ccz的大图片,里面包含了游戏中将要用到的许多小图片,比如陨石,太空船等。这个文件使用 Texture Packer制作的---如果你想使用pvr.ccz文件格式的话,你可能就需要使用这个工具。当然pvr.ccz格式的优点就是文件小,加载速度快。
其他类似问题
为您推荐:
cocos2d的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁【频道】Cocos2D-X3.0太空射击游戏
搭建COCOS2D-x的wp8游戏开发环境
分享给站外好友
页面地址:
FLASH地址:
HTML代码:
通用代码:
可以让视频在手机、平板电脑上播放!
举报此视频包含不当内容:
请填写你要举报的内容,标明举报内容所在地时段,将有助于我们更及时的处理举报内容。感谢您对PPS的支持!
广告和欺诈
触犯我的版权
你可以把视频下载到不同的设备
使用电脑飞速下载轻易收藏喜欢的视频
使用苹果设备支持iPhone、iPad高清视频亦可离线观看
使用Android设备支持手机、平板高清视频亦可离线观看
拍下二维码,视频随身看
用PPS影音IOS/Android版扫描二维码,在您的移动设备上继续观看视频,也可以分享给您的好友。
搭建COCOS2D-x的wp8游戏开发环境
手机没装PPS影音?
频道信息:
Cocos2D-X3.0太空射击游戏
Cocos2D-X3.0太空射击游戏,讲解如何把,Cocos2D-X2.0程序代码升级到Cocos2D-X3.0。解决过程中遇到的问题。所有视频教程仅供游戏开发实验室内部交流学习,不得用于商业范畴。
适合观看的人群:Cocos2d-x游戏开发的初...学者。[]
注:数据来自爱奇艺、PPS全平台
搭建COCOS2D-x的wp8游戏开发环境
上传时间:13个月前
上 传 者:Unity3d_孙广
所属频道:Cocos2D-X3.0太空射击游戏
上 传 自:
分&&&&&&类:教育
暂无相关内容
视频简介:原创免费的unity3D游戏开发的视频。学习教材、资料。实战讲解、开发实现。Cocos2D-X3.0太空射击游戏,讲解如何把,Cocos2D-X2.0程序代码升级到Cocos2D-X3.0。解决过程中遇到的问题。所有视频教程...仅供游戏开发实验室内部交流学习,不得用于商业范畴。适合观看的人群:Cocos2d-x游戏开发的初学者。[]
现在可以用QQ账号直接发表评论,分享给我的好友
大家都在看
互联网药品信息服务许可证:
互联网医疗保健信息服务许可证:
Copyright&2005 - 2014 PPStream, Inc. All Rights Reserved主题 : 如何用cocos2d-x3.0制作一款简单的游戏:第二部分(旋转炮塔)
级别: 论坛版主
可可豆: 374 CB
威望: 354 点
在线时间: 169(时)
发自: Web Page
如何用cocos2d-x3.0制作一款简单的游戏:第二部分(旋转炮塔)&&&
引言  本文是接着上一篇《》,属于上一篇的续集。本文将介绍如何旋转炮塔来改变射击的方向。许多游戏都有这个功能,包大家熟悉的塔防游戏!接下来将详细地讲解如何实现这个功能,即如何把旋转炮塔的功能添加到一个游戏当中去。准备工作 如果你看完并实践了上一个教程,你可以继续使用那个工程。如果没有的话,那么下载的代码吧。   接下来,下载新的和图片,然后把它们加到工程里面,在这之前,先从工程里删除旧的Player.png和Projectile.png图片。然后,修改代码,把每个sprite添加进去。如下所示:// In the init method  auto player = Sprite::create(&Player2.png&);   // In the onTouchEnded method   auto projectile = Sprite::create(&Projectile2.png&);注意,这一次我们并没有指定精灵的宽度和高度,而是让cocos2d-x替我们来处理这些事情。编译并运行你的工程,如果一切顺利的话,你将会看到一个炮塔正在发射子弹。然后,这并不是很好,因为炮塔在射击的时候并没有面朝那个方向。因此,接下来让我们来解决这个问题。
旋转并射击在我们旋转炮塔之前,首先,我们需要保存Player精灵的引用,以便后面旋转它的时候使用。打开HelloWorldScene.h,然后修改类文件并包含以下成员变量:cocos2d::Sprite* _然后修改init方法中的代码,注意是修改!不是增加!把Player对象加入到层(layer)中。代码如下:_player = Sprite::create(&Player2.png&);  _player-&setPosition(Point(_player-&getContentSize().width/2, visibleSize.height / 2));  this-&addChild(_player);好了,现在让我们取出player对象的引用并且旋转它吧!为了旋转它,我们首先需要计算出旋转的角度。为了解决这个问题,想想我们在高中时候学过的三角代数吧。还记得sin cos tan吗?为了便于理解,下面使用一张图来解释一下:tan = 对面/邻边。
如上所示,我们想要旋转的角度是arctangent(angle),即对offY/offX求arctangent运算。然而,这里还有两件事情,我们需要放在心上。首先,当我们计算actangent(offY/offX)的时候,这个结果是弧度,但是cocos2d-x使用的却是角度。还好,cocos2d-x提供了一个非常方便的宏,可以使得角度和弧度之间方便转化。第二点,我们假定上面的图中angle的偏转是正20度,但是,cocos2d-x里面顺时针方向为正(而不是上图所示的逆时针为正)。让我们看到下面这个图:
因此,为了得到正确的方向,我们把运算结果乘以一个-1就可以了。比如,如果我们把上面那幅图片里的角度乘以-1的话,我们就得够得到-20度,这个角度其实就是逆时针方向的2‘0度。(感觉老外说话好啰嗦啊,聪明的读者恐怕早就明白了吧!:)好了,讲得够多了!让我们来写一点代码吧。在onTouchEnded里面加入以下代码,添加位置在你的projectile-&runAction之前。// Determine angle to face float angleRadians = atanf((float)offRealY / (float)offRealX); float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians); float cocosAngle =-1* angleD _player-&setRotation(cocosAngle);编译并运行工程,现在我们的炮塔在射击的时候可以改变方向了。旋转之后再射击目前来说还不错,但是有一点点怪。因为,这个炮塔好像突然一下跳到一个方向射击,有点不够流畅。我们可以解决这个问题,但是在这之前,我们需要重构一下代码。首先,打开HelloWorldScene.h,然后在你的类里添加如下成员变量: cocos2d::Sprite *_nextP然后在init方法里面初始化之。_nextProjectile = NULL;然后,修改你的ccTouchesEnded方法,并且添加一个新的方法,叫做finishShoot,如下所示:void HelloWorld::onTouchEnded(Touch* touch, Event* event){ if (NULL != _nextProjectile) // Choose touch to work with Size visibleSize = Director::getInstance()-&getVisibleSize(); auto touchPoint = touch-&getLocation();    // Set up initial location of projectile _nextProjectile = Sprite::create(&Projectile2.png&); _nextProjectile-&setPosition(Point(20, visibleSize.height / 2)); // Determine offset of location to projectile int offX = touchPoint.x - _nextProjectile-&getPosition().x; int offY = touchPoint.y - _nextProjectile-&getPosition().y;    // Bail out if we are shooting down or backwards if (offX &= 0) // Play a sound! CocosDenshion::SimpleAudioEngine::getInstance()-&playEffect(&pew-pew-lei.caf&);    // set tag _nextProjectile-&setTag(2); // Determine where we wish to shoot the projectile to int realX = visibleSize.width + (_nextProjectile-&getContentSize().width / 2); float ratio = (float)offY / (float)offX; int realY = (realX * ratio) + _nextProjectile-&getPosition().y; auto realDest = Point(realX, realY);    // Determine the length of how far we're shooting int offRealX = realX - _nextProjectile-&getPosition().x; int offRealY = realY - _nextProjectile-&getPosition().y; float length = sqrtf((offRealX*offRealX) + (offRealY*offRealY)); float velocity = 960 / 1; // 960pixels/1sec float realMoveDuration = length /    // Determine angle to face float angleRadians = atanf((float)offRealY / (float)offRealX); float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians); float cocosAngle =-1* angleD float rotateSpeed =0.5/ M_PI; // Would take 0.5 seconds to rotate 0.5 radians, or half a circle float rotateDuration = fabs(angleRadians * rotateSpeed); _player-&runAction(Sequence::create(RotateTo::create(rotateDuration, cocosAngle), CallFuncN::create(CC_CALLBACK_0(HelloWorld::finishShoot, this)), NULL)); // Move projectile to actual endpoint _nextProjectile-&runAction(Sequence::create(MoveTo::create(realMoveDuration, realDest), CallFuncN::create(CC_CALLBACK_1(HelloWorld::spriteMoveFinished, this)), NULL));}                       void HelloWorld::finishShoot(){ // Ok to add now - we've finished rotation! this-&addChild(_nextProjectile); // Add to projectiles vector _projectiles.pushBack(_nextProjectile);    _nextProjectile = NULL;}这看上去好像有许多代码,但是,实际上我们改动的并不多--大部分只是做一些小小的重构。下面是我们所修改的内容的一个列表:1.在函数开头检查nextProjectile的值是否为NULL。这意味着我们当前的touch事件正发生在射击过程之中。也就是说,炮塔已经发射出一个子弹了。 2.之前,我们使用一个projectile的局部变量,并把它加入到了当前的场景中。在这个版本中,我们增加了一个nextProjectile的成员变量,但是并没有马上加到当前场景中。因为后要还要使用。3.定义炮塔旋转的角度,半秒钟旋转半个圆。记住,一个圆有2 PI个弧度。4.计算旋转特定的角度需要多长时间,这里是拿弧度乘以速度。5.接下来,我们使用一个sequence action来旋转我们的炮塔。最后,回调一个函数finishShoot(),把projectile加入到当前场景当中去。好,大功告成!编译并运行工程,现在炮塔可以旋转,并且很流畅地射击了!接下来做什么?首先,这里有《如何用cocos2d-x3.0制作一款简单的游戏》目前为止的。接下来,在这个系列的教程中,将教大家如何添加更猛的怪物和更多的关卡!或者期待接下来的cocos2d和box2d方面的教程吧![ 此帖被ivenyang在 15:45重新编辑 ]
级别: 新手上路
可可豆: 33 CB
威望: 13 点
在线时间: 17(时)
发自: Web Page
这代码排版, 怎么都乱了finishShoot可以用lambda函数来实现, 代码更简洁:)
千里之行, 简单至上
级别: 新手上路
可可豆: 33 CB
威望: 13 点
在线时间: 17(时)
发自: Web Page
资源已经失效, 提供一个可下载的:
千里之行, 简单至上
关注本帖(如果有新回复会站内信通知您)
4*5+2 正确答案:22
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版

我要回帖

更多关于 cocos2d x3.0屏幕适配 的文章

 

随机推荐