資源簡介
cocos2dx實現的簡單貪吃蛇游戲,包含代碼和資源

代碼片段和文件信息
#include?“Snake.h“
const?int?KWidth?=?18;
const?int?KHeight?=?10;
const?int?KEggSize?=?50;
Scene*?Snake::createScene()
{
????auto?scene?=?Scene::create();
????scene->addChild(Snake::create());
????return?scene;
}
Snake::Snake()?:?m_curDir(EDirR)?m_dt(0.5f)
{
}
Snake::~Snake()
{
}
bool?Snake::init()
{
if(!layer::init())
{
return?false;
}
auto?listener?=?EventListenerTouchOneByOne::create();
????listener->setSwallowTouches(true);
????listener->onTouchBegan?=?CC_CALLBACK_2(Snake::onTouchBegan?this);
????listener->onTouchMoved?=?CC_CALLBACK_2(Snake::onTouchMoved?this);
????listener->onTouchEnded?=?CC_CALLBACK_2(Snake::onTouchEnded?this);
????_eventDispatcher->addEventListenerWithSceneGraphPriority(listener?this);
????
????initUI();
????initMap();
????initSnake();
????initEgg();
????schedule(schedule_selector(Snake::step)?m_dt);
????
????
return?true;
}
bool?Snake::onTouchBegan(Touch*?touche?Event*?event)
{
_beganPos?=?touche->getLocation();
????return?true;
}
void?Snake::onTouchMoved(Touch*?touche?Event*?event)
{
????_movePos?=?touche->getLocation();
}
void?Snake::onTouchEnded(Touch*?touche?Event*?event)
{
????_endPos?=?touche->getLocation();
}
void?Snake::initUI()
{
????auto?winsize?=?Director::getInstance()->getWinSize();
????auto?drawNode?=?DrawNode::create();
????addChild(drawNode);
????
????Vec2?point[4];
????point[0]?=?Vec2(118?70);
????point[1]?=?Vec2(winsize.width?-?118?70);
????point[2]?=?Vec2(winsize.width?-?118?winsize.height?-?70);
????point[3]?=?Vec2(118?winsize.height?-?70);
????
????drawNode->drawPolygon(point?4?Color4F(1?0?0?0)?3?Color4F(1?0?0?1));
????
????auto?button?=?Button::create(“test/btn_l.png“);
????button->setPosition(Vec2(59?winsize.height?*?2?/?5));
????button->setTag(ETagBtnLeft);
????button->addClickEventListener(CC_CALLBACK_1(Snake::buttonListener?this));
????addChild(button);
????
????button?=?Button::create(“test/btn_r.png“);
????button->setPosition(Vec2(winsize.width?-?59?winsize.height?*?2?/?5));
????button->setTag(ETagBtnRight);
????button->addClickEventListener(CC_CALLBACK_1(Snake::buttonListener?this));
????addChild(button);
????
????button?=?Button::create(“test/btn_t.png“);
????button->setPosition(Vec2(59?winsize.height?*?3?/?5));
????button->setTag(ETagBtnTop);
????button->addClickEventListener(CC_CALLBACK_1(Snake::buttonListener?this));
????addChild(button);
????
????button?=?Button::create(“test/btn_b.png“);
????button->setPosition(Vec2(winsize.width?-?59?winsize.height?*?3?/?5));
????button->setTag(ETagBtnButtom);
????button->addClickEventListener(CC_CALLBACK_1(Snake::buttonListener?this));
????addChild(button);
????
}
void?Snake::initMap()
{
????for(int?i?=?0;?i?????{
????????for(int?j?=?0;?j?????????{
????????????m_pos[i][j]?=?Vec2(118?+?KEggSize?/?2?+?KEggSize?*?i?70?+?KEggSize?/?2?+?KEggSize?*?j);
????????}
????}
}
void?Snake::buttonListener(Ref*?ref)
{
????int?tag?=?((Button*)ref)->getTag();
????
????switch?(tag)?{
??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-07-09?16:45??snake\
?????文件????????6148??2015-07-09?16:46??snake\.DS_Store
?????目錄???????????0??2015-07-09?16:46??__MACOSX\
?????目錄???????????0??2015-07-09?16:46??__MACOSX\snake\
?????文件?????????120??2015-07-09?16:46??__MACOSX\snake\._.DS_Store
?????目錄???????????0??2015-07-09?16:44??snake\Classes\
?????文件????????6148??2015-07-09?16:46??snake\Classes\.DS_Store
?????目錄???????????0??2015-07-09?16:46??__MACOSX\snake\Classes\
?????文件?????????120??2015-07-09?16:46??__MACOSX\snake\Classes\._.DS_Store
?????文件????????6548??2015-07-09?16:13??snake\Classes\Snake.cpp
?????文件?????????171??2015-07-09?16:13??__MACOSX\snake\Classes\._Snake.cpp
?????文件????????1239??2015-07-09?10:10??snake\Classes\Snake.h
?????文件?????????171??2015-07-09?10:10??__MACOSX\snake\Classes\._Snake.h
?????目錄???????????0??2015-07-09?16:44??snake\Resources\
?????文件????????6148??2015-07-09?16:45??snake\Resources\.DS_Store
?????目錄???????????0??2015-07-09?16:46??__MACOSX\snake\Resources\
?????文件?????????120??2015-07-09?16:45??__MACOSX\snake\Resources\._.DS_Store
?????文件????????1554??2015-06-24?09:26??snake\Resources\btn_b.png
?????文件?????????120??2015-06-24?09:26??__MACOSX\snake\Resources\._btn_b.png
?????文件????????1430??2015-06-24?09:27??snake\Resources\btn_l.png
?????文件?????????120??2015-06-24?09:27??__MACOSX\snake\Resources\._btn_l.png
?????文件????????1419??2015-06-24?09:24??snake\Resources\btn_r.png
?????文件?????????120??2015-06-24?09:24??__MACOSX\snake\Resources\._btn_r.png
?????文件????????1448??2015-06-24?09:27??snake\Resources\btn_t.png
?????文件?????????120??2015-06-24?09:27??__MACOSX\snake\Resources\._btn_t.png
?????文件????????1000??2015-06-24?10:07??snake\Resources\egg.png
?????文件?????????120??2015-06-24?10:07??__MACOSX\snake\Resources\._egg.png
?????文件???????34467??2015-07-09?16:42??snake\snake.png
?????文件?????????172??2015-07-09?16:42??__MACOSX\snake\._snake.png
- 上一篇:一個exe可執(zhí)行文件的生與死運行原理
- 下一篇:WCAG 2.0實現技巧
評論
共有 條評論