Hallo,
Ik ben sinds kort begonnen aan een HTML5 2D game. Alleen loop ik nu vast. Deze code heb ik nu gemaakt:
Als ik dit dan doe:
Zou er dit moeten gebeuren:
maar dit gebeurt er in werkelijkheid:
Zou er dit moeten gebeuren:
Hij overschrijft de variable map ook terwijl hij die had moeten kopiëren. Ik heb al uren gedebugt en geGoogeld maar ik vind niets. Iemand raad?
Ik heb al ondervonden dat door regel #5 in de bovenste code te commenten, het probleem is verholpen dat de map variable wordt verandert. Mar de functie werkt dan uiteraard niet meer en met de variable newmap gebeurt dan ook niets.
Grtz
Ik ben sinds kort begonnen aan een HTML5 2D game. Alleen loop ik nu vast. Deze code heb ik nu gemaakt:
function maptopf() {
var pftempmap = map.slice(0);
for (x = 0; x < mapxtiles; x++) {
for (y = 0; y < mapytiles; y++) {
pftempmap[x][y] = ((pftempmap[x][y] == 0) ? 1 : 0);
}
}
return pftempmap;
} Als ik dit dan doe:
map = [
[2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
];
var newmap = maptopf(); Zou er dit moeten gebeuren:
map = [
[2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
];
newmap = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]; maar dit gebeurt er in werkelijkheid:
map = [
[2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
];
var newmap = maptopf(); Zou er dit moeten gebeuren:
map = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
];
newmap = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]; Hij overschrijft de variable map ook terwijl hij die had moeten kopiëren. Ik heb al uren gedebugt en geGoogeld maar ik vind niets. Iemand raad?
Ik heb al ondervonden dat door regel #5 in de bovenste code te commenten, het probleem is verholpen dat de map variable wordt verandert. Mar de functie werkt dan uiteraard niet meer en met de variable newmap gebeurt dan ook niets.
Grtz



