新版黄金矿工
作业要求
新版黄金矿工游戏,共有两个界面:主界面与游戏界面
- 主界面:在demo代码基础上完善场景,添加开始按钮(MenuItem),点
击进入游戏界面。 - 游戏界面:两个Layer,StoneLayer锚点位于左下角,坐标设为(0,0),其上 有一石头精灵,初始坐标为(560,480);MouseLayer锚点位于左下角, 坐标设为(0,屏幕高度的一半),其上有一老鼠精灵,初始坐标为(屏幕宽度的 一半,0)。有一个Label,作为shoot按钮。
- 游戏要求:游戏开始后,点击屏幕任意位置,在该位置添加一块奶酪,老鼠 跑到该位置吃掉奶酪;点击shoot按钮,石头发射到老鼠所在的位置,老鼠 跑开,留下钻石。
- 加分项:尝试添加一两个动画
- 作业提交:提交实验报告(文档),Classes(文件夹),Resources(文件 夹)。实验报告要求有截图。
实现效果
具体实现
GameScene.cpp
#include "GameScene.h"
USING_NS_CC;
Scene* GameSence::createScene()
{
//这个地方写Sence::create()不会报错,但是没法显示整个页面。
return GameSence::create();
}
// on "init" you need to initialize your instance
bool GameSence::init()
{
// 1. super init first
if (!Scene::init())
{
return false;
}
//add touch listener
EventListenerTouchOneByOne* listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = CC_CALLBACK_2(GameSence::onTouchBegan, this);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
//设置背景图片
auto levelBackGround = Sprite::create("level-background-0.jpg");
levelBackGround->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
this->addChild(levelBackGround, 0);
//设置石头层
auto stoneLayer = Layer::create();
stoneLayer->setPosition(0, 0);
stoneLayer->setName("stoneLayer");
this->addChild(stoneLayer, 1);
//向石头层添加石头
auto stone = Sprite::create("stone.png");
stone->setPosition(600, 480);
stone->setName("stone");
stoneLayer->addChild(stone, 1);
//设置老鼠层
auto mouseLayer = Layer::create();
mouseLayer->setPosition(0, visibleSize.</