Javascript.RU

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

Объект в canvas
<canvas id="example">Абнавiце браузэр</canvas>
<script>
   var example = document.getElementById("example");
	

var ctx =example.getContext('2d');

example.width = 1500;

example.height = 500;
var x = example.width/2-45;
var b = example.height;
var c = 15;
var d = 20;
var e = 20;
var i = 50;
var y = 250;
var i;
var bf = 0;
var ii = 0 ;


function draw_bullet(){ 
ctx.clearRect(0,0,example.width,example.height);
ctx.strokeRect(x-30,y+40,i,e-5);
ctx.fillRect(x-30,y+40,i,e-5);
}

function draw_bullet_2(){
ctx.clearRect(0,0,example.width,example.height);
ctx.strokeRect(x-30,y+40,e-5,i);
ctx.fillRect(x-30,y+40,e-5,i);
}

draw_bullet();

function bullet1(){

x = example.width/2-45;

y-=4;

draw_bullet_2();

};
function bullet4(){
x = example.width/2-45;
y+=4;

draw_bullet_2();

};
function bullet2(){
y=250;
x-=4;

draw_bullet();

}
function bullet3(){
y=250;
x+=4;

draw_bullet();

}

   addEventListener("keydown", function(event) {
   
   function draw_b()
   {
    if (event.keyCode == 38){
	
	
	bullet1();
window.requestAnimationFrame(draw_b);
if(y+40<0){
y=250;
ctx.clearRect(0,0,example.width,example.height);

} 
	}
	
	
if(event.keyCode == 40){
	
	bullet4();
	window.requestAnimationFrame(draw_b);
	if(y>400){
	y=250;
	ctx.clearRect(0,0,example.width,example.height);
	
	}
	   }
	   if(event.keyCode == 37){
	
	bullet2();
	window.requestAnimationFrame(draw_b);
	if(x-30<0){
	x=example.width/2;
	ctx.clearRect(0,0,example.width,example.height);
	
	}
	   }
	   	   if(event.keyCode == 39){
	
	bullet3();
	window.requestAnimationFrame(draw_b);
	if(x>1400){
	x=example.width/2;
	ctx.clearRect(0,0,example.width,example.height);
	
	}
	   }
	      };
	
	draw_b();
	
	
	});
	
	
	</script>

SOS
Не могу сделать так , что-бы прямоугольник возвращался на исходную позицию и там оставался ( а именно:
ctx.clearRect(0,0,example.width,example.height);
ctx.strokeRect(x-30,y+40,i,e-5);
ctx.fillRect(x-30,y+40,i,e-5);
или
ctx.clearRect(0,0,example.width,example.height);
ctx.strokeRect(x-30,y+40,e-5,i);
ctx.fillRect(x-30,y+40,e-5,i)
Еще при нажатии кнопок он может летать только в изначально выбранной плоскости (по х или по у). Если с х переключится на у или с у переключится на х , то
фигура просто станет на месте и при нажатии кнопок не будет летать НИ В ОДНОЙ ПЛОСКОСТИ!!!
Пожалуйста , скажите , что делать?
Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas объект выходит за пределы поля Martyna Элементы интерфейса 9 28.09.2016 04:48
Добавить объект в другой объект фонарик Общие вопросы Javascript 5 11.10.2015 01:57
Ищу функцию для canvas, которая будет перемещать мой объект на позицию х,у eko24 Events/DOM/Window 0 12.10.2013 00:33
Функция при наведении на Canvas объект max0n Общие вопросы Javascript 0 07.05.2013 17:56
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45