[SOLVED] Ok so I have a bug I need help with


#1

Ok so I did this `var re = pc.createScript(‘re’);

re.attributes.add(“rpoint”, { type: ‘entity’, title: ‘Respawn Point’ });
// initialize code called once per entity
re.prototype.initialize = function() {

};

// update code called every frame
re.prototype.update = function(dt) {
if (this.app.keyboard.wasPressed(pc.KEY_R)) {
this.entity.findByName(‘Ball’);
this.entity.findByName(‘Ball’,this.reset);
console.log(‘Ball sholuld reset’);
this.reset();
}
};
`
To try to make the ball reset the its current positive but this keeps popping up and the code is already a function.

Look for the script named re

Btw heres the link to the editor:https://playcanvas.com/editor/code/624824?tabs=22756960,23000308,22953844


#2

The error says, this.reset is not a function. You didn’t add a reset function. You need to add something like this:

ScriptName.prototype.reset = function() {
    //Reset Code Goes Here
};

#3

[PROBLEM HAS BEEN SOLVED]

New Script:

var re = pc.createScript('re');

re.attributes.add("rpoint", { type: 'entity', title: 'Respawn Point' });        
re.attributes.add("ball", { type: 'entity', title: 'Ball' });

// initialize code called once per entity
re.prototype.initialize = function() {
   
};

// update code called every frame
re.prototype.update = function(dt) {
 if (this.app.keyboard.wasPressed(pc.KEY_R)) {
        this.reset();
    }
};

re.prototype.reset = function() {
    this.ball.rigidbody.teleport(this.rpoint.getPosition());
    this.ball.rigidbody.linearVelocity = pc.Vec3.ZERO;
    this.ball.rigidbody.angularVelocity = pc.Vec3.ZERO;
};
// swap method called for script hot-reloading
// inherit your script state here
// Redo.prototype.swap = function(old) { };

// to learn more about script anatomy, please read:
// http://developer.playcanvas.com/en/user-manual/scripting/