激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

cocos2d游戲開發(fā)教程(Cocos2d)

發(fā)布時間:2023-11-29 16:05:18 瀏覽量:100次

?Cocos2d

cocos2d游戲開發(fā)教程(Cocos2d)

上篇簡單介紹了Cocos2d-x的元素,包括導(dǎo)演、節(jié)點、場景、圖層、精靈等,今天開始進入Cocos2d-x的基礎(chǔ)學(xué)習,著重介紹Cocos2d-x中UI系統(tǒng)的基礎(chǔ),包括顯示文字、圖案、菜單等內(nèi)容。Cocos2d-x UI系統(tǒng)自帶的UI組件包括了標簽Label、菜單Menu等,與其他開發(fā)框架不同,Cocos2d-x提供的UI種類并不多,主要依靠開發(fā)者自行組合創(chuàng)造自己需要的控件,這就需要開發(fā)者必須深刻掌握各種控件的特點,才能夠做到靈活運用。

  • 顯示文字

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

auto label1 = Label::create("hello world!","Arial",36,Size::ZERO,TextHAlignment::LEFT,TextVAlignment::TOP);
label1->setPosition(200,300);
this->addChild(label1);
//使用系統(tǒng)自帶字體
TTFconfig ttfconfig("fonts/arial.ttf",26);
auto label2 = Label::createWithTTF(ttfconfig,"hello world!");
label2->setPosition(200,250);
//設(shè)置陰影
label2->enableShdow(Color4B::GREEN,Size(5,5));
//設(shè)置邊框
label2->enableOutline(Color4B::RED,3);
this->addChild(label2);
  • 顯示圖像

Cocos2d-x中顯示圖像是通過精靈類顯示的。在Cocos2d-x中游戲的每一個角色、怪物、道具都可以理解成是一個精靈,游戲背景是一種特殊的精靈。

//獲取屏幕尺寸
Size size = Director::getInstance()->getVisibleSize();
//創(chuàng)建背景圖像
auto* background = Sprite::create("background.jpg");
//圖像居中顯示
background->setPosition(size.width/2,size.height/2);
//背景圖片縮小尺寸
background->setScale(0.7f);
this->addChild(background);
  • 顯示菜單

按鈕菜單在游戲中經(jīng)常使用,Cocos2d-x中按鈕菜單通過圖片創(chuàng)建后,添加回調(diào)事件。

//button1正常狀態(tài)按鈕,button2按鈕被按下后狀態(tài),MenuSelector回調(diào)事件
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中經(jīng)常使用的有兩種,一種為SHOW_ALL,一種為NO_BORDER,下面主要介紹這兩種:

SHOW_ALL犧牲一部分屏幕面積,解決游戲畫面根據(jù)屏幕尺寸自動放大縮小,保證顯示區(qū)域的寬高比,使游戲更容易設(shè)計。

NO_BORDER則采用了相反的思想,保證寬高比的前提下犧牲一部分可是面積來達到最大利用屏幕可視區(qū)域的目的。

  • 播放聲音

Cocos2d-x中音樂的播放也可以理解為一種顯示方式。

cocos2d游戲開發(fā)教程(Cocos2d)

#include "SimpleAudioEngine.h"
USING_NS_CC;
using namespace CocosDenshion;
bool HelloWorld::init(){
 if(!Layer::init()){
 return false;
 }
 //向屏幕添加內(nèi)容
 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引擎,自己搭建環(huán)境,跑起來試試,后面小編會帶著大家往下一步一步深入,如果有興趣的同學(xué),可以關(guān)注小編,持續(xù)學(xué)習,有了cocos2d-x這款神器,游戲開發(fā)不再是夢。

cocos2d游戲開發(fā)教程(Cocos2d)

熱門課程推薦

熱門資訊

請綁定手機號

x

同學(xué)您好!

您已成功報名0元試學(xué)活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定