Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2018, 19:37
Новичок на форуме
Отправить личное сообщение для RasuLcrose Посмотреть профиль Найти все сообщения от RasuLcrose
 
Регистрация: 18.12.2018
Сообщений: 6

How to make the tank not go out of the canvas ? js
var tank;
function init() {
audio = new Audio("audio/audio.mp3");
audio.play();
myGame = new Game();
tank2 = new Tank (100, 100, 20, 20, "red");
tank = new Tank(100, 100, 20, 20, "red");
myGame.start();
}

function Game() {
self = this;
this.canvas = document.getElementById('MyCanvas');
this.context = this.canvas.getContext('2d');
key = false;
self.start = function () {
console.log("in start function")
setInterval(self.update, 20);
window.addEventListener('keydown', function (e) {
self.key = e.keyCode;
});
window.addEventListener('keyup', function (e) {
self.key = false;
});
}

self.update = function () {
console.log("in update function");
self.clear();
tank.stepX = 0;
tank.stepY = 0;
tank2.stepX = 0;
tank2.stepY = 0;
if (self.key == 37) {
tank.stepX--;
tank.angle = -90;
}
if (self.key == 38) {
tank.stepY--;
tank.angle = 0;
}
if (self.key == 39) {
tank.stepX++;
tank.angle = 90;
}
if (self.key == 40) {
tank.stepY++;
tank.angle = 180;
}
//tank 2
if (self.key == 83) {
tank2.stepX--;
tank2.angle = -90;
}
if (self.key == 87) {
tank2.stepY--;
tank2.angle = 65;
}
if (self.key == 68) {
tank2.stepX++;
tank2.angle = 90;
}
if (self.key == 97) {
tank2.stepY++;
tank2.angle = 1072;
}
tank.draw();
tank.pos();
tank2.draw();
tank2.pos();
}

self.clear = function () {
self.context.clearRect(0, 0, self.canvas.width, self.canvas.height);
}

}

function Tank(x, y, width, height, color) {
this.width = width;
this.height = height;
this.stepX = 0;
this.stepY = 0;
this.angle = 0;
this.x = x;
this.y = y;
this.img = new Image;
this.img.src = ("img/tanchik.png");
this.img.width = 30;
this.img.height = 30;
this.ima = new Image;
this.ima.src = ("img/tank.png");
this.pos = function () {
this.x += this.stepX;
this.y += this.stepY;
}

this.draw = function () {
this.rotateTank(this.img,this.x, this.y, this.angle,this.img.width, this.img.height);
}

this.rotateTank = function (image, x, y, angle, width, height) {
TO_RADIANS = Math.PI / 180;
myGame.context.save();
myGame.context.translate(x, y);
myGame.context.rotate(angle * TO_RADIANS);
//myGame.context.drawImage(,-(width / 2), -(height / 2), width, height);
myGame.context.drawImage(image, -(width / 2), -(height / 2), width, height);
myGame.context.restore();
}
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas диаграмма js, нужно доработать walker1232 Общие вопросы Javascript 2 18.12.2015 01:35
Вакансия JavaScript разработчик / JS / Frontend developer (Санкт-Петербург) Сергей Грачёв Работа 0 21.09.2015 13:31
Пример тестовых заданий на js junior elshaarawy Учебные материалы 3 26.03.2015 15:17
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Cоздание анимации на JS и Canvas Severtain Общие вопросы Javascript 5 14.05.2011 20:40