Cocos2d-x-Lua 开发简单的小游戏(记数字踩白块)
本篇博客来给大家介绍如何使用Lua这门语言来开发一个简单的小游戏—记数字踩白块。
游戏的流程是这样的:在界面上生成5个数1~5字并显示在随机的位置上,点击第一个数字,其他数字会显示成白块数字消失,玩家可以通过记住数字的显示的位置点击按顺序消除白块,直到白块消除完,游戏成功。
效果图如下:
先说明一下笔者的开发环境:
- Xcode 5.1(Mac系统下的苹果开发工具)
- Cocos2d-x 3.1.1(Cocos2d-x游戏引擎)
- LDT(Lua集成开发环境)
首先你得创建一个Cocos2d-x项目,里面会多个平台代码,具体创建方法麻烦读者参考笔者前面所写的文章,如有疑问可以直接留言交流。
来看看我们项目结构:
》》AppDelegate.cpp
#include "AppDelegate.h"#include "CCLuaEngine.h"#include "SimpleAudioEngine.h"#include "cocos2d.h"using namespace CocosDenshion;USING_NS_CC;using namespace std;AppDelegate::AppDelegate(){}AppDelegate::~AppDelegate(){ SimpleAudioEngine::end();}bool AppDelegate::applicationDidFinishLaunching(){ // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { // 创建可视区域,位置(0,0)宽:900,高:640 glview = GLView::createWithRect("记数字踩白块", Rect(0,0,900,640)); director->setOpenGLView(glview); } // 设置设计分辨率 glview->setDesignResolutionSize(800, 480, ResolutionPolicy::SHOW_ALL); // turn on display FPS // 打开显示的FPS director->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this director->setAnimationInterval(1.0 / 60); auto engine = LuaEngine::getInstance(); ScriptEngineManager::getInstance()->setScriptEngine(engine); // 执行src目录下的main.lua脚本文件 if (engine->executeScriptFile("src/main.lua")) { return false; } return true;}// This function will be called when the app is inactive. When comes a phone call,it's be invoked toovoid AppDelegate::applicationDidEnterBackground(){ Director::getInstance()->stopAnimation(); SimpleAudioEngine::getInstance()->pauseBackgroundMusic();}// this function will be called when the app is active againvoid AppDelegate::applicationWillEnterForeground(){ Director::getInstance()->startAnimation(); SimpleAudioEngine::getInstance()->resumeBackgroundMusic();}
我们主要在Lua文件中