furthered work
This commit is contained in:
37
6/class.html
Normal file
37
6/class.html
Normal file
@ -0,0 +1,37 @@
|
||||
<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 Player {
|
||||
constructor(startX, startY) {
|
||||
this.x = startX;
|
||||
this.y = startY;
|
||||
}
|
||||
|
||||
move(dx, dy) {
|
||||
this.x += dx;
|
||||
this.y += dy;
|
||||
}
|
||||
}
|
||||
let player1 = new Player(0,0);
|
||||
|
||||
let player2 = new Player(0,0);
|
||||
|
||||
console.log(player2.x)
|
||||
console.log(player2.y)
|
||||
console.log(player2.move(-3,10))
|
||||
console.log(player2.x)
|
||||
console.log(player2.y)
|
||||
console.log(player2.move(4,-7))
|
||||
console.log(player2.x)
|
||||
console.log(player2.y)
|
||||
|
||||
console.log(player1.x)
|
||||
console.log(player1.y)
|
||||
console.log(player1.move(-20,4))
|
||||
console.log(player1.x)
|
||||
console.log(player1.y)
|
||||
console.log(player1.move(16,-9))
|
||||
console.log(player1.x)
|
||||
console.log(player1.y)
|
||||
|
||||
</script></body></html>
|
35
6/pets.html
Normal file
35
6/pets.html
Normal file
@ -0,0 +1,35 @@
|
||||
<html><body><script>
|
||||
function Cat(name) {
|
||||
this.name = name;
|
||||
}
|
||||
Cat.prototype.sayHello = function () {
|
||||
console.log(`Miaow! My name is ${this.name}.`);
|
||||
};
|
||||
|
||||
let kiki = new Cat("Kiki");
|
||||
kiki.sayHello();
|
||||
|
||||
class Dog {
|
||||
constructor(name) {
|
||||
this.name = name;
|
||||
}
|
||||
sayHello() {
|
||||
console.log(`Woof! My name is ${this.name}.`);
|
||||
}
|
||||
}
|
||||
|
||||
let felix = new Dog("Felix");
|
||||
|
||||
let moona = new Cat("Moona");
|
||||
moona.sayHello = function () {
|
||||
console.log(`HELLO!!! I'M ${this.name.toUpperCase()}!`);
|
||||
};
|
||||
moona.sayHello();
|
||||
|
||||
let yappy = new Dog("Yappy");
|
||||
yappy.sayHello = function (){
|
||||
console.log(`Bark Bark! I'M ${this.name.toUpperCase()}!`)
|
||||
}
|
||||
yappy.sayHello();
|
||||
felix.sayHello();
|
||||
</script></body></html>
|
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