Articles of JavaScript

如何为HTML5 Javascript游戏创建和制作2D骨架?

我试图在HTML5中制作2D格斗游戏(有点像街头霸王)。 所以基本上有两个玩家,一个AI和一个人。 玩家需要为身体动作制作animation。 另外,还需要有一些碰撞检测系统。 我使用createjs编码,但devise模型/对象/animation,我需要一些其他的软件。 所以我正在寻找一个软件,可以: 轻松制作二维对象的自定义animation。 对象结构(骨架等)一旦定义就相同,但需要定义一次。 可以以js可读格式导出animation和模型(最好是json) 导出的格式在游戏引擎中加载后,碰撞检测可以轻松完成。 对于点1,我正在寻找一些通用的基于骨架的animation。 基于Sprite-sheet的animation将很难进行碰撞检测。

有哪些方法可以在脚本中使用vectortypes?

我使用Google V8引擎将Javascriptembedded到我的游戏中进行脚本编写。 作为我的本地代码的接口,我已经在脚本上下文中注册了一些C ++函数。 在本地代码中,我大量使用了添加vectortypes和几何函数的C ++库GLM 。 命名是可以从着色器代码中知道的风格,例如vec3 , uvec2 , normalize() , length()等等。 现在我想让这些types在脚本中可用。 这将是有用的,因为几何function和vectortypes。 特别是,我想要将vectortypes用作映射到Javascript上下文的C ++函数中的参数。 目前我正在使用像float[3]这样的数组,而不是像vec3这样的向量。 所以我正在寻找可能的方法将GLMfunction带入Javascript。 这是我能想到的。 手动创建最重要的types,无论是在JavaScript文件中,还是使用对象模板从C ++代码注入。 不幸的是,我不能为GLM的所有function做这个。 但是总比没有好。 可能已经有一个Javascript的GLM端口,我没有在互联网上find。 我可以select一个不同的几何graphics库在Javascript中使用。 对于绑定的C ++函数,我不得不将它们的types转换成GLMtypes。 你能想到什么… 也许有一个很酷的方式来把所有的GLM的function转移到Javascript上。 有没有像C ++到Javascript源代码转换器的东西? 或者将整个C ++命名空间自动绑定到脚本? 我不认为这是可能的。 但是Javascript是如此dynamic的语言,必须有一种方法来使GLMtypes可用。 有什么方法可以在脚本中使用vectortypes,最好还有几何辅助函数?

我怎样才能构建我的ASCII地形对象?

所以我有这个代表一个简单的ASCII“上界”的对象。 请注意代码已损坏,但仅供演示… var TerrainObj = { w: { name: 'water', glyph: 'w' }, g: { name: 'ground', glyph: 'g' }, terrain: [[w, w, w, w], [w, g, g, w], [w, g, w, w], [g, g, w, w]], generate_display: function(terrain) { … Code that returns an array the same as terrain but containing the glyphs from […]

计算小数点后数字返回数字的步长

我怎样才能从小数点后返回数字的计算得到舍入数字? 而所有的数字将是从中分出的数字。 说明: 我目前正在使用精灵animation制作基于JavaScript tile-based的游戏。 一些步行/奔跑的精灵是less或多。 比方说,我有3步行精灵走路。 1:向下看 2:walkanimation精灵 3:walkanimation精灵 每个瓦片之间的距离,比方说,是16个像素。 16个像素除以3个子画面为5.33333。 所以,如果玩家走下来,每个animation预览将向下移动5.3333个像素。 这将导致玩家在步行animation完成时的15.999像素。 如果玩家走了很多次,那就不好了。 所以我想要dynamic地获得以分割数为结尾的步长。 在这个例子中: 16/3 将返回: 1/3:6 1/3:5 1/3:5 总计:16像素走

用3D帆布球replace一个div(带有球形图片)

我想制作一个游戏,你必须把球保持在一个绿色的平台上。 在这一点上,球是一个球的形象。 你可以在球场上移动球,一切都很好。 在这里看到它(首先点击1)。 当你使用箭头键,你可以移动球(实际上你移动一个div )。 这看起来有点假,所以我想用一个真正的3D帆布球。 我在这里看到一个很好的例子。 (向下滚动到页面的一半,在标题上方会看到一个带有球的笑脸:平滑) 那么我怎么能用这个球进入我的比赛? 我有以下代码的球: // build the ball and draw its texture with a 2d canvas ——————————————- var buildBall = function() { // create a canvas to draw the ball's texture var ballCanvas = document.createElement('canvas'); ballCanvas.width = 64; ballCanvas.height = 64; var ballContext = ballCanvas.getContext('2d'); // draw 2 […]

如何在cocos2d-x中的JavaScript中列出文件夹中的文件?

我需要从cocos2d-x的JavaScript脚本中列出res文件夹中的所有文件。 什么是最有效的方法来做到这一点? 为了保持与Cocos2d-html5的兼容性,JavaScript是唯一的解决scheme。

如何有效地在WebGL中绘制许多相同的四边形?

最近我试图在过去的几个月里开发一个更为基本的“落砂”/“粉末游戏”风格的游戏( 见这里 ),然后在一个简单的canvas上进行原型devise,然后尝试使用PIXI.js,我决定尝试和推出我自己的基于WebGL的解决scheme,以便我可以控制整个管道。 目前,我只是遍历代表canvas(500×500)的像素的二维数组,然后调用glDrawElements在指定位置绘制像素大小的四元组。 很明显,在这样的游戏中,事情变得非常快,帧速率很快就会降低到不可用状态。 在OpenGLES / WebGl中,我无法在一个DrawTelements调用中find在不同位置绘制四边形批处理的示例,因为没有实例支持,但是人们似乎已经提到了它。 任何人都可以提供任何指针? 这是我非常简单的顶点着色器: attribute vec2 position; uniform mat3 modelViewProjectionMatrix; void main() { gl_Position = vec4(modelViewProjectionMatrix * vec3(position, 1.0), 1.0); } 这里是我的相关呈现代码JavaScript方面: this.setSandBuffers(); material = this.materials.sand; this.gl.vertexAttribPointer(this.positionAttribute, 2, this.gl.FLOAT, false, 0, 0); this.gl.uniform4fv(this.uColor, material.uColor); for (var x = 0; x < this.grid.length; x++) { for (var y = 0; […]

使用canvas context.arc()计算Reus样式世界上的图块ID

我需要为我的游戏提供一些math帮助。 我正在使用Javascript和Canvas标签来创建一个圆形的世界,想想God Finger和Reus。 我的游戏的当前版本在这里: http : //lazyeels-sandbox.appspot.com/ 问题是 : canvas画出顺时针方向90度开始的弧(或圆)。 看到一个示例图像。 我的游戏将世界拆分为细分(瓷砖)。 世界上有10个瓷砖长度,我想计算鼠标hover在哪个瓷砖上,这样玩家可以添加建筑物或调整瓷砖的高度。 所以我需要计算偏移量并从鼠标角度中扣除(弧度或度数很好)。 不过,我似乎无法做到。 我知道理论上我应该做以下事情: 计算鼠标的角度。 通过除以分段大小来计算分块(按照常规分块图即y轴/分块宽度)。 将角度的偏移量移到圆顶部的0度,而不是顺时针旋转90度)。 扣除偏移量以获得新的瓷砖位置。 这是我正在使用的主要function; var getMouseAngle = function(mouse){ var world_length = 10; var segment = (Math.PI * 2)/world_length; // Get the distance var dx = mouse.x – ((canvas.width * 0.5) – Game.camera.xScroll); var dy = mouse.y – ((canvas.height […]

如何在游戏中的电视模型上播放video?

我是Unity3D的新手。 我需要知道如何在Unity3D中使用任何脚本语言切换电视时播放新闻?

在使用组件系统时,将现有实体列表传递给新客户端?

我的游戏服务器使用包含组件的实体来表示游戏世界中的一切。 到目前为止,这工作得很好,但是现在我遇到了一个问题,即允许客户端连接到服务器。 基本上服务器需要告诉连接的客户端游戏中所有现有的实体。因为玩家,怪物,树等都是从同一个实体类实例化的,所以我现在没有办法告诉客户每个实体是什么是。 将实体发送到客户端的最好方法是什么,以便客户端知道要向每个客户端添加哪些组件? 我唯一能想到的是在实体上有一个string“名称”,然后像这样发送数据包给客户端… { 'action': 'create-entity', 'data': { 'entity-type': 'dragon', 'x': 300, 'y': 40, } } 所以现在客户端会知道调用“createDragonEntity”函数来创建正确的实体。 有更好的建议吗?