Изображение натыкается на центр холста - PullRequest
0 голосов
/ 03 апреля 2020

Привет всем, я должен сделать анимацию холста для домашней работы, поэтому я хотел, чтобы скрипт рисовал картинку в середине холста и заставлял ее работать каждые x миллисекунд. Я заставил сценарий нарисовать картинку в центре холста, но я все еще не могу заставить сценарий изменить размер этой картинки для меня. Вот почему я прошу вас о помощи, ниже я размещаю скрипт, который у меня уже есть.

HTML код:

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body>
    <h1 class="text-white display-1 mt-5 mb-5 text-center">Canvas:</h1>
    <canvas id="canvas" height="720" width="1280"></canvas>
    <script src="script.js"></script>
    <audio id="my_audio" src="circles.mp3" loop="loop"></audio>
</body>

Код, написанный в TypeScript:

let mainCanvas = <HTMLCanvasElement> document.getElementById("canvas");
let mainContext = <CanvasRenderingContext2D> mainCanvas.getContext('2d');
let Osu = new Image();
Osu.src = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Osu%21Logo_%282015%29.png/600px-Osu%21Logo_%282015%29.png";
var canvasWidth = mainCanvas.width;
var canvasHeight = mainCanvas.height;


function drawCircle() {
    mainContext.clearRect(0, 0, canvasWidth, canvasHeight);

    // kolorowanie tła
    mainContext.fillStyle = `#efefef`;
    mainContext.fillRect(0, 0, canvasWidth, canvasHeight);

    // rysowanie


    mainContext.drawImage(Osu, (mainCanvas.width-Osu.width)/2, (mainCanvas.height-Osu.height)/2);


    window.requestAnimationFrame(drawCircle);
}
drawCircle();
var myAudio = new Audio('circles.mp3'); 
myAudio.addEventListener('ended', function() {
    this.currentTime = 0;
    this.play();
}, false);
myAudio.play();

Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...