Базовая функция конструктор:
function Unit() {
var unit = this;
this.image = new Image();
this.positionX = !this.positionX ? 0 : this.positionX;
this.positionY = !this.positionY ? 0 : this.positionY;
this.draw = function(context2D) {
context2D.drawImage(this.image, this.positionX, this.positionY);
};
};
Создание экземпляра базового объекта:
var unit = new Unit();
Экземпляры классов для наследования:
function Gun() {
var gun = this;
gun.image.src = 'images/gun.png';
this.width = this.image.width;
this.height = this.image.height;
this.positionX = 170;
this.positionY = 550;
this.moveLeft = function(leftEdge, step) {
gun.positionX -= step;
gun.positionX = gun.positionX < leftEdge ? leftEdge : gun.positionX;
};
this.moveRight = function(rightEdge, step) {
gun.positionX += step;
gun.positionX = gun.positionX > (rightEdge - gun.width) ? rightEdge - gun.width : gun.positionX;
};
};
function Bullet(positionX, positionY) {
var bullet = this;
bullet.image.src = 'images/bullet.png';
this.positionX = positionX;
this.positionY = positionY;
};
Gun.prototype = unit;
Bullet.prototype = unit;
_____________________________________________________________________________
при создании объектов:
var gun = new Gun();
var bullet = new Bullet();
console.log(gun.image.src);
console.log(bullet.image.src);
результат:
file:///Z:/home/spaceinvader/public_html/images/bullet.png
file:///Z:/home/spaceinvader/public_html/images/bullet.png
_____________________________________________________________________________
при создании объектов:
var bullet = new Bullet();
var gun = new Gun();
console.log(gun.image.src);
console.log(bullet.image.src);
результат:
file:///Z:/home/spaceinvader/public_html/images/gun.png
file:///Z:/home/spaceinvader/public_html/images/gun.png
Почему при создании новых объектов переопределяется image.src ?
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.