# Uncaught TypeError: Cannot read property 'setVelocityX' of undefined

**URL:** <https://phaser.discourse.group/t/uncaught-typeerror-cannot-read-property-setvelocityx-of-undefined/9454>\
**Category:** Phaser 3\
**Created:** [May 3, 2021, 1:40pm UTC](https://phaser.discourse.group/t/uncaught-typeerror-cannot-read-property-setvelocityx-of-undefined/9454 "2021-05-03T13:40:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vihang](https://yyz2.discourse-cdn.com/free1/user_avatar/phaser.discourse.group/vihang/32/5098_2.png) [@vihang](https://phaser.discourse.group/u/vihang)\
**Post date:** [May 3, 2021, 1:40pm UTC](https://phaser.discourse.group/t/uncaught-typeerror-cannot-read-property-setvelocityx-of-undefined/9454/1 "2021-05-03T13:40:44Z")

</div>

ar config = {  
type: Phaser.AUTO,  
width: 400,  
height: 400,  
parent:‘play’,  
backgroundColor:’#6699CC’,  
physics: {  
default: ‘arcade’,  
arcade: {  
gravity: { y: 0 },  
debug: false  
}  
},  
scene: {  
preload: preload,  
create: create,  
update: update  
}  
};

var game = new Phaser.Game(config);

function preload ()

{  
//this refers to the object that it refers  
// this.load.image(‘snowman’, ‘images/snowman\_sad.png’);  
this.load.image(‘block’, ‘images/block\_ice.png’);  
this.load.image(‘star’, ‘images/star.png’);  
this.load.spritesheet(‘dude’, ‘images/dude.png’, { frameWidth: 32, frameHeight: 48 } );

}

var player;  
var stars;  
var platforms;  
var cursors;  
var score = 0;  
var scoreText;

function create ()  
{

```
// this.add.image(0, 0, 'block');
// this.add.image(50, 0, 'block');
// this.add.image(100, 0, 'block');
// this.add.image(150, 0, 'block');
// this.add.image(200, 0, 'block');

platforms = this.physics.add.staticGroup(); //create physics for platform when player hits the platform

platforms.create(25, 25, 'block');
platforms.create(75, 25, 'block');
platforms.create(125, 25, 'block');
platforms.create(175, 25, 'block');
platforms.create(225, 25, 'block');
platforms.create(275, 25, 'block');
platforms.create(325, 25, 'block');
platforms.create(375, 25, 'block');

platforms.create(25, 75, 'block');
platforms.create(75, 75, 'block');
platforms.create(125, 75, 'block');
platforms.create(100, 75, 'block');
platforms.create(125, 75, 'block');
platforms.create(175, 75, 'block');
platforms.create(225, 75, 'block');
platforms.create(275, 75, 'block');
platforms.create(325, 75, 'block');
platforms.create(375, 75, 'block');

platforms.create(25, 125, 'block');
platforms.create(75, 125, 'block');
platforms.create(125, 125, 'block');
platforms.create(100, 125, 'block');
platforms.create(125, 125, 'block');
platforms.create(175, 125, 'block');
platforms.create(225, 125, 'block');
platforms.create(275, 125, 'block');
platforms.create(325, 125, 'block');
platforms.create(375, 125, 'block');

platforms.create(25, 175, 'block');
platforms.create(375, 175, 'block');

platforms.create(25, 225, 'block');
platforms.create(75, 225, 'block');
platforms.create(125, 225, 'block');
platforms.create(100, 225, 'block');
platforms.create(125, 225, 'block');
platforms.create(175, 225, 'block');
platforms.create(225, 225, 'block');
platforms.create(275, 225, 'block');
platforms.create(325, 225, 'block');
platforms.create(375, 225, 'block');

platforms.create(25, 275, 'block');
platforms.create(75, 275, 'block');
platforms.create(100, 275, 'block');
platforms.create(125, 275, 'block');
platforms.create(175, 275, 'block');
platforms.create(225, 275, 'block');
platforms.create(275, 275, 'block');
platforms.create(325, 275, 'block');
platforms.create(375, 275, 'block');

platforms.create(25, 325, 'block');
platforms.create(75, 325, 'block');
platforms.create(100, 325, 'block');
platforms.create(125, 325, 'block');
platforms.create(175, 325, 'block');
platforms.create(225, 325, 'block');
platforms.create(275, 325, 'block');
platforms.create(325, 325, 'block');
platforms.create(375, 325, 'block');

platforms.create(25, 375, 'block');
platforms.create(75, 375, 'block');
platforms.create(100, 375, 'block');
platforms.create(125, 375, 'block');
platforms.create(175, 375, 'block');
platforms.create(225, 375, 'block');
platforms.create(275, 375, 'block');
platforms.create(325, 375, 'block');
platforms.create(375, 375, 'block');

//Creation of Sprite

```

player = this.physics.add.sprite(75, 175, ‘dude’);

// player.setBounce(0.2);  
// player.setCollideWorldBounds(true); //collides the player when player hits the platform

this.anims.create({  
key: ‘left’, //key for the action  
frames: this.anims.generateFrameNumbers(‘dude’, { start: 0, end: 3 }), //start and end of the sprite sheet  
frameRate: 10, //fps  
repeat: -1  
});

this.anims.create({  
key: ‘turn’, //key for the action  
frames: [{ key: ‘dude’, frame: 4 }], // which frame of the spritesheet to show in the game, here frame 4 indicates the idle frame image  
frameRate: 20 // we can change the fps for teh character  
});

this.anims.create({  
key: ‘right’, //key for the action  
frames: this.anims.generateFrameNumbers(‘dude’, { start: 5, end: 8 }), ////start and end of the sprite sheet  
frameRate: 20, //fps  
repeat: -1 //  
});

cursors = this.input.keyboard.createCursorKeys(); //function to use the inbuilt keyboard manager to use the keyboard keys for specific action

stars = this.physics.add.group({ //stars physics to collect the star object using the the player  
key: ‘star’,  
repeat: 0,  
setXY: { x: 325, y: 175, stepX:100 }  
});

stars.children.iterate(function (child) { //this function let starts bounce on the platform

```
child.setBounceY(Phaser.Math.FloatBetween(0.4, 0.8));

```

});

scoreText = this.add.text(16, 16, ‘score: 0’, { fontSize: ‘32px’, fill: ‘#000’ }); // create score counter and this will displa score:0

this.physics.add.collider(player, platforms); //creates a collision physics between player and platform  
this.physics.add.collider(stars, platforms); //creates a collision physics between Stars and platform

this.physics.add.overlap(player, stars, collectStar, null, this); //check to see if the player overlaps with a star or not  
}

function update ()  
{  
// movement of the character using keyboard input manager

```
if (cursors.left.isDown) // moving the character in left direction

```

{

```
player.setVelocityX(-230);

player.anims.play('left', true);

```

}

else if (cursors.right.isDown) //moving the character in right direction  
{

```
    player.setVelocityX(230);

    player.anims.play('right', true);

```

}  
else

{  
player.setVelocityX(0); //when idle

```
player.anims.play('turn');

```

}

// if (cursors.up.isDown && player.body.touching.down) // Jumping the character  
// {  
// player.setVelocityY(-430);  
// }

}

console.log(update());

function collectStar (player, star) //if player and star is overlapped then the player collects the star  
{  
star.disableBody(true, true);  
$(’.modal’).modal(‘show’); // to trigger the modal  
}
