Cocos2d-x 个人笔记 《2048》(2)

我自己的爪机是 480*854 的分辨率的,但是……笔记本也就 768 的高度。

于是:

eglView->setViewName("2048");
    eglView->setFrameSize(240, 427);

窗口缩小一半方便调试。

AppDelegate.cpp 就是Cocos2d的入口了。

pDirector->setDisplayStats(false);

是否打开FPS,可以 true 打开,后面发布的时候再 false 关闭。

CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480,854,kResolutionShowAll);

加上这样一句,就可以对 不是480*854 的设备进行自适应缩放了。

MyScene.h  我加上了这几个:

void menuCall_start(CCObject *pSender); //开始动作
void menuCall_thend(CCObject *pSender); //退出动作

CCSize size ; // 屏幕大小

MyScene.cpp 全部内容:

#include "MyScene.h"
#include "2048Scene.h" // 开始游戏需要进入

MyScene::MyScene(void)
{
}

MyScene::~MyScene(void)
{
}

CCScene* MyScene::scene()
{
    // 'scene' is an autorelease object
    CCScene *scene = CCScene::create();

    // 'layer' is an autorelease object
    MyScene *layer = MyScene::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}
bool MyScene::init()
{
    //CCSize size =CCDirector::sharedDirector()->getWinSize();
    // 获取屏幕大小

    //size=CCDirector::sharedDirector()->getWinSize();

    size.width=480,size.height=854;//手动设定

    CCSprite *homepage=CCSprite::create("homepage.png");
    homepage->setPosition(ccp(size.width/2,size.height*0.5));
    this->addChild(homepage);

    //CCSprite *bg=CCSprite ::create("HelloWorld.png");
    //bg->setPosition(ccp(size.width/2,size.height/2));			//ccp=CCPoint
    //this->addChild(bg);

    /*CCSprite *sp0=CCSprite::create("icon.png");
    sp0->setPosition(ccp(100,100));
    this->addChild(sp0);*/
    /*
    CCSprite *sp1=CCSprite::create("CloseNormal.png");
    sp1->setPosition(ccp(100,100));
    bg->addChild(sp1);*/

    /*
    CCSprite *sp1=CCSprite::create("icon.png");
    sp1->setPosition(ccp(size.width*0.2,size.height*0.7));
    this->addChild(sp1);

    CCSprite *sp2=CCSprite::create("icon.png",CCRect(28,28,29,29));//坐标,长,宽
    sp2->setPosition(ccp(size.width*0.4,size.height*0.7));
    this->addChild(sp2);

    CCTexture2D *Texture=CCTextureCache::sharedTextureCache()->addImage("icon.png");
    // 创建2D纹理

    CCSprite *sp3=CCSprite::createWithTexture(Texture);
    sp3->setPosition(ccp(size.width*0.6,size.height*0.7));
    this->addChild(sp3);

    CCSprite *sp4=CCSprite::createWithTexture(Texture,CCRect(0,0,40,40));
    sp4->setPosition(ccp(size.width*0.8,size.height*0.7));
    this->addChild(sp4);

    CCSpriteFrame *frame=CCSpriteFrame::create("icon.png",CCRect(0,0,57,57));
    // 缓存帧
    CCSprite *sp5=CCSprite::createWithSpriteFrame(frame);
    sp5->setPosition(ccp(size.width*0.3,size.height*0.3));
    this->addChild(sp5);
    //sp5->setScale(2);						//放大两倍
    //sp5->setScale(0.5);					//缩小一半
    //sp5->setRotation(30);					//顺时针旋转30度
    //sp5->setRotation(-30);				//逆时针旋转30度
    //sp5->setSkewX(30);					//水平顺时针倾斜30度
    //sp5->setSkewX(-30);					//水平逆时针倾斜30度
    //sp5->setVisible(false);				//是否可见
    //sp5->setColor(ccc3(255,0,0));			//设置颜色
    //sp5->setOpacity(30);					//透明度 透明0-255不透明
    //sp5->setTexture(CCTextureCache::sharedTextureCache()->addImage("CloseNormal.png"));
    										//更改显示的图片

    // 还有一种缓存帧的方式,使用img.plist

    */

    /*CCLabelTTF *laber1 =CCLabelTTF :: create("fuck" ,"consola",25);
    laber1->setPosition(ccp(size.width/2,size.height*0.7));
    laber1->setColor(ccc3(255,255,0));
    this->addChild(laber1);*/
    //文字

    /*CCLabelTTF *laber1 =CCLabelTTF :: create("start" ,"consola",50);
    CCMenuItemLabel *item1 =CCMenuItemLabel::create(laber1,this,menu_selector(MyScene::menuCall_start));
    item1->setPosition(ccp(size.width/2,size.height*0.7));
    */

    CCMenuItemImage *item_start=CCMenuItemImage :: create("start-normal.png","start-select.png",this,menu_selector(MyScene::menuCall_start));
    item_start->setPosition(ccp(size.width/2,size.height*0.5));

    CCMenuItemImage *item_thend=CCMenuItemImage :: create("thend-normal.png","thend-select.png",this,menu_selector(MyScene::menuCall_thend));
    item_thend->setPosition(ccp(size.width/2,size.height*0.3));

    CCMenu *menu =CCMenu::create(item_start,item_thend,NULL);
    menu->setPosition(CCPointZero);
    this->addChild(menu);

    CCLabelTTF *My=CCLabelTTF::create("[email protected]","fonts/FZNHT.TTF",40);
    My->setPosition(ccp(size.width/2,size.height/10));
    this->addChild(My);

    return true;
}
void MyScene::menuCall_start(CCObject *pSender)
{
    //system("pause");
    CCScene *temps=My2048Scene::scene();
    CCDirector::sharedDirector()->replaceScene(temps);
}
void MyScene::menuCall_thend(CCObject *pSender)
{
    //system("pause");
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
    CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");
#else
    CCDirector::sharedDirector()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    exit(0);
#endif
#endif
}

由于2048Scene 还没写,注释掉 #include "2048Scene.h"

还有 menuCall_start 函数里面的内容。

还有五张图片,一个字体。

homepage.png,start-normal.png,start-select.png,thend-normal.png,thend-select.png,FZNHT.TTF

效果图

背景图 是 480*854  其它四个是250*150 的 , 分别是选中前和选中后的不同。字体效果如图。

百度云:http://pan.baidu.com/s/1sjmDyhf

时间: 2024-11-05 20:34:19

Cocos2d-x 个人笔记 《2048》(2)的相关文章

cocos2d基础篇笔记四

1.//有两种集合 //第一种是array 特点:插入,删除效率低,可是查找效率高 //另外一种是list  特点:插入,删除效率高,可是查找效率低 //分析这个游戏: 插入的时候:怪物,射弹出现时,删除的时候:碰撞时,怪物.射弹出界时. //遍历:fps(每秒中填充图像的帧数(帧/秒)相应的时间,怪物是2秒出现一次,而遍历是60次每秒,可见遍历用的较多,所以我们选择array. CCArray*_targets;//定义怪物集合,3.0一般用vector定义集合 CCArray*_projs;

Cocos2d-x 个人笔记 《2048》(1)

想来想去还是想做游戏,毕竟狂热.想来想去还是2048比较简单.于是就开始瞎做了. 顺道写个笔记,记录一下. (1)Cocos2d-x 配置 cocos2d官网下载的 cocos2d-x-2.2.3 还有 随意下载 Python . 我的Cocos2d-x 解压放在D盘根目录下的,Python默认安装在C盘. Python修改一下环境变量 创建项目可以使用 D:\cocos2d-x-2.2.3\tools\project-creator 目录下的 create_project.py 进入控制台 d

[cocos2dx笔记008]cocos2d 用luabridge手动绑定类

基于cocos2dx 2.2.2版本.这几天使用了cocostudio实现了,动画,骨骼动画,UI编辑,粒子效果,虽然有些不足,但已经算是非常好了.今天尝试用lua,这个非常简单,创建的时候,设置语言为lua,那就可以创建lua工程. 在cocos2d-x-2.2.2\tools\project-creator下运行: python create_project.py -project test_lua -package com.android.zdhsoft -language lua xco

[ios5 cocos2d游戏开发实战] 笔记3-FileUtils, notificationCenter

FileUtils //文件管理工具 FileUtils::getInstance() std::string getStringFromFile(const std::string& filename);//读取文件中的字符串 Data getDataFromFile(const std::string& filename);//获取文件数据 void setSearchPaths(const std::vector<std::string>& searchPaths

Cocos2D学习笔记(1)- 常用的类

1.坐标系 >屏幕坐标系(UIKit):原点在左上角! >OpenGl坐标系:原点在屏幕的左下角! 2.游戏设计:Director--Scene--Layer--Sprite. >CCDirector:导演类,相当于是游戏策划,负责整个游戏的布局和运行规则的制定. >CCScene:场景类,每个场景可以是一个界面或一个关卡. >CCLayer:图层类,为了方便游戏界面的渲染管理. >CCSprite:精灵类, 小结:一个导演类(CCDirector)可以指挥多个场景类(

Cocos2d-x 个人笔记 《2048》(5)

- - 想做特效. 我写的合并方法是调用 display 重绘精灵的图片,使用CCActionInterval 后,我打算把重构精灵延时. 然后就乱了...动作线程还没执行玩,精灵就销毁了什么的.还有定时器还没执行就又调用定时器什么. CCScheduler#scheduleSelector. Selector already scheduled...这之类的错误. 果断重写,把每个要移动的矩阵元素 的移动目标保存下来,然后一次执行所有的动作,再延时重载精灵图片. 用了一个 b[][] 存移动到

Cocos2d-x 3.2 学习笔记(十一)Game 2048

一.规则 游戏2048的规则很简单 2+2=4  4+4=8 8+8=16 16+16=32 ……1024+1024=2048 这游戏挺火的……不过做起来也不难,就用cocos2dx做一下,首先我也没看过别人 怎么做的,当然写的也不是很好,能玩…… 二.游戏 游戏的界面是用画的,数字是写上去的,卡片的移动效果没有做,加入了声音,玩起来还行. 1.主要的类只有四个: GameScene 主场景(分值显示.菜单按钮.游戏区域) GameLayer 游戏操作区域(数值变化.逻辑控制) GameItem

Cocos2d-x 个人笔记 《2048》(3)

开始写主要的 2048Scene.cpp 了. 2048Scene.h 的内容 #pragma once #include "cocos2d.h" #include <queue> using namespace std; using namespace cocos2d; class My2048Scene:public CCLayer { public: My2048Scene(); ~My2048Scene(); static CCScene * scene(); vo

Cocos2d-x 个人笔记 《2048》(4)

忧伤的Android移植之路. 1)首先得安装eclipse,android-sdk,android-ndk-r9d,Java.eclipse 还的安装插件ADT 插件,各种环境变量.反正能保证第一个Android HelloWorld能成功就好.这就不详细说了. 2)我的这些全部放在D盘根目录下,如果有变化,请找到相应安装目录. 3) 打开Eclipse 开始导入包. 4)导入一个Android包 5)选择你的项目下的proj.android 6)复制Cocos2d相关的库文件到自己的项目下面