一、坦克结构组成:
坦克由三个基本部件组成:主体,炮管和雷达。
- 主体:可进行移动或旋转动作。
- 炮管:可进行旋转和开火动作,开火可控制子弹的能量范围。
- 雷达:可进行旋转和探测敌人的动作。当坦克停止移动时,雷达会被关闭,玩家可以通过手动调用 scan方法开启雷达。
欢迎来到 CodeTank 的世界,将会带你进入一个神奇而充满挑战的代码机器人的世界!
CodeTank(代码坦克)是全世界首个 Javascript 程序员的在线编程对战游戏,是由 腾讯 AlloyTeam 和 HTML5 梦工场联合出品的在线坦克仿真游戏平台,CodeTank 采用 HTML5、Javascript、CSS3、NodeJS、MongoDB 等全新 Web 技术来构建一个基于互联网的在线智能坦克机器人战斗仿真引擎(所以需要支持 HTML5 的浏览器来运行)。
欢迎来到 CodeTank 的世界,将会带你进入一个神奇和充满挑战的代码机器人的世界!
相信每一个男人的心中,都有一份对坦克 (Tank) 特殊的情结,那就访问:
在 javascript 中, 一个原生的 json 对象实际上就是一个单例. 我们现在讨论另外一种.
假设现在在写一个小功能, 点击按钮的时候需要弹出一个遮罩层.
1 2 3 4 5 6 7 8 |
var createMask = function(){ return document.body.appendChild( document.createElement('div') ); } $("button").click(function(){ var mask = createMask(); mask.show(); }) |
但是这个遮罩层是全局唯一的, 不可能同时在页面出现 2 个. 这样写的话每次都会创建一个新的 div. 显然是浪费资源
我们在做一些图像变换或者 3D 建模时,骨架或者网格的 “蒙皮” 是少不了的。
在 webGL 中,也就是 “experimental-webgl” 的 context 中,webGL 跟 openGL 一样,提供了一个非常方便的
1 |
gl.bindTexture |
接口,可以很容易的对某一个指定的面或者网格蒙上指定的素材。并且,被蒙皮的区域做矢量变换,3d rotate 之类的,texture 会自动随着变换。不用额外的做处理。所以在 webGL 中,textureMapping 是十分容易和方便的。
这里有个简单的 demo,支持 webGL 的浏览器可以尝试围观下。
当然,从文章的标题可以看出,我们今天要讨论的内容并不是 webGL 下的 bindTexture。而是在 2D 的 context 下怎么对素材进行 TextureMapping?
大致会有三种类型:
此方案已有新版本, 请查看 《iframe 跨域通信的通用解决方案-第二弹!(终极解决方案)》。本文章可做技术学习供继续交流。
一、背景
在这个 Web 页面越来越丰富的时代,页面通过 iframe 嵌入其他的页面也越来越常见。但由于浏览器同源策略的限制,不同域之间属性和操作是无法直接交互的,所以在这个时候,开发者多多少少需要一些方案来突破这些限制。跨域问题涉及的地方也很多,如文档之间的消息通信、ajax 请求、Cookie 等,本文讨论的是 iframe 和父页面的消息通信。
随着 web2.0 的兴起. 越来越多的网站开始重视用户体验. 传统的服务器吐出页面的方式很多场景下逐渐被 ajax 取代. 用 ajax 的方式一来可以无刷新的更新页面数据. 二来可以大大减少服务器跟浏览器的数据交换量.
话说昨天在写在线素描的时候,想着给画布加上些网格,就跟 PS 里面的一样。但是用 canvas 画是不行的(注:不是它不行……),图片又让我不齿,就作罢了。
Copyright © 2011-2021 AlloyTeam. All Rights Reserved. Powered By WordPress
粤ICP备15071938号-2