HTML 5 Canvas - 在Javascript

时间:2017-01-28 17:36:18

标签: javascript html arrays object coordinates

我正在使用Node.js学习基本的旧学校蛇游戏。而不是1"食物块"我一次出现一个,我试着每秒产生一个额外的产卵。现在我有多个"食物块"使用X,Y坐标,我必须向客户端发射。如果不发送大量100x100的真假,我将如何实现这一目标?

JAVASCRIPT

//Game is 100 by 100

var food = ?;//An array which stores the X & Y coordinates of all spawned food

if(foodEaten){
    removeFood(foodEatenX, foodEatenY);
}
//Call once every second
spawnFood();

socket.emit('foodPositions', food);//send the `food` array to client

function spawnFood(){
    var foodX,
        foodY,
        flag = false;

    while(!flag){
        foodX = Math.floor(Math.random() * 100),
        foodY = Math.floor(Math.random() * 100);

        if(map[foodX][foodY].claim == "empty"){
            flag = true;
            map[foodX][foodY].claim = "notempty";

            /*
            --CODE HERE TO ADD for `food` variable
            */
        }
    }
}
function removeFood(x, y){
    //remove food coordinates in array
}

简化

- 不一定按指定顺序

1)产卵食物@随机x / y坐标(每秒一次)

食物[x] [y] =真

2)去除食物@ x / y坐标(每当我想要的时候(例如当食物得到"吃掉")

food [x] [y] =删除(不是假,只是删除数组/对象)

3)向客户发送食物包

发射(食品)

客户端

接收food变量并执行:     //绘制所有当前可用的食物块     for(var i = 0; i< food.length; i ++)     drawImage(foodImage,foodX,foodY)

P.S - 对不起,如果代码混乱,问题有点模糊,大脑就被炒了

1 个答案:

答案 0 :(得分:2)

我尝试使用"食物块"列表,每个食物块的坐标(小于100x100元素的数组)。

客户将负责清除任何被吃掉的食物块。