2016-04-15 4 views
4

Добрый день. Как говорится в заголовке, я пытаюсь оживить 2d spritesheet на элементе canvas для простой 2d-игры, которую я делаю. Я просмотрел почти десяток статей и не нашел того, что искал, и это инструкции о том, как это сделать без помощи какой-либо библиотеки. Вы можете сказать мне, хорошо, сэр, вы сумасшедшие, если не собираетесь воспользоваться этой свободно доступной технологией, которая могла бы облегчить вашу жизнь. Мой ответ на это заключается в том, что я делаю это ради обучения, потому что я хочу стать лучшим разработчиком javascript и расти, чтобы писать большие и лучшие игры. При этом, я думаю, мой вопрос: как мне одушевить спрайт? (Я хочу, чтобы игрок мог вводить направления с помощью клавиш со стрелками) Не ошибитесь: я не прошу кого-либо написать код для меня, скорее я спрашиваю, где я могу найти ресурсы, чтобы научить себя, как это сделать мой собственный. Спасибо всем, очень ценим.Анимация спрайта на <canvas> БЕЗ библиотеки JS

+0

Вау, это, безусловно, мотивация :) Да, это можно сделать, поскольку функция 'canvasRenderingContext2d.drawImage()' принимает до 8 переменных, определяющих размер и положение изображения, и t он размер и положение коробки, которая отключает его. Потребуется некоторое время, чтобы понять все корреляции 'dx, sx, sy, dy, sw, sh, dh, dw', но в противном случае это то, что вам нужно. Читайте здесь: https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/drawImage - Btw, для решения ванильного javascript. Он учит вас гораздо больше о том, как работает программирование. – somethinghere

+0

Хорошо, я взглянул на документацию, которую вы указали в своем комментарии. Я следил за ним до тех параметров, которые определяют свойства суб-прямоугольника. Было бы замечательно, если бы вы могли прояснить, для чего предназначена суб-прямоугольник. Теперь, когда я знаю, как рисовать изображение, как мне его оживить? – Streamer

+0

Я бы с удовольствием, но я едва сам сломал эту поверхность. Это действительно требует некоторого привыкания, но я уверен, что если у вас есть время, это можно понять, играя с ним ... Кроме того, я, к сожалению, не успеваю поэкспериментировать и дать вам хороший ответ. Я сделал ставку в надежде, что вы привлечете кого-то, кто свободно говорит «drawImage» :) – somethinghere

ответ

0

Ответ: canvas + RequestAnimationFrame. Вот отличный учебник: http://www.williammalone.com/articles/create-html5-canvas-javascript-sprite-animation/

Я искал проект игры html5 + javascript 2d, чтобы присоединиться несколько месяцев назад. Если вам интересно, я хотел бы сотрудничать с вами в этом проекте. Просто дайте мне знать, и наслаждаться обучающей

Вы можете создать простой цикл анимации, создавая полотно в вашем HTML документе:

<canvas id="cvs"></canvas> 

Это будет ваша «настольная игра»

Тогда вы можете создать файл javascript, в котором определяется игровой движок. Вы можете загрузить внешнее изображение внутри элемента изображения, как это:

var myImage = new Image(); 
myImage.src = "my-sprite-animation.png"; 

и определение спрайт:

var mySprite = sprite({ 
    context: canvas.getContext("2d"), 
    width: 100, 
    height: 100, 
    image: coinImage 
}); 

Затем с помощью метода requestAnimationFrame для создания цикла анимации:

function gameLoop() { 
    window.requestAnimationFrame(gameLoop); 
    mySprite.update(); 
    mySprite.render(); 
} 
+0

Теперь я читаю этот учебник. Конечно, я думаю, что сотрудничество в 2-й игре может быть довольно хорошим опытом обучения для нас обоих. По правде говоря, я студент колледжа, и я никогда не сотрудничал с таким проектом. Мне бы хотелось обсудить больше и узнать ваши идеи о том, как мы будем это делать. – Streamer

+0

Конечно, мой github - Azurasky1. – Streamer

+0

Хорошо, пришлите мне письмо с информацией об этом проекте – andreasonny83

 Смежные вопросы

  • Нет связанных вопросов^_^