C++ cocos2dx 3.3动画实现
我是cocos2dx开发的新手。我几乎用cpp语言在android上学习了cocos2dx(3.3版)的所有基本级别。我发现cocos2dx.org上有很多更新 在安卓系统中,我目前正在使用cocos2dx 3.3版开发俄罗斯方块游戏,我想知道实现超赞动画的最佳方式是什么,比如滴答作响的炸弹、炸弹爆炸、旋转游戏分数显示、随着游戏分数的增加弹出和消失气球。我想知道在Android中使用C++实现动画COCOS2DX。我们还需要使游戏支持多屏幕支持,我已经搜索了很多,所有这些点都无法在谷歌上找到很多信息 我很好地展示了声纳系统对初学者的支持,我们非常感谢,我在YouTube上观看了声纳系统共享的所有视频。我在那里学到了很多。我想知道在cocos2dx中android的高级动画 我们期待任何帮助C++ cocos2dx 3.3动画实现,c++,cocos2d-x,cocos2d-x-3.0,cocos2d-android,cocos2d-js,C++,Cocos2d X,Cocos2d X 3.0,Cocos2d Android,Cocos2d Js,我是cocos2dx开发的新手。我几乎用cpp语言在android上学习了cocos2dx(3.3版)的所有基本级别。我发现cocos2dx.org上有很多更新 在安卓系统中,我目前正在使用cocos2dx 3.3版开发俄罗斯方块游戏,我想知道实现超赞动画的最佳方式是什么,比如滴答作响的炸弹、炸弹爆炸、旋转游戏分数显示、随着游戏分数的增加弹出和消失气球。我想知道在Android中使用C++实现动画COCOS2DX。我们还需要使游戏支持多屏幕支持,我已经搜索了很多,所有这些点都无法在谷歌上找到很多
谢谢我也是cocos2dx 3.3的新手。我正在使用(.plist)粒子效果为爆炸(爆炸)制作动画 首先,需要一个.plist动画文件。有一个用于生成.plist文件的在线编辑器。你可以去看看 这里是链接 现在您可以使用这行代码了
CCParticleSystemQuad *system = CCParticleSystemQuad::create("explodeEffect.plist");
system->setTexture(CCTextureCache::sharedTextureCache()->addImage("yourplayer.png"));
system->setDuration(0.05);
system->setScale(3.0f);
system->setPosition(yourplayer->getPosition().x, yourplayer->getPosition().y);
this->addChild(system,1);
system->setAutoRemoveOnFinish(true);
这将帮助您这是我的appmacros.h文件
#ifndef __APPMACROS_H__
#define __APPMACROS_H__
#include "cocos2d.h"
#define DESIGN_RESOLUTION_480X320 0
#define DESIGN_RESOLUTION_480X800 1
#define DESIGN_RESOLUTION_1024X768 2
#define DESIGN_RESOLUTION_1280X800 3
#define DESIGN_RESOLUTION_2048X1536 4
/* If you want to switch design resolution, change next line */
#define TARGET_DESIGN_RESOLUTION_SIZE DESIGN_RESOLUTION_1280X800
typedef struct tagResource
{
cocos2d::CCSize size;
char directory[100];
}Resource;
static Resource smallResource = { CCSizeMake(480, 320), "iphone" };
static Resource mysmallResource = { CCSizeMake(800, 480), "iphone" };
static Resource mediumResource = { CCSizeMake(1024, 768), "ipad" };
static Resource myResource = { CCSizeMake(1280, 800), "ipad" };
static Resource largeResource = { CCSizeMake(2048, 1536), "ipadhd" };
#if (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_480X320)
static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(480, 320);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_480X800)
static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(800, 480);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_1024X768)
static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(1024, 768);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_2048X1536)
static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(2048, 1536);
#elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_1280X800)
static CCSize designResolutionSize = cocos2d::CCSizeMake(1280, 800);
#else
#error unknown target design resolution!
#endif
// The font size 24 is designed for small resolution, so we should change it to fit for current design resolution
#define TITLE_FONT_SIZE (cocos2d::CCEGLView::sharedOpenGLView()->getDesignResolutionSize().width / myResource.size.width * 24)
#endif /* __APPMACROS_H__ */
现在我们可以在appdelegate中使用这个类。。所以我的appdelegate看起来像
#include "AppDelegate.h"
#include "MenuLayer.h"
#include "AppMacros.h"
#include "SimpleAudioEngine.h"
#include "cocos2d.h"
USING_NS_CC;
AppDelegate::AppDelegate() {
}
AppDelegate::~AppDelegate() {
}
void AppDelegate::initGLContextAttrs()
{
//set OpenGL context attributions,now can only set six attributions:
//red,green,blue,alpha,depth,stencil
GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8};
GLView::setGLContextAttrs(glContextAttrs);
}
bool AppDelegate::applicationDidFinishLaunching() {
// initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLViewImpl::create("My Game");
director->setOpenGLView(glview);
}
CCLOG("%s","applicationDidFinishLaunching ");
// initialize director
// CCDirector* pDirector = CCDirector::sharedDirector();
// CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
director->setOpenGLView(glview);
// Set the design resolution
glview->setDesignResolutionSize(designResolutionSize.width,
designResolutionSize.height, kResolutionFixedWidth);
//CCSize frameSize = pEGLView->getFrameSize();
CCSize frameSize = director->getVisibleSize();
// if the frame's height is larger than the height of medium resource size, select large resource.
if (frameSize.width > myResource.size.width) {
director->setContentScaleFactor(
largeResource.size.width / designResolutionSize.width);
}
// if the frame's height is larger than the height of small resource size, select medium resource.
else if (frameSize.width > mediumResource.size.width) {
director->setContentScaleFactor(
myResource.size.width / designResolutionSize.width);
} else if (frameSize.width > mysmallResource.size.width) {
director->setContentScaleFactor(
designResolutionSize.width / mediumResource.size.width);
} else if (frameSize.width > smallResource.size.width) {
director->setContentScaleFactor(
designResolutionSize.width / mediumResource.size.width);
}
// if the frame's height is smaller than the height of medium resource size, select small resource.
else {
director->setContentScaleFactor(
designResolutionSize.width / smallResource.size.width);
}
// turn on display FPS
director->setDisplayStats(false);
// set FPS. the default value is 1.0/60 if you don't call this
director->setAnimationInterval(1.0 / 60);
CCScene *pScene = MenuLayer::scene();
director->runWithScene(pScene);
return true;
}
// This function will be called when the app is inactive. When comes a phone call,it's be invoked too
void AppDelegate::applicationDidEnterBackground() {
CCDirector::sharedDirector()->stopAnimation();
// if you use SimpleAudioEngine, it must be pause
CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
// this function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground() {
CCDirector::sharedDirector()->startAnimation();
// if you use SimpleAudioEngine, it must resume here
CocosDenshion::SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
你做过多屏支持吗?做不到,但我们得到了另一家游戏开发公司的帮助,开发者建议使用比例因子。他们实际上是使用cocos2dx开发iPhone游戏,然后移植到android上。他们说给其他平台提供支持的简单方法。我已经做到了。。。时间很长。。如果您愿意,那么我可以共享我的类…请确保您可以共享任何帮助。我们非常喜欢cocos2dx提供不同的bucket文件夹(如mdpi、hpdi、xhdpi、xxhdpi)来获取正确的资源。它工作正常,但缩放不是自动完成的。感谢您共享代码。它将尝试此操作,让我知道“iphone”“iphone”这是iphone的资源目录。我可以声明androidIt的“hdpi”“mdpi”工作正常吗,你能告诉我我需要把android的所有资源图片放在哪里吗?目前我们把图片放在不同的bucket文件夹中。把所有与游戏相关的图片放在assets文件夹中,把图标放在res目录下不同的drawables文件夹中。嗨,你能告诉我“TARGET\u DESIGN\u RESOLUTION\u SIZE”吗实际上,我现在定义了高分辨率,当我在我的设备上运行时,它是hdpi设备,它看起来很好,它的可见大小更改为目标设计大小