cocos2d游戏开发教程(Cocos2d)

发布时间:2023-11-29 16:05:18 浏览量:98次

Cocos2d

cocos2d游戏开发教程(Cocos2d)

上篇简单介绍了Cocos2d-x的元素,包括导演、节点、场景、图层、精灵等,今天开始进入Cocos2d-x的基础学习,着重介绍Cocos2d-x中UI系统的基础,包括显示文字、图案、菜单等内容。Cocos2d-x UI系统自带的UI组件包括了标签Label、菜单Menu等,与其他开发框架不同,Cocos2d-x提供的UI种类并不多,主要依靠开发者自行组合创造自己需要的控件,这就需要开发者必须深刻掌握各种控件的特点,才能够做到灵活运用。

  • 显示文字

在Cocos2d-x中要显示文字就需要用到Label控件。

auto label1 = Label::create("hello world!","Arial",36,Size::ZERO,TextHAlignment::LEFT,TextVAlignment::TOP);
label1->setPosition(200,300);
this->addChild(label1);
//使用系统自带字体
TTFconfig ttfconfig("fonts/arial.ttf",26);
auto label2 = Label::createWithTTF(ttfconfig,"hello world!");
label2->setPosition(200,250);
//设置阴影
label2->enableShdow(Color4B::GREEN,Size(5,5));
//设置边框
label2->enableOutline(Color4B::RED,3);
this->addChild(label2);
  • 显示图像

Cocos2d-x中显示图像是通过精灵类显示的。在Cocos2d-x中游戏的每一个角色、怪物、道具都可以理解成是一个精灵,游戏背景是一种特殊的精灵。

//获取屏幕尺寸
Size size = Director::getInstance()->getVisibleSize();
//创建背景图像
auto* background = Sprite::create("background.jpg");
//图像居中显示
background->setPosition(size.width/2,size.height/2);
//背景图片缩小尺寸
background->setScale(0.7f);
this->addChild(background);
  • 显示菜单

按钮菜单在游戏中经常使用,Cocos2d-x中按钮菜单通过图片创建后,添加回调事件。

//button1正常状态按钮,button2按钮被按下后状态,MenuSelector回调事件
auto* button = MenuItemImage::create("button1.png","button2.png",this,menu_selector(HelloWorld::MenuSelector));

void HelloWorld::MenuSelector(){
 CCLOG("button1被按下了!");
}
  • 屏幕适配

Cocos2d-x中提供了5中屏幕适配方案,分别是:EXACT_FIT、SHOW_ALL、FIXED_HEIGHT、FIXED_WIDTH、NO_BORDER。而Cocos2d-x中经常使用的有两种,一种为SHOW_ALL,一种为NO_BORDER,下面主要介绍这两种:

SHOW_ALL牺牲一部分屏幕面积,解决游戏画面根据屏幕尺寸自动放大缩小,保证显示区域的宽高比,使游戏更容易设计。

NO_BORDER则采用了相反的思想,保证宽高比的前提下牺牲一部分可是面积来达到最大利用屏幕可视区域的目的。

  • 播放声音

Cocos2d-x中音乐的播放也可以理解为一种显示方式。

cocos2d游戏开发教程(Cocos2d)

#include "SimpleAudioEngine.h"
USING_NS_CC;
using namespace CocosDenshion;
bool HelloWorld::init(){
 if(!Layer::init()){
 return false;
 }
 //向屏幕添加内容
 is_paused = false;
 //播放按钮
 auto* lable_play = Label::create("play","Arial",40);
 auto* pLabel_play = MenuItemLabel::create(lable_play,this,menu_selector(HelloWorld::play));
 auto* button_play = Mune::create(pLabel_play,NULL);
 button_play->setPosition(200,150);
 this->addChild(button_play);
 return true;
}

void HelloWorld::play(Cocos2d::Object* pSender){
 if(is_paused){
 SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
 }
 else{
 SimpleAudioEngine::sharedEngine()->playBackgroundMusic("music.mp3");
 }
 is_paused = false;
}

今天小编先讲这么多,大家有兴趣的可以先下载Cocos2d-x引擎,自己搭建环境,跑起来试试,后面小编会带着大家往下一步一步深入,如果有兴趣的同学,可以关注小编,持续学习,有了cocos2d-x这款神器,游戏开发不再是梦。

cocos2d游戏开发教程(Cocos2d)

热门课程推荐

热门资讯

请绑定手机号

x

微信扫码在线答疑

扫码领福利1V1在线答疑

点击咨询
添加老师微信,马上领取免费课程资源

1. 打开微信扫一扫,扫描左侧二维码

2. 添加老师微信,马上领取免费课程资源

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定