cocos2d 游戏启动页面cocos 界面换肤怎么做

Cocos2d-x游戏实例《RunRunRunV1.0》源码+资源,Cocos2D-X,游戏源码,6m5m游戏素材
请求处理中...
【非原创】
或 10 积分 ()
下载42浏览人数3947交付方式直接下载
免责声明:【1】资源来自网络,仅限于个人学习研究,请勿用于任何商业用途,请支持或购买正版,尊重版权,请严格遵守国家相关著作版权保护的法律和规则,请下载24小时内务必删除,否则后果自负,本站不承担任何责任及连带责任!【2】本站为学习平台,所分享的资源以学习为目的,并不能保证所有源码人人都能编译,因素太多,旨在学习参考,无任何技术支持,如果您要求完美或追求细节,请勿下载,大家都不容易,互相理解,才能让更多好的学习资源出现!【3】部分素材压缩包因体积过大而上传到百度等网盘上,如果发现在本站下载的压缩包只要有几K大小,说明该压缩包里只是网盘的下载链接,并非文件损坏,本站的所有素材都是经过了审核,大家可放心下载,欢迎监督反馈。【4】做个好平台真心不容易,我们一直在努力,因本站素材量大,难免会出现某网盘下载链接失效等问题,请大家及时反馈,我们会及时修正保证您可以拿到素材,请大家支持和理解!
免责声明:本网所展示的素材与服务信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。本网不提供任何保证,并不承担任何法律责任,如有不妥之处请及时反馈,本网将会妥善处理。
友情提醒:本站旨在游戏开发的学习,所分享的素材资源均来源于网络,仅适用于学习参考,尊重版权,禁止用于任何商业用途,否则后果自负,所展示的素材版权归原作者或公司所有,如果本站素材侵犯了您的权益,请联系我们,我们将及时处理。
猜您喜欢的游戏素材
5金币 / 个
2金币 / 个
0金币 / 个
1金币 / 个
1金币 / 个
0金币 / 个
1金币 / 个
2金币 / 个
0金币 / 个
3金币 / 个
好评率99.67%
发布素材1206:13:48 UTC
现有一个应用场景,希望在App做一个游戏列表,当点某个游戏时使用cocos2d-x去启动这个游戏,游戏关闭后销毁当前游戏所有对象(包括cocos本身的运行环境),然后返到列表可以重新启动任意一个游戏。
在iOS已经试过让cocos运行在一个独立UIViewController,并在viewDidLoad中初始化cocos的运行环境并启动游戏,然后当关闭游戏,即关闭当前UIViewController时,进行如下销毁:
cocos2d::Director::getInstance().end();
[self dismissViewControllerAnimated:YES completion:nil];
但当返回列表后,重新启动其他游戏,会报错,这个错误会让app整个crash掉。
想问下如何完整销毁一个cocos游戏环境,以能重新再启动另一个?
07:04:12 UTC
你的游戏列表是什么开发的?直接iOS原生的吗?游戏列表也改成cocos开发不就行了。
06:50:34 UTC
我也遇到这样的问题了,楼主解决了吗?主要就是重复启动cocos失败只有VIP会员才可以下载课程视频哦~
你可以添加极客老师QQ获取课程相关资料~
制作游戏关卡界面
本课程为极客学院认证学员专享课程,完成认证即可观看
免费认证 &
认证学员特权
观看80%会员课程
点亮专属认证标识
获得个性化课程推荐
资源下载、专属优惠等
已有会员账号,请
视频太卡?试试切换线路
本课时学习通过单点触摸机制 onTouchBegan 来得到点击到的人物,并通过 onTouchMoved 进行人物的移动。
本课时通过之前获取到的关卡数据,学习用 TableView 类显示出游戏的关卡,并用 Action 动画美化显示效果。
本课时学习判定是否过关,并用 Action 动画美化过关效果,用 UserDefault 类存储玩家所走的步数信息。
本课时学习使用 SimpleAudioEngine 声音引擎,来进行播放背景音乐或播放音效。
只有成为VIP会员才能提问&回复,快吧!如果你还没有账号你可以一个账号。
添加新技术问题
课程 [制作游戏关卡界面]
中已存在问题
添加新技术问题
问题描述越详细,被解答的速度越快
有新回答时请邮件提醒我
着急,拜托快点
不急,慢慢解决
关联课程 [制作游戏关卡界面]如何创建Cocos2D游戏中的暂停画面
Birds的朋友对游戏中的暂停画面都有印象:
那么这种暂停画面是如何实现的呢?
如果用CCDirector的pause和resume肯定没法达到这种效果。
这里将使用一种定制的类来实现暂停效果:
1.类文件代码
PauseLayer.h
&Foundation/Foundation.h&
#import "cocos2d.h"
@interface PauseLayerProtocol: CCNode
-(void)pauseLayerDidP
-(void)pauseLayerDidU
@interface PauseLayer : CCLayerColor {
PauseLayerProtocol *
@property (nonatomic,assign)PauseLayerProtocol *
+ (id) layerWithColor:(ccColor4B)color delegate:(PauseLayerProtocol
- (id) initWithColor:(ccColor4B)c delegate:(PauseLayerProtocol
-(void)pauseD
PauseLayer.m
PauseLayer.m
//& Created
by Pablo Ruiz on 06/06/11.
Copyright 2011 PlaySnack. All rights reserved.
#import "PauseLayer.h"
@implementation PauseLayer
+ (id) layerWithColor:(ccColor4B)color
delegate:(id)_delegate
return [[[self alloc] initWithColor:color delegate:_delegate]
autorelease];
- (id) initWithColor:(ccColor4B)c delegate:(id)_delegate
self = [super initWithColor:c];
if (self != nil) {
CGSize wins = [[CCDirector sharedDirector] winSize];
delegate = _
[self pauseDelegate];
CCSprite * background = [CCSprite
spriteWithFile:@"pause_background.png"];
[self addChild:background];
CCMenuItemImage *resume = [CCMenuItemImage
itemFromNormalImage:@"pause_btn_resume.png"
&&&&&&&&&&&&&
&selectedImage:@"pause_btn_resume_dwn.png"
&&&&&&&&&&&&&
target:self
&&&&&&&&&&&&&
&selector:@selector(doResume:)];
CCMenu * menu = [CCMenu menuWithItems:resume,nil];
[menu setPosition:ccp(0,0)];
[resume setPosition:ccp([background
boundingBox].size.width/2,[background
boundingBox].size.height/2)];
[background addChild:menu];
[background
setPosition:ccp(wins.width/2,wins.height/2)];
-(void)pauseDelegate
if([delegate
respondsToSelector:@selector(pauseLayerDidPause)])
[delegate pauseLayerDidPause];
[delegate onExit];
[delegate.parent addChild:self z:10];
-(void)doResume: (id)sender
[delegate onEnter];
if([delegate
respondsToSelector:@selector(pauseLayerDidUnpause)])
[delegate pauseLayerDidUnpause];
[self.parent removeChild:self cleanup:YES];
-(void)dealloc
[super dealloc];
2.如何使用
在实际使用的时候,只需要在游戏的场景层导入PauseLayer.h这个头文件,然后调用以下方法即可:
-(void)doPause
& ccColor4B c
={0,0,0,150};
& [PauseLayer
layerWithColor:c delegate:self];
我用了一个简单的HelloWorld项目来测试是正常的:
首先在HelloWorldLayer.m的顶部添加
"PauseLayer.h"
在init方法中添加以下代码:
CCMenuItem*pauseButton&
= [CCMenuItemImage
itemWithNormalImage:@"playbutton.png"
selectedImage:@"playbutton.png"
target:self
selector:@selector(doPause)];
pauseButton.position
ccp(size.width*0.3,size.height*0.3);
*menu = [CCMenu
menuWithItems:pauseButton,
menu.position&
CGPointZero;
addChild:menu];
然后添加以下方法:
-(void)doPause
c = {0,0,0,150};
[PauseLayer
layerWithColor:c
delegate:self];
&参考链接:http://playsnackgames.com/blog/2011/09/cocos2d-tutorial-creating-a-reusable-pause-layer/
备注:我在使用的时候发现一个问题,如果把.m文件名后缀修改为mm(比如要用到Box2D物理引擎),那么编译是无法通过的。
如果有谁解决了这个问题,请告知方法。谢谢了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。22:29 提问
cocos2d-x游戏场景精灵无法显示 ,跪求大神帮解决
cocos2d-x游戏场景精灵无法显示 ,跪求大神帮解决
问题如下:
如果直接在AppDelegate.cpp中执行:
auto scene = GameLayer::createScene();
director-&runWithScene(scene);
则游戏主场景
SpriteFrameCache::getInstance()-&addSpriteFramesWithFile("panda.plist");
//添加精灵
this-&panda = Panda::createWithSpriteFrameName("panda.png");
this-&panda-&setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
this-&addChild(this-&panda, 10, GameSceneNodeTagFighter);
精灵可以正常显示,
但是如果AppDelegate.cpp里面是先创建HelloWorldScene,
再在HelloWorldScene中通过一个菜单回调创建GameScene时,
auto scene = HelloWorld::createScene();
director-&runWithScene(scene);
void HelloWorld::menuCloseCallback(Ref* pSender)
Scene* tsc = TransitionFade::create(1.0f, GameLayer::createScene());
Director::getInstance()-&pushScene(tsc);
// Director::getInstance()-&end();
游戏场景就无法显示精灵,什么都没有。
求各大神帮忙如何解决,我是新手来着;
我在想是不是引擎本身的优化设计问题,对于暂时用不到的精灵对象引擎会不会自动延迟创建,直到有事件响应关联到精灵对象时才会真正开始创建???
Panda.cpp代码如下:
#include "Panda.h"
USING_NS_CC;
Panda* Panda::createWithSpriteFrameName(const char* spriteFrameName)
Panda *panda = new Panda();
if (panda && panda-&initWithSpriteFrameName(spriteFrameName)) {
panda-&autorelease();
auto body = PhysicsBody::createBox(panda-&getContentSize() - Size(3, 3));
body-&setCategoryBitmask(0x01);
body-&setCollisionBitmask(0x02);
body-&setContactTestBitmask(0x01);
panda-&setPhysicsBody(body);
CC_SAFE_DELETE(panda);
return NULL;
void Panda::setPosition(const cocos2d::Vec2& newPosition)
Size screenSize = Director::getInstance()-&getVisibleSize();
float halfWidth = this-&getContentSize().width / 2;
float halfHeight = this-&getContentSize().height / 2;
float pos_x = newPosition.x;
float pos_y = newPosition.y;
if (pos_x & halfWidth) {
pos_x = halfW
else if (pos_x &(screenSize.width - halfWidth)) {
pos_x = screenSize.width - halfW
if (pos_y & halfHeight) {
pos_y = halfH
else if (pos_y &(screenSize.height - halfHeight)) {
pos_y = screenSize.height - halfH
Sprite::setPosition(Vec2(pos_x, pos_y));
Sprite::setAnchorPoint(Vec2(0.5f, 0.5f));
按赞数排序
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐

我要回帖

更多关于 cocos2dx面试题整理 的文章

 

随机推荐