My code currently looks like this:
It currently just says “Cannot read property ‘y’ of undefined” When I try to run my program. I want the spacebar to create and fire a laser across the screen. I suspect that part isn’t working and I would love some help.
Can you share your code?
When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.
See this post to find the backtick on your keyboard. The “preformatted text” tool in the editor (</>
) will also add backticks around text.
Note: Backticks are not single quotes.
1 Like
var player = {
x: (totalWidth/2), y: (totalHeight-128)}
var enemycperrow = floor(totalWidth/50); // delar skärmen på 50 eftersom fienderna är 50x50 och avrundar ner
var enemies = [];
for (var i=0; i < enemycperrow; i++){
enemies.push ({x: 0+50*i, y: 0, speed: 2, change: 1});
}
var lasers = [];
function PlayerMovement(){
if(keyboard.d && (player.x+128)<totalWidth){
player.x+=8;}
if(keyboard.a && player.x>0) {
player.x+=(-8);}
picture(player.x, player.y, "https://www.iconninja.com/files/773/616/896/pixelated-alien-icon.png")
}
function EnemyMovement(){
var i = 0;
while (i < enemycperrow)
{
var enemy = enemies[i]//Går igenom alla fiender en åt gången
enemy.x += (enemy.speed * enemy.change);//Här är början på rörelsen för fienderna
if (enemy.x<= 0 || enemy.x+50 >= totalWidth){
enemy.change *=-1;
enemy.y += 70;}
picture(enemy.x, enemy.y, "http://spelprogrammering.nu/bilder/tie.png")
i+=1;}
}
function HandleLasers () {
if (keyboard.space){
lasers.push ({x: player.x+63, y: 93})
var laser = {
x: player.x , y: 93
}
}
laser.y -= 15;
rectangle(laser.x, laser.y, 2, 20, "red");
}
updatesPerSecond=30;
function update()
{
clearScreen();
PlayerMovement();
EnemyMovement ();
HandleLasers ();
}
</script>```