我正在使用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 - 对不起,如果代码混乱,问题有点模糊,大脑就被炒了
答案 0 :(得分:2)
我尝试使用"食物块"列表,每个食物块的坐标(小于100x100元素的数组)。
客户将负责清除任何被吃掉的食物块。