今天开始接触游戏的层面,从飞机游戏开始。先实现初始界面的功能,有初始界面,初始界面的音乐,游戏界面。并且学习了重要的Plist的作用
//plist的作用
bool GameScene::init(){
//
// 1. super init first
if (!Layer::init())
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
auto game = Sprite::create("Map1_2.jpg");
game->setPosition(ccp(visibleSize.width / 2, visibleSize.height / 2));
this->addChild(game);
auto cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile("Monster.plist","Monster.png");
auto sp = Sprite::createWithSpriteFrameName("Monster11.png");
sp->setPosition(ccp(visibleSize.width / 2, visibleSize.height / 2));
this->addChild(sp);
return true;
}
plist 的作用是 帮助节省内存,提高渲染速度,可以把一张张的小图片拼成一张大图片,达到节省内存的目的,而且可以随时取用plist文件中的小图片,
添加界面,音乐,界面转换
bool HelloWorld::init()
{
//
// 1. super init first
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
//添加背景
auto sprite = Sprite::create("LoadBG.jpg");
addChild(sprite);
//设置背景锚点
sprite->setAnchorPoint(Vec2(0, 0));
//添加音乐
SimpleAudioEngine::getInstance()->playBackgroundMusic("bgm_map1.mp3", true);
//切换场景 切换场景需要重新添加新的.h和.cpp文件,在.h中声明,在cpp中实现,最后在HelloWorld.cpp中调用新的.h头文件。
auto item1 = MenuItemFont::create("play", [&](Ref *sender) {
auto scene = GameScene::createScene();
Director::getInstance()->replaceScene(TransitionFlipX::create(2, scene)); 2表示深度,用来覆盖之前的图片,数字越大表示越深,优先级更大
});
auto menu = Menu::create(item1, nullptr);
menu->alignItemsVertically();
this->addChild(menu);