Показать сообщение отдельно
  #6 (permalink)  
Старый 17.09.2017, 17:14
Аспирант
Отправить личное сообщение для Zombie_Killer Посмотреть профиль Найти все сообщения от Zombie_Killer
 
Регистрация: 20.06.2017
Сообщений: 38

рони,
var canvas = document.getElementById('c1');
var ctx = canvas.getContext('2d');

var x = 200;
var y = 100;
var stepCount = 0; //кол-во шагов в одном напралении
var direction; // направление движения
var timer;
var myX;
var myY;

function drawDot() {
    ctx.clearRect(0, 0, 400, 200);
    if (x < 0 || x > 400 || y < 0 || y > 200) {
        x = Math.floor(Math.random() * (400 - 0 + 1)) + 0;
        y = Math.floor(Math.random() * (200 - 0 + 1)) + 0;;
    }
    if (stepCount == 0) {
        stepCount = Math.floor(15 * Math.random());
        direction = Math.floor(8 * Math.random()); // 0-7
    } else {
        stepCount--;
    }
    switch (direction) {
        case 0:
            // вверх
            y = y - 4;
            break;
        case 1:
            // вправо
            x = x + 4;
            break;
        case 2:
            // вниз
            y = y + 4;
            break;
        case 3:
            // влево
            x = x - 4;
            break;
        case 4:
            // вправо вверх
            x = x + 4;
            y = y - 4;
            break;
        case 5:
            // вправо вниз
            x = x + 4;
            y = y + 4;
            break;
        case 6:
            // влево вниз
            x = x - 4;
            y = y + 4;
            break;
        case 7:
            // влево вверх
            x = x - 4;
            y = y - 4;
            break;
    }
    
//    document.getElementById('c1').addEventListener('click', function(event){
//        if
//    }
    
    var tsel = ctx.fillRect(x - 3, y - 3, 6, 6);
    ctx.beginPath();
    ctx.moveTo(x, y);
    ctx.lineTo(myX, myY);
    ctx.stroke();
    timer = setTimeout(drawDot, 10);
}
drawDot();
Ответить с цитированием