小编Max*_*Max的帖子

提高交错列等距网格上的点击检测性能

我正在研究等距游戏引擎,并且已经为像素完美点击检测创建了算法.访问该项目并注意到点击检测能够检测到点击了哪个边缘.它还会检查y-index以单击最前面的磁贴.

我当前算法的解释:

等距网格由100*65px的平铺图像组成. TileW=100, TileL=50, tileH=15

瓷砖尺寸

地图由三维数组表示map[z][y][x].

平铺中心点(x,y)的计算如下:

//x, y, z are the position of the tile

if(y%2===0) { x-=-0.5; }    //To accommodate the offset found in even rows
this.centerX = (x*tileW) + (tileW/2);
this.centerY = (y*tileL) - y*((tileL)/2) + ((tileL)/2) + (tileH/2) - (z*tileH);
Run Code Online (Sandbox Code Playgroud)

等距网格

用于确定鼠标是否位于磁贴上给定区域内的原型函数:

Tile.prototype.allContainsMouse = function() {
    var dx = Math.abs(mouse.mapX-this.centerX),
        dy = Math.abs(mouse.mapY-this.centerY);

    if(dx>(tileW/2)) {return false;}    //Refer to image
    return (dx/(tileW*0.5) + (dy/(tileL*0.5)) < (1+tileHLRatio));
}
Run Code Online (Sandbox Code Playgroud)

Tile.prototype.allContainsMouse()如果鼠标在绿色范围内,则返回true.通过检查dx是瓷砖宽度的一半来裁剪红色区域

图1


Tile.prototype.topContainsMouse = …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm click collision-detection isometric

10
推荐指数
1
解决办法
1327
查看次数

如何在raspberry PI /或任何基于Linux的PC上托管NodeJS http Web服务器

我见过人们在覆盆子PI上托管Apache服务器,当然还有常规计算机上.我不希望或租用VPS,并认为最好在我的Raspberry PI 2 B上设置一个:

(1gb ram/32gb disk/1ghz on overclock)
Run Code Online (Sandbox Code Playgroud)

在计算机上设置NodeJS http Web服务器的正确方法是什么?你可以把我链接到一个教程(如果有的话)(找不到任何教程).

我也想知道我是否会更好地租用具有经常性成本和缺乏定制/控制的VPS,或者在工作专用PC上.请记住,我希望在多个PI(例如Chef)上练习一些开发工作.

我需要这个服务器可以通过互联网通过IP或域访问.我该如何设置呢?(我有域名)

更新:我写了一篇关于这个主题的博客文章.

本教程将完成整个安装过程.点击下面的链接

在Raspberry Pi上托管Node.js HTTP服务器

linux httpserver node.js raspberry-pi raspbian

7
推荐指数
1
解决办法
4469
查看次数

如何将新对象添加到具有索引号的对象

有没有办法将2属性添加到Locations对象?

要添加的属性:

2:{
   name: "Japan",
   lat: 36, 
   lng: 138,
   description: 'default',
   color: 'default',
   url: 'default'
} 
Run Code Online (Sandbox Code Playgroud)

地点对象:

var locations = {
        0: {
            name: "New York",
            lat: 40.71, 
            lng: -74.0059731,
            description: 'default',
            color: 'default',
            url: 'default',
            size: 'default'
        },
    1: {
        name: "London",
        lat: 51.5073346, 
        lng: -0.1276831,
        description: 'default',
        color: 'black',
        url: 'default',
        type:'square'
        }
}
Run Code Online (Sandbox Code Playgroud)

如下所示:{0:{name:"New York",lat:40.71,lng:-74.0059731,description:'default',color:'default',url:'default',size:'default'} ,1:{name:"London",lat:51.5073346,lng:-0.1276831,description:'default',color:'black',url:'default',type:'square'} 2:{name:"Japan ",lat:36,lng:138,说明:'默认',颜色:'默认',网址:'默认'}}

javascript object

0
推荐指数
1
解决办法
30
查看次数