Cocos2d-js开发之JavaScript初探

本文深入浅出地介绍了使用Cocos2d-js开发游戏的基础JavaScript知识,包括HelloJS、JS调试、函数、面向对象、音频与视频播放及Canvas绘图等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cocos2d-js开发之JavaScript初探

一. HelloJS

<!DOCTYPE html>

<html>

<head lang="en">

<meta charset="UTF-8">

<title></title>

 

<script type="text/javascript">

alert("Hello JS!");

</script>

    </head>

 <body>

 Hello

 </body>

    </html>

二. JS的调试(DebugJS

index.html

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

    <script type="text/javascript" src="index.js">

    </script>

</head>

<body>

    Hello

</body>

</html>

index.js

console.log("Hello JS!");

 

var a = 1;

var b = 2;

var c = a + b;

 

console.log(c);

/*

Chrome中进行JS的调试,打开“审查元素”,

Source中可以查看到源代码,在Console中可以看到控制台打**印的信息

* */

 

 

 

三. JS函数

<script type="text/javascript">

        function max(a, b) {

            return a > b ? a : b;

        }

        var f = max;

        console.log(f(12, 6));

        //可变参数

        //当函数内部不写任何参数时,调用时传入的参数可以

       //通过arguments得到

        function mas() {

            console.log(arguments);

        }

        mas(1, 2, 3, "Hello");

        //下面通过可变参数函数比较大小

        function maxValue() {

            var max = arguments[0];

            for ( var i = 1; i < arguments.length; i++ ) {

                if ( max < arguments[i] ) {

                    max = arguments[i];

                }

            }

            return max;

        }

        var f_max = maxValue;

        console.log(f_max(1,2,3,8,12));

</script>

[打印结果]

 

四. JS的面向对象

index.html

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

 

    <script src="index.js"></script>

 

</head>

<body>

 

</body>

</html>

index.js

function A()

{

    this.sayHelloWorld = function()

    {

        console.log("构造方法内部");

    }

}

 

// A的原型量动态的方法

A.prototype.sayHello = function()

{

    console.log("Hello");

}

 

//创建静态的方法

A.sayHi = function()

{

    console.log("静态的方法");

}

 

//调用动态的方法

var a = new A();

a.sayHello();

 

// 调用静态的方法

A.sayHi();

 

//创建一个类B,继承自类A

function B(){

}

B.prototype = new A();

 

//B.sayHi(); //B没有能够继承父类A的静态方法

 

var b = new B();

b.sayHello();

b.sayHelloWorld();

//注意:B继承了A的动态方法,包括在A的构造方法内和外的方//法,但没有继承静态的方法


五. JS播放音频(mp3)

index.html

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

</head>

<body>

    <audio src="song.mp3" controls="controls"></audio>

</body>

</html>

 

[效果图]


六. JS播放视频(mp4)

index.html

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

</head>

<body>

    <video src="shiping.mp4" controls="controls" width="600px"

 height="400px"/>

</body>

</html>

[效果图]

 

七. JS通过Canvas画图

index.html

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title></title>

</head>

<body>

 

    <canvas id="canvas" width="400" height="300" />

    <script type="text/javascript" src="index.js"/>

 

</body>

</html>

index.js

var canvas = document.getElementById("canvas");

//绘制2d图形

var context = canvas.getContext("2d");

 

//改变绘制的颜色

context.fillStyle = "#ffff00";

//绘制矩形

context.fillRect(0,0,150,250);

 

//Flash CC是由Adobe公司开发的,同样CreateJS也是由Adobe开发的,

//CreateJS很好的支持了Flash,可以通过创建Html5 CanvasFlash//制作网页动画

八. JS内置对象

 <!--创建对象-->

    <script type="text/javascript">

        //第一种方法创建对象

        document.write("第一种方法创建对象"  + "<br/>");

        people1 = new Object(); //创建了一个people对象

        people1.name = "mxd";

        people1.age= "20";

        document.write("name1:" + people1.name + ", age1:" + people1.age);

 

        // 第二种方法创建对象

        document.write("<br/>"+"第二种方法创建对象"  + "<br/>");

        people2 = new Object();

        people2 = {name:"method",age:"30"};

        document.write("name2:" + people2.name + ", age2:" + people2.age);

 

        //方法三创建对象

        document.write("<br/>"+"第三种方法创建对象"  + "<br/>");

        function people3(name,age)

        {

            this.name = name;

            this.age = age;

        }

 

        son = new people3("haha",34);

        document.write("name3:" + son.name + ", age3:" + son.age);

    </script>

九. JS内置对象-String

<script type="text/javascript">

    var str = "Hello World";

    //length打印字符串的长度

    document.write("字符串的长度为:" + str.length);

    document.write("<br/>");

    //indexOf匹配并返回指定字符串在原字符串中的位置,若原字符串

//中不包含则返回-1

    document.write("" + str.indexOf("Wor")); //查找匹配的字符串

    document.write("<br/>");

    //match匹配字符串,若包含则返回该匹配的字符串,若不包含则返

//null

    document.write(str.match("World") + "");

    document.write("<br/>");

    //replace替换原字符串中的字符段

    document.write(str.replace("World", "MXD"));

    document.write("<br/>");

    //toUpperCase将字符串全部转换为大写

    document.write(str.toUpperCase());

    document.write("<br/>");

    //toLowerCase将字符串全部转换为小写

    document.write(str.toLowerCase());

    document.write("<br/>");

    //split按照指定字符节分割字符串为String数组

    var str0 = "a b c d e f";

    var arr = str0.split(" ");

    document.write(arr[2]);

  </script>

[说明]

除了上面的函数,String字符串对象还有以下属性和方法:

属性:length,prototype,constructor

方法:charAt(),charCodeAt()concat(),fromCharCode(),indexOf(),

  lastIndexOf(),match(),replace(),search(),slice(),substring(),

  substr(),valueOf(),toLowerCase(),toUpperCase(),split()  

 

十.JS内置对象-Date日期对象

<body onload="startTime()">

<script type="text/javascript">

    var date = new Date();

    document.write("当前时间:" + date);

    document.write("<br/>");

 

    document.write("今年是:" + date.getFullYear());

    document.write("<br/>");

 

    document.write("时间戳(毫米数)" + date.getTime());

    document.write("<br/>");

    //设置当前时期

    date.setFullYear(2011, 1, 1);

    document.write("设置之后的当前时间:" + date);

    document.write("<br/>");

 

    function startTime() {

        var nowDate = new Date();

        var hour = nowDate.getHours();

        var minute = checkTime(nowDate.getMinutes());

        var second = checkTime(nowDate.getSeconds());

        document.getElementById("timeTxt").innerHTML = hour + ":" + minute + ":" + second;

        t = setTimeout(function(){

            startTime();

        }, 500);

    }

 

    function checkTime(i) {

        if ( i < 10 ) {

            i = "0" + i;

        }

        return i;

    }

 

</script>

 

<div id="timeTxt" />

 

</body>

 

[说明]

setTimeout(Function Code, delay time)函数是在延迟time时间长度之后,再执行FunctionCode代表的方法(执行一次)。

 

十一.JS内置对象-Array数组

<script type="text/javascript">

    //合并两个Array数组

    var a = ["hello", "world", "JS"];

    var b = ["mxd", "study", "javascript"];

    var c = a.concat(b);

    document.write(c);

    document.write("<br/>");

 

    //对数组进行排序

    var a_sort = ["c", "b", "d", "z", "e", "a"];

    document.write(a_sort.sort());

    document.write("<br/>");

    var b_sort = [5, 1, 9, 3, 11, 6, 8];

    document.write("升序排列<br/>");

    var b_sheng = b_sort.sort(function (a, b) {

        return a - b;

    });

    document.write(b_sheng);

    document.write("<br/>降序排列<br/>");

    var b_jiang = b_sort.sort(function (a, b) {

        return b - a;

    });

    document.write(b_jiang);

    //push一个元素到数组

    document.write("<br/>");

    var a_push = ["a","b",4];

    a_push.push(5);

    // 此处var l = a_push.push(5)之后,lpush之后a_push的长度

    document.write(a_push);

    //数组的翻转

    document.write("<br/>");

    var a_reverse = ["a","b","c","d"];

    document.write(a_reverse.reverse());

</script>

十二.JS内置对象-Math对象

<script type="text/javascript">

    //四舍五入

    var num_round = Math.round(2.5);

    document.write("2.5四舍五入的结果:" + num_round);

    document.write("<br/>");

 

    //随机数

    var num_random = Math.random();

    document.write("Math.random()返回的是从01的随机数:" + num_random);

    document.write("<br/>");

    document.write("返回010的随机数:" + 10 * Math.random());

    document.write("<br/>");

    document.write("返回010的随机的整数:" + parseInt(10 * Math.random()));

    document.write("<br/>");

 

    //最值

    document.write("最大值:" + Math.max(1, 6, 12, 26));

    document.write("<br/>");

    document.write("最小值:" + Math.min(6, 12, -2, -10));

    document.write("<br/>");

 

    //绝对值

    document.write("绝对值:" + Math.abs(-12));

 

</script>

 

 

 

Cocos2d-JS开发之旅 从HTML 5到原生手机游戏》 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》从简单到复杂逐渐深入介绍Cocos2d-JS,包括HTML5和手机原生游戏两个方面的内容。这些内容融汇了作者多年的工作经验和Cocos2d-JS 的亲身使用教训,有助于读者快速掌握游戏开发的方法和避开不必要的麻烦。 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》以两个游戏为线索,每一章的学习都为最终实现游戏而准备。除了基础的Cocos2d-JS使用方法,本书还会探讨如何调试发布原生手机游戏和另外一些高级话题。 《Cocos2d-JS开发之旅——从HTML 5到原生手机游戏》适合所有对2D 游戏开发感兴趣的人群,尤其是计算机专业学生、Flash/JS 开发者,因为Cocos2d-JS简单易懂,读者会发现自己已有的基础能快速应用或转移到Cocos2d-JS 游戏的开发中。 目录 第一部分 准 备 篇 第1 章 Cocos2d-JS 介绍 / 2 第2 章 跑起我们的HelloWorld / 10 第一部分总结 / 27 第二部分 做一个简单的小游戏 第3 章 Cocos2d-JS 的平面世界 / 30 第4 章 让世界来点动静 / 51 第5 章 让玩家操纵这个世界 / 72 第6 章 控制小怪按时出现——定时器 / 84 第7 章 游戏界面 / 96 第8 章 不能光说不练——小小碰碰糖 / 122 第9 章 把成果分享到网上 / 143 第二部分总结 / 158 第三部分 再做一个高大上游戏 第10 章 走向高大上的必经之路——简单的性能优化 / 160 第11 章 让主角不再死板 / 173 第12 章 动态的背景 / 188 第13 章 界面的文字有点丑 / 204 第14 章 超炫的效果——粒子系统 / 211 第15 章 尝试做一个更大的游戏——Hungry Hero(上篇)/ 226 第16 章 尝试做一个更大的游戏——Hungry Hero(下篇)/ 235 第三部分总结 / 291 第四部分 把两个游戏做成原生手机游戏 第17 章 咱们也来做APP / 294 第18 章 真是这么美好吗?更多问题来了 / 304 第四部分总结 / 320 第五部分 高 级 篇 第19 章 订阅者模式——事件机制 / 322 第20 章 屏幕尺寸适配哪家强 / 331 第21 章 让死去的主角灰掉——渲染控制 / 342 第22 章 动态热更新 / 363 第23 章 想说的还有很多 / 374 第五部分总结 / 376
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值