js笔记--1

1.创建一个layer层
var GameLayer = cc.Layer.extend({
    _time:null,
    _ship:null,
    _backSky:null,
    // 构造函数
    ctor:function(){
        this._super();
        this.init();
    }, //注意要有逗号

    // 初始化函数
    init:function () {
        return true;
    },

    // 成员函数
    scoreCounter:function () {
        if (this._state == STATE_PLAYING) {
            this._time++;
            this._levelManager.loadLevelResource(this._time);
        }
    },

    // 带参数
    collide:function (a, b) {
        var ax = a.x, ay = a.y, bx = b.x, by = b.y;
        if (Math.abs(ax - bx) > MAX_CONTAINT_WIDTH || Math.abs(ay - by) > MAX_CONTAINT_HEIGHT)
            return false;

        var aRect = a.collideRect(ax, ay);
        var bRect = b.collideRect(bx, by);
        return cc.rectIntersectsRect(aRect, bRect);
    } // 最后一个可以不需要逗号

});

// 如果有需要通过切换场景的方式来进入下一个界面则可以创建这个方法、
// 在得到scene之后可以通过这个方式来进入
// cc.director.runScene(new cc.TransitionFade(1.2, scene));
GameLayer.scene = function () {
    var scene = new cc.Scene();
    var layer = new GameLayer();
    scene.addChild(layer, 1);
    return scene;
};

// 点击开始新游戏时会加载主游戏界面,这时候可能需要加载的资源会比较多
// 所以会用到预加载的方式、这也是成员函数,在点击按钮的时候响应
onNewGame:function (pSender) {
    //load resources
    cc.LoaderScene.preload(g_maingame, function () {
        cc.audioEngine.stopMusic();
        cc.audioEngine.stopAllEffects();
        var scene = new cc.Scene();
        scene.addChild(new GameLayer());
        scene.addChild(new GameControlMenu());
        cc.director.runScene(new cc.TransitionFade(1.2, scene));
    }, this);
},

// 加载plist文件
cc.spriteFrameCache.addSpriteFrames(res.textureTransparentPack_plist);

// 得到屏幕宽高
winSize = cc.director.getWinSize();

// 创建精灵,方式一
var sp = new cc.Sprite(res.loading_png);
sp.anchorX = 0;
sp.anchorY = 0;
sp.scale = MW.SCALE;
this.addChild(sp, 0, 1); //这里的this相当于lua中的self

// 创建精灵方式二
var logo = new cc.Sprite(res.logo_png);
logo.attr({
    anchorX: 0,
    anchorY: 0,
    x: 0,
    y: MW.LOGOY,
    scale: MW.SCALE
});
this.addChild(logo, 10, 1);

// 创建按钮
var newGameNormal = new cc.Sprite(res.menu_png, cc.rect(0, 0, singalWidth, singalHeight));
var newGameSelected = new cc.Sprite(res.menu_png, cc.rect(0, singalHeight, singalWidth, singalHeight));
var newGameDisabled = new cc.Sprite(res.menu_png, cc.rect(0, singalHeight * 2, singalWidth, singalHeight));

var newGame = new cc.MenuItemSprite(newGameNormal, newGameSelected, newGameDisabled, function () {
    // 按钮的响应函数 
}.bind(this));

newGame.scale = MW.SCALE; // 设置属性
var menu = new cc.Menu(newGame, gameSettings, about);
menu.alignItemsVerticallyWithPadding(15);
this.addChild(menu, 1, 2);

// 帧事件、
this.schedule(this.update, 0.1);

update:function () {
        if (this._ship.y > 750) {
            this._ship.x = Math.random() * winSize.width;
            this._ship.y = 10;
            this._ship.runAction(cc.moveBy(
                parseInt(5 * Math.random(), 10),
                cc.p(Math.random() * winSize.width, this._ship.y + 750)
            ));
        }
    },

// 动作
this._ship = new cc.Sprite("#ship03.png");
this._ship.runAction(cc.moveBy(2, cc.p(Math.random() * winSize.width, this._ship.y + winSize.height + 100)));

// js数组
http://www.w3school.com.cn/jsref/jsref_obj_array.asp
// js Boolean 对象
http://www.w3school.com.cn/jsref/jsref_obj_boolean.asp

// this指针
//关于Javascript的this指针,和C++/Java很类似。我们来看个示例:(这个示例很简单了,我就不多说了)

function print(text){
    document.write(this.value + ‘ - ‘ + text+ ‘<br>‘);
    //这里的this是调用print函数的对象
}

var a = {value: 10, print : print};
var b = {value: 20, print : print};

print(‘hello‘);// this => global, output "undefined - hello"

a.print(‘a‘);// this => a, output "10 - a"
b.print(‘b‘); // this => b, output "20 - b"

a[‘print‘](‘a‘); // this => a, output "10 - a"

http://www.php100.com/html/webkaifa/javascript/2012/0228/9927.html

http://www.ibm.com/developerworks/cn/web/1304_zengyz_jsoo/

时间: 2024-10-10 14:58:46

js笔记--1的相关文章

Node.js笔记(0003)---Express框架Router模块学习笔记

这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: Map the given param placeholder `name`(s) to the given callbac

# JS笔记(1)

 JS理论: 1.JavaScript是一个客户端脚本 ------工作在客户端的浏览器完成:相对应的PHP.ASP.NET .JSP 是一个服务端脚本. 2.JS可以插入到HTML中的任意一个位置,不过HTML解析式从上往下解析的,所以放在上面可能会找不到控件. 3.JS的特点: 脚本编程语言 基于对象的语言 由事件驱动 跨平台.依赖于浏览器.与操作环境无关 4.JS的作用: 表单的验证(放在客户端验证比较好)----可以减轻服务端的压力,并且用户体验感更好 页面的动态效果 动态改变页面的内容

node.js笔记——模块的开发

模块是什么? 简单来说模块是用来将实现某个功能的代码进行封装以便在其他项目中通过简单引入的方式实现模块中封装的功能的一个东西!!(我更想管他叫小程序). 模块的引入 模块的引入使用reqiure()函数来实现例如引入http模块 var h = require("http"); 这里需要注意的是require()加载函数可以加载指定的js文件,当引入的不是某个js文件而是一段没有扩展名的字符时,默认node.js会加载当前根目录下的node_modules文件夹下面的文件夹里的文件 并

node.js笔记——文件之间的引入

node.js的基础语法就是JavaScript的语法,所以对于懂得javascript的同学来说要容易一些,至于环境的配置也要相对简单很多,可以访问官方文档进行安装.这里分享一下我在学习中总结的一些东西,这是第一篇先来说说文件之间如何进行引入并互相使用变量及函数. 码缘»node.js笔记——文件之间的引入 http://www.ithome.ren/2017/05/31/node-js1.html

JS 笔记 17年

1, 可把字符串作为 URI 组件进行编码   encodeURIComponent(encodeURIComponent(6))   此为编码两次 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号. escape()除了 ASCII 字母.数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法.而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换.encodeURIComponen

Node.js笔记(0001)---connect模块

首先来看这一部分代码 1 /** 2 * Created by bsn on 14-7-1. 3 */ 4 var connect = require('connect'); 5 6 var app = connect(); 7 function hello(req, res, next) { 8 console.log(req.url); 9 res.end('hello bsn'); 10 next(); 11 } 12 13 function helloAgain(req, res) {

[转载] Node.js 笔记(一) nodejs、npm、express安装

感谢原作者: http://blog.csdn.net/haidaochen/article/details/7257655 Windows平台下的node.js安装 直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 测试安装是否成功: 在命令行输入 node –v 应该可以查看到当前安装的nodejs版本号 简单的例子写一段简短的代码,保存为helloworld.js,大致看下nodejs是怎么用的. 如下:该代码主要是创建一个http服

JS笔记 入门第二

输出内容 document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容 第一种:输出内容用""括起,直接输出""号内的内容 <script type="text/javascript"> document.write("I love JavaScript!"); //内容用""括起来,""里的内容直接输出. </script&

PPK谈JS笔记第一弹

以下内容是读书笔记,再一次温习JS好书:PPK谈JS window.load=initializePageaddEventSimple('window','load',function(){}) load事件在页面被完成加载时触发,显然这正是我们初始化脚本所需要的.问题是如果同时批量初始化,可能会发生替换,最后的赋值会替换前面的. js变量名,方法名等区分大小写使用分号作为语句分隔符注释是// /**/代码块使用{} undefined nullundefined:你访问了一个对象不存在的属性或

JS笔记 入门第四

小测试: 注意:取消所有的设定可以直接使用 document.getElementById("txt").removeAttribute("style"); 这个是个神奇的东西. <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" Content="text/html; charset=utf-8" /> &