用替换或拼接替换阵列中的编号
Replace numbers in Array with replace or splice
所以这里的目的是,当球击中数字为6的砖块时,它必须用数字0替换整排。当我使用splice(例如:stenen.splice(I-,1)时,它删除行而不留下任何空白,但使用数字0可以创建空白,正如你在代码中看到的那样,但我不知道如何创建空白?
var stenenPerRij = 27;
var steenHoogte = 20;
var steenBreedte = canvas.width/stenenPerRij;
var stenen = [
[0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,1,5,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,5,5,5,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,1,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,5,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,1,5,5,5,5,5,5,1,1,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,1,5,5,5,5,5,5,5,1,1,0,0,0,0,0,0,0,0],
[0,0,0,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,1,1,0,0,0,0,0,0,0],
[0,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,0,0],
[1,1,5,5,5,5,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,0,0],
[1,5,5,5,1,1,1,5,5,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1,0],
[1,1,5,5,5,5,5,5,5,5,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1],
[0,1,1,5,5,5,5,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,1,1],
[0,1,1,1,1,1,1,1,5,5,5,5,1,1,5,5,5,5,5,5,5,5,5,5,5,1,1],
[0,1,1,5,5,5,5,5,5,5,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,1,1],
[0,0,1,1,1,1,1,1,1,1,1,5,5,1,1,5,5,5,5,5,5,5,5,5,1,1,0],
[0,0,0,1,5,5,5,5,5,5,5,5,1,1,1,1,5,5,5,5,5,1,1,1,1,0,0],
[0,0,0,1,1,5,5,5,5,1,1,1,1,1,1,5,5,5,5,1,1,1,1,1,1,0,0],
[0,0,0,0,1,1,1,1,1,1,5,5,5,5,1,1,5,5,1,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,5,5,5,5,5,1,1,1,5,1,1,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]
];
function makenMuur() {
for(var i = 0; i < stenen.length; i = i+1) {
for(var j = 0; j < stenen[i].length; j = j+1) {
tekenenStenen(j,i,stenen[i][j]);
}
}
}
function tekenenStenen(x,y,stenen) {
switch(stenen) {
case 1:
mijnObject.fillStyle = "#0d0d0d";
break;
case 2:
mijnObject.fillStyle = "#333333";
break;
case 3:
mijnObject.fillStyle = "#595959";
break;
case 4:
mijnObject.fillStyle = "#808080";
break;
case 5:
mijnObject.fillStyle = "#a6a6a6";
break;
default:
mijnObject.clearRect(0, 0, steenBreedte, steenHoogte);
break;
}
if(stenen) {
mijnObject.beginPath();
mijnObject.strokeStyle = "#000000";
mijnObject.rect(x*steenBreedte, y*steenHoogte, steenBreedte, steenHoogte);
mijnObject.fill();
mijnObject.stroke();
mijnObject.closePath();
}
}
既然知道命中的行,只需将其替换为每个位置都包含0的数组,例如
var nullRij = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
// other code
stenen[indexOfHitRow] = nullRij;
您可以循环浏览该行并将其所有值设置为0:
var rowIndex = 6;
var myRow = allMyRows[rowIndex];
for (var i = 0; i < myRow.length; i++) {
x[i] = 0;
}
function changeWholeRowToZero(x){
// x is the row index, start from 0.
if (typeof stenen[x] != 'undefined'){
$.each(stenen[x], function(key, val){
stenen[x][key] = 0;
});
}
}
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 我如何找到一个句子中的所有空格并替换忽略它们
- 如何用更合适的内容替换document.write
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 用空格替换下划线PHP
- str.split(someString).join(someOtherString)是否等效于替换
- 使用javascript的图像替换循环
- window.location替换并传递URL历史记录条目中的变量
- 替换标记中的属性
- 指令的模板必须只有一个根元素:With restrict E&替换true
- AngularJs对ng消息的自定义替换
- 用超链接替换URLS
- 用cdata标记替换脚本标记
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 用替换或拼接替换阵列中的编号
- JS正则表达式替换编号
- Angular js将月份编号替换为月份名称
- 正则表达式 - 替换逗号的所有奇数编号
- jQuery替换-样式编号