furthered work
This commit is contained in:
64
6/subclass.html
Normal file
64
6/subclass.html
Normal file
@ -0,0 +1,64 @@
|
||||
<html><pre id="log"></pre><body><script>
|
||||
!function(){var n=document.getElementById("log");console.log=function(){for(var i=0;i<arguments.length;i++)"object"==typeof arguments[i]?n.innerHTML+=(JSON&&JSON.stringify?JSON.stringify(arguments[i],void 0,2):arguments[i])+"<br />":n.innerHTML+=arguments[i]+"<br />"}}();
|
||||
|
||||
class Actor {
|
||||
constructor(startX, startY) {
|
||||
this.x = startX;
|
||||
this.y = startY;
|
||||
}
|
||||
|
||||
move(dx, dy) {
|
||||
this.x += dx;
|
||||
this.y += dy;
|
||||
}
|
||||
distanceTo(otherActor) {
|
||||
let dx = otherActor.x - this.x;
|
||||
let dy = otherActor.y - this.y;
|
||||
return Math.hypot(dx, dy);
|
||||
}
|
||||
}
|
||||
|
||||
class Player extends Actor {
|
||||
constructor(startX, startY) {
|
||||
super(startX, startY);
|
||||
this.hp = 100;
|
||||
}
|
||||
move(dx, dy) {
|
||||
this.x += dx;
|
||||
this.y += dy;
|
||||
}
|
||||
}
|
||||
|
||||
class Enemy extends Actor {
|
||||
attack(player) {
|
||||
if (this.distanceTo(player) < 4) {
|
||||
player.hp -= 10;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Follower extends Actor{
|
||||
constructor(startX,startY, player){
|
||||
super(startX,startY)
|
||||
this.player = player
|
||||
}
|
||||
follow(player){
|
||||
this.x = player.x
|
||||
this.y = player.y
|
||||
}
|
||||
}
|
||||
|
||||
let player = new Player(0,0);
|
||||
let follower = new Follower(0,0);
|
||||
let enemy = new Enemy(0,0);
|
||||
|
||||
player.move(10,10)
|
||||
console.log(player.x, player.y)
|
||||
console.log(follower.x,follower.y)
|
||||
follower.follow(player)
|
||||
console.log(follower.x,follower.y)
|
||||
|
||||
</script></body></html>
|
Reference in New Issue
Block a user