论坛首页 Web前端技术论坛

完全分享,共同进步——我开发的第一款HTML5游戏《驴子跳》

浏览 84926 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-08-27   最后修改:2012-08-27
刚刚学习了楼主的my.js内部的63、91、92行的my感觉可以直接只用this,如果其他将my这个对象改成myApp就可以能报错了。。
copy和clone只能对非应用的属性有效。如果有引用类型的属性的话如数组、对象 copy,clone出来的新的对象就会和原对象共用这些引用类型的属性。

因为我对clone的概念理解为clone出来的新对象应该和被clone的完全没有关系,如果能深度的clone就nice了
0 请登录后投票
   发表时间:2012-08-28  
银色黎明 写道
刚刚学习了楼主的my.js内部的63、91、92行的my感觉可以直接只用this,如果其他将my这个对象改成myApp就可以能报错了。。
copy和clone只能对非应用的属性有效。如果有引用类型的属性的话如数组、对象 copy,clone出来的新的对象就会和原对象共用这些引用类型的属性。

因为我对clone的概念理解为clone出来的新对象应该和被clone的完全没有关系,如果能深度的clone就nice了


clone和var 赋值有点像,你可以看到clone出来的对象,实际上就时原对象被加到了新对象的原型链,因此你改变原对象的属性,clone出来的对象也会变。
与var 赋值不一样的地方在于,赋值实际上是多个变量引用了同一个对象,而clone出来的是一个新的对象,且当它改变自身属性时,不会影响原对象中的值。
0 请登录后投票
   发表时间:2012-08-28   最后修改:2012-08-28
yujianshenbing 写道
银色黎明 写道
刚刚学习了楼主的my.js内部的63、91、92行的my感觉可以直接只用this,如果其他将my这个对象改成myApp就可以能报错了。。
copy和clone只能对非应用的属性有效。如果有引用类型的属性的话如数组、对象 copy,clone出来的新的对象就会和原对象共用这些引用类型的属性。

因为我对clone的概念理解为clone出来的新对象应该和被clone的完全没有关系,如果能深度的clone就nice了


clone和var 赋值有点像,你可以看到clone出来的对象,实际上就时原对象被加到了新对象的原型链,因此你改变原对象的属性,clone出来的对象也会变。
与var 赋值不一样的地方在于,赋值实际上是多个变量引用了同一个对象,而clone出来的是一个新的对象,且当它改变自身属性时,不会影响原对象中的值。

我的意思是如果被clone的对象的属性中存在引用类型的值,如a.param = {a:1,b:2}  如果对a clone的话(var b = my.clone(a))  如果把b.param.b=4   那么a.param.b 也将会是4 因为两个实例的param都是指向内存的同一个地址。新生成的对象与原对象并不是完全独立的,并没有完成深clone,可能还是我对clone的理解比较钻牛角尖,呵呵。今天晚上再继续学习楼主的代码。感谢楼主的贡献。
0 请登录后投票
   发表时间:2012-08-28  
银色黎明 写道
yujianshenbing 写道
银色黎明 写道
刚刚学习了楼主的my.js内部的63、91、92行的my感觉可以直接只用this,如果其他将my这个对象改成myApp就可以能报错了。。
copy和clone只能对非应用的属性有效。如果有引用类型的属性的话如数组、对象 copy,clone出来的新的对象就会和原对象共用这些引用类型的属性。

因为我对clone的概念理解为clone出来的新对象应该和被clone的完全没有关系,如果能深度的clone就nice了


clone和var 赋值有点像,你可以看到clone出来的对象,实际上就时原对象被加到了新对象的原型链,因此你改变原对象的属性,clone出来的对象也会变。
与var 赋值不一样的地方在于,赋值实际上是多个变量引用了同一个对象,而clone出来的是一个新的对象,且当它改变自身属性时,不会影响原对象中的值。

我的意思是如果被clone的对象的属性中存在引用类型的值,如a.param = {a:1,b:2}  如果对a clone的话(var b = my.clone(a))  如果把b.param.b=4   那么a.param.b 也将会是4 因为两个实例的param都是指向内存的同一个地址。新生成的对象与原对象并不是完全独立的,并没有完成深clone,可能还是我对clone的理解比较钻牛角尖,呵呵。今天晚上再继续学习楼主的代码。感谢楼主的贡献。


呵呵,你可以看到clone函数其实只有2行代码,因此它目前并没有实现深层复制。
0 请登录后投票
   发表时间:2012-11-02   最后修改:2012-11-13
楼主您好。我想求教一个问题:
viewport的工作原理,这个游戏中它是如何与其它物体以及背景相互工作的。
看了代码一段时间,没看透!
OK。完全明白了。现在还差最后一个问题。
__transform的变形处理。放到我自己写的代码里。就有问题了。看来是我没看透明逻辑是怎么走了。求教呀。

看来我还是看不惯层层继承关系。 。所以按我自己的方式写了这个游戏。


0 请登录后投票
   发表时间:2012-11-08  
必须跟楼主好好学习学习啦!!
0 请登录后投票
   发表时间:2012-12-25  
为什么一直正在加载音乐是95%啊,我都玩不了这游戏
0 请登录后投票
   发表时间:2013-02-27  
对于服务器不支持ogg的情况,我的办法是把ogg直接以dataurl字符串变量的形式存储在js文件中,请求js文件就没问题了,虽然base64编码使文件稍大一点,但比起wav还是苗条很多的。还有个好处是可以把多个声音文件写在一个js文件中,对于小而多的音效文件很好。
0 请登录后投票
   发表时间:2013-03-15  
在firefox下存在音频文件加载到95%的情况。chrome正常。楼主的讲解还是相当详细的。测试过程也很严谨,这种态度我学习了,多谢楼主
0 请登录后投票
   发表时间:2013-03-26  
牛叉,谢谢分享
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics