No puedo llamar a la función 'mover' de la clase Circle desde una función dentro de una función
Probé un par de correcciones, como crear funciones que ejecutan la función que quiero, pero eso resultó en el mismo problema.
Simplifiqué las cosas para que sea más fácil de leer.
class Bullet { constructor() { this.bullet = new Circle(radius); // Circle class contains a function move(x,y); }
Llamar a esto funciona aunque
setpos(x,y){ this.bullet.move(x,y) }
Esto también
moves(xmov, ymov, moveTime) { this.bullet.move(xmov,ymov); setpos(xmov,ymov); }
esto está funcionando completamente, pero no es lo que quiero.
esta versión es lo que creo que debería funcionar, pero la función es "indefinida":
moves(xmov, ymov, moveTime) { this.xmov = xmov; // assigning parameters to instance of object hopefully correctly this.ymov = ymov; this.moveTime = moveTime; // probably unnecessary but it didnt recognise it otherwise? var mt = this.moveTime; var xmv = this.xmov; var ymv = this.ymov; var timerCount = 0; setTimer(moveitman,1) // <-- calls moveitman() every 1ms function moveitman() { timeCount++; if (timerCount < mt) { var xSpeed = xmv / mt; // < this stuff works var ySpeed = ymv / mt; this.bullet.move(xSpeed,ySpeed); // undefined but worked outside the function??? } }