• 大小: 31KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签: 贪吃蛇  

资源简介

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 < KWidth; ++i)
    {
        for(int j = 0; j < KHeight; ++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

评论

共有 条评论