var mouseX = 0,mouseY = 0;
//Вешаем обработчки на движение мыши
canvas.addEventListener("mousemove", function(e) {
mouseX = e.offsetX;
mouseY = e.offsetY;
});
//... function draw
player.angle = getAngle(player.x,player.y,mouseX,mouseY);//в радианах
//...
var angleStep = (1).toRadian();//Шаг угла между лучами
var angleRayStart = player.angle - angleStep * rays.length/2;//Угол первого луча, далее угол увеличивается на angleStep, таким образом средний луч будет где-то как раз куда смотрит игрок
//...
//Получить угол между двумя точками
function getAngle(dx, dy, dx1, dy1) {
return Math.atan2(dy - dy1, dx - dx1) + Math.PI;
}
const interval = 1000; // миллисекунды
const min = 1;
const max = 7;
let number = 12027;
setInterval(() =>{
number += min + ~~(Math.random()*(max - min));
output2.innerHTML = "";
number.toString().split("").forEach(s=>output2.innerHTML += "<span>"+s+"</span>");
}
, interval);
$(".widget.widget_nav_menu").each(function(i,el){
$(el).find('.aside__title').attr("rel", $(el).find('.aside__title').siblings().prop('id'));
})
var canvas = getElementByID('GameCanvas');
var canvas = document.getElementById('GameCanvas');
alert(mergesort([10,9,8,232,437,6,5435,4,3]));//пример
function mergesort(m){
return m.length <= 1? m: merge(mergesort(m.splice(0,Math.floor(m.length / 2))), mergesort(m.splice(0)))
}
function merge(left,right){
var result = [];
while (left.length > 0 && right.length > 0){
if (left[0] <= right[0]){
result.push(left[0]);
left.splice(0,1);
}
else{
result.push(right[0]);
right.splice(0,1);
}
}
return result.concat(left).concat(right);
}
function sortList(){
document.querySelectorAll(".items").forEach(itemsCont=>{
var items = Array.from(itemsCont.querySelectorAll("li"));
var arr = [];
items.forEach(el=>arr.push(parseInt(el.getAttribute("data-sort"))));
arr = mergesort(arr);
//arr = arr.sort(); //Лучше использовать sort вместо mergesort, работает примерно в 20 раз быстрее, проверено
arr.reverse().forEach(inx=>{
itemsCont.prepend(items.find((el,i,arra)=>{
if(el.getAttribute("data-sort") == inx){
items.splice(i,1);
return el;
}
}));
});
});
}
var arr1 = [{
"id": 1,
"parent_id": null,
"children": [{
"id": 2,
"parent_id": 1,
"children": []
},
{
"id": 3,
"parent_id": 1,
"children": [{
"id": 4,
"parent_id": 3,
"children": []
}]
}
]
}];
recBuild(document.querySelector("#organisation"),arr1);
function recBuild(parentUl,arr){
arr.forEach((el)=>{
var li = document.createElement("li");
li.innerHTML = el.id;
if(el.children.length > 0 ){
var ul = document.createElement("ul");
recBuild(ul,el.children);
li.append(ul);
}
parentUl.appendChild(li);
});
}
<ul id="organisation"></ul>