初学 cocos2d-html5

<canvas id="gameCanvas" width="320" height="480"></canvas> 设置窗口大小

<link rel="icon" type="image/GIF" href="res/favicon.ico"/>设置ico

<Meta name="viewport" content="user-scalable=no"/>

<canvas id="gameCanvas" width="320" height="480"></canvas>初始化游戏界面大小(后面可变)


适配

cc.view.adjustViewPort(true);

cc.view.setDesignResolutionSize(320,480,cc.ResolutionPolicy.SHOW_ALL);

cc.view.resizeWithbrowserSize(true);

cc.director.setProjection(cc.Director.PROJECTION_2D);


模板文件夹中要添加 frameworks 才能正常运行


cc.LoaderScene.preload(g_resources,function () {

cc.director.runScene(new HelloWorldScene());

},this); 会显示加载进度


ctor:function () { 构造函数


打开project.json,在jsList字段加入StartScene.js的路径。


cc.Scene.extendCocos2d-JS提供的Scene继承方法



创建场景

var HelloWorldScene = cc.Scene.extend({

onEnter:function () {

this._super();

var layer = new HelloWorldLayer();

this.addChild(layer);

}

});

cc.director.runScene(new cc.TransitionFade(1.2,scene));


创建层

var HelloWorldLayer = cc.Layer.extend({

sprite:null,

ctor:function () {



创建标签

var _label = new cc.LabelTTF("hellow world","",38);


创建精灵 设置属性

this.sprite = new cc.Sprite(res.HelloWorld_png);

this.sprite.attr({

x: size.width / 2,

y: size.height / 2,

scale: 0.5,

rotation: 180

});


执行动作

this.sprite.runAction(

cc.sequence(

cc.rotateto(2,0),

cc.scaleto(2,1,1)

)

);


helloLabel.runAction(

cc.spawn(

cc.moveBy(2.5,cc.p(0,size.height - 40)),

cc.tintTo(2.5,255,125,0)

)

);


播放声音

cc.audioEngine.setMusicVolume(0.7);

cc.audioEngine.playMusic(res.mainMainMusic_mp3,true);

cc.audioEngine.stopMusic();

cc.audioEngine.stopAllEffects();


创建菜单按钮

var newGame = new cc.MenuItemSprite(newGamenormal,newGameSelected,newGamedisabled,function () {

this.onButtonEffect();

//this.onNewGame();

flareEffect(flare,this,this.onNewGame);

}.bind(this));

var gameSettings = new cc.MenuItemSprite(gameSettingsnormal,gameSettingsSelected,gameSettingsdisabled,this.onSettings,this);

var about = new cc.MenuItemSprite(aboutnormal,aboutSelected,aboutdisabled,this.onAbout,this);


var menu = new cc.Menu(newGame,gameSettings,about);

menu.alignItemsverticallyWithPadding(10);

this.addChild(menu,2);


——————————————

var item1 = new cc.MenuItemToggle(

new cc.MenuItemFont("On"),

new cc.MenuItemFont("Off") );

item1.setCallback(this.onSoundControl );

var state = MW.soUND ? 0 : 1;

item1.setSelectedindex(state);



创建定时器

this.schedule(this.update,0.1);

update:function () {}


随机数

Math.random() * winSize.width;


创建点坐标

cc.p(x,y);


使用纹理缓存


cc.spriteFrameCache.addSpriteFrames(res.textureTransparentPack_plist);

var cacheImage = cc.textureCache.addImage(res.menuTitle_png);

var title = new cc.Sprite(cacheImage,cc.rect(0,134,34));


用户事件

// accept touch Now!

if (cc.sys.capabilities.hasOwnProperty('keyboard'))

cc.eventManager.addListener({

event: cc.EventListener.KEYBOARD,

onKeypressed:function (key,event) {

MW.KEYS[key] = true;

},

onkeyreleased:function (key,event) {

MW.KEYS[key] = false;

}

},this);


if ('mouse' in cc.sys.capabilities)

cc.eventManager.addListener({

event: cc.EventListener.MOUSE,

onMouseMove: function(event){

if(event.getButton() == cc.EventMouse.BUTTON_LEFT)

event.getCurrentTarget().processEvent(event);

}

},this);


if (cc.sys.capabilities.hasOwnProperty('touches')){

cc.eventManager.addListener({

prevTouchId: -1,

event: cc.EventListener.TOUCH_ALL_AT_ONCE,

ontouchesMoved:function (touches,event) {

var touch = touches[0];

if (this.prevTouchId != touch.getId())

this.prevTouchId = touch.getId();

else event.getCurrentTarget().processEvent(touches[0]);

}

},this);

}


if( 'touches' in cc.sys.capabilities )

cc.eventManager.addListener(cc.EventListener.create({

event: cc.EventListener.TOUCH_ALL_AT_ONCE,

ontouchesEnded:function (touches,event) {

if (touches.length <= 0)

return;

event.getCurrentTarget().moveSprite(touches[0].getLocation());

}

}),this);

else if ('mouse' in cc.sys.capabilities )

cc.eventManager.addListener({

event: cc.EventListener.MOUSE,

onmouseup: function (event) {

event.getCurrentTarget().moveSprite(event.getLocation());

}

},this);


精灵触摸

ctor: function(){

this._super();

cc.eventManager.addListener({

event: cc.EventListener.TOUCH_ONE_BY_ONE,

swallowtouches: true,

onTouchBegan: this.onTouchBegan,

onTouchMoved: this.onTouchMoved,

onTouchEnded: this.onTouchEnded

},this);

},


onTouchBegan:function (touch,event) {

var target = event.getCurrentTarget();

if (target._state != PADDLE_STATE_UNGRABbed) return false;

if (!target.containsTouchLocation(touch)) return false;


target._state = PADDLE_STATE_GRABbed;

return true;

},

onTouchMoved:function (touch,event) {

var target = event.getCurrentTarget();

// If it weren't for the Touchdispatcher,you would need to keep a reference

// to the touch from touchBegan and check that the current touch is the same

// as that one.

// Actually,it would be even more complicated since in the Cocos dispatcher

// you get Array instead of 1 cc.Touch,so you'd need to loop through the set

// in each touchXXX method.

cc.assert(target._state == PADDLE_STATE_GRABbed,"Paddle - Unexpected state!");


var touchPoint = touch.getLocation();

//touchPoint = cc.director.convertToGL( touchPoint );


target.x = touchPoint.x;

},

onTouchEnded:function (touch,event) {

var target = event.getCurrentTarget();

cc.assert(target._state == PADDLE_STATE_GRABbed,"Paddle - Unexpected state!");

target._state = PADDLE_STATE_UNGRABbed;

},


拆分字符串

var str="123,4567,89,0";
var a=str.split(",");
alert(a.length);//4数组长度为4
alert(a[0]);
return true;


字符串转json

  1. functionConvertToJsonForJs(){
  2. //vartestJson="{name:'小强',age:16}";(支持)
  3. //vartestJson="{'name':'小强','age':16}";(支持)
  4. vartestJson='{"name":"小强","age":16}';
  5. //testJson=eval(testJson);//错误的转换方式
  6. testJson=eval("("+testJson+")");
  7. alert(testJson.name);
  8. }

初学cocos2d html5的更多相关文章

  1. 使用HTML5做的导航条详细步骤

    这篇文章主要介绍了用HTML5做的导航条详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 详解HTML5中的picture元素响应式处理图片

    这篇文章主要介绍了详解HTML5中的picture元素响应式处理图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. html5利用canvas实现颜色容差抠图功能

    这篇文章主要介绍了html5利用canvas实现颜色容差抠图功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  4. HTML5拖拽功能实现的拼图游戏

    本文通过实例代码给大家介绍了HTML5拖拽功能实现的拼图游戏,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

  5. HTML5实现直播间评论滚动效果的代码

    这篇文章主要介绍了HTML5实现直播间评论滚动效果的代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. 使用Html5多媒体实现微信语音功能

    这篇文章主要介绍了使用Html5多媒体实现微信语音功能,需要的朋友可以参考下

  7. HTML5 播放 RTSP 视频的实例代码

    目前大多数网络摄像头都是通过 RTSP 协议传输视频流的,但是 HTML 并不标准支持 RTSP 流。本文重点给大家介绍HTML5 播放 RTSP 视频的实例代码,需要的朋友参考下吧

  8. html5 拖拽及用 js 实现拖拽功能的示例代码

    这篇文章主要介绍了html5 拖拽及用 js 实现拖拽,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. HTML5自定义视频播放器源码

    这篇文章主要介绍了HTML5自定义视频播放器源码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  10. HTML5新增form控件和表单属性实例代码详解

    这篇文章主要介绍了HTML5新增form控件和表单属性实例代码详解,需要的朋友可以参考下

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部