в этом JSFiddle, так как вы можете видеть, что красный квадрат перемещается от одной плитки к следующей очень быстро, как я могу установить ее, так что для перехода от одной плитки к следующей требуется около 0,2 секунды?Как установить что-то в определенное время?
-2
A
ответ
2
Чтобы ответить на вопрос в вашем заголовке, способ выполнить некоторый JavaScript по истечении заданного периода времени - setTimeout()
(или setInterval()
).
Чтобы оживить движение, на компьютере это то же самое, что и для рисованной анимации Уолта Диснея. Нарисуйте кучу изображений с небольшим количеством изменений в каждом из них и покажите их по одному, ожидая небольшого количества времени перед отображением каждого кадра.
Итак, для этого вам необходимо рассчитать каждый кадр. Найдите разницу между позицией назначения и текущей позицией и разделите эти различия на этапы. Затем нарисуйте изображение, перемещая позицию на один шаг, пока текущая позиция не будет соответствовать месту назначения.
var lastPos;
function draw() {
var endPos = {
x: (playerX - vX) * 32,
y: (playerY - vY) * 32
};
var pos = $.extend({}, endPos, lastPos);
var step = {
x: (endPos.x - pos.x)/10,
y: (endPos.y - pos.y)/10
};
drawStep();
function drawStep() {
context.clearRect(0, 0, canvas.width, canvas.height);
for (y = 0; y <= vHeight; y++) {
for (x = 0; x <= vWidth; x++) {
theX = x * 32;
theY = y * 32;
context.drawImage(tiles[board[y + vY][x + vX]], theX, theY, 32, 32);
}
}
context.fillStyle = 'red';
pos.x += step.x;
pos.y += step.y;
context.fillRect(pos.x, pos.y, 32, 32);
if (Math.round(pos.x - endPos.x) + Math.round(pos.y - endPos.y) == 0) {
lastPos = pos;
return;
}
setTimeout(drawStep, 20);
}
}
Смежные вопросы
- 1. Как установить вид Видимый в определенное время?
- 2. Как установить DateTimePicker в определенное время?
- 3. Как установить уведомление в определенное время
- 4. Установить уведомление на определенное время
- 5. Установить уведомление в определенное время Swift
- 6. Установить воздушный самолет в определенное время
- 7. Как установить уведомление в приложении Android в определенное время?
- 8. Как установить таймер для выполнения в определенное время в C#
- 9. Как установить DateTimePicker в определенное время и сохранить настроенную дату?
- 10. Как установить повторяющееся звуковое оповещение на определенное время в Android?
- 11. Как установить DateTimePicker в определенное время и сохранить текущую дату?
- 12. php/mysql как установить функции в определенное время
- 13. Как установить эффект Onclick только для работы в определенное время?
- 14. php - преобразовать время() в определенное время datetime
- 15. Выполнение функции в определенное время
- 16. Выполнить селектор в определенное время
- 17. Вставка в определенное время?
- 18. Как установить время?
- 19. performSelectorinBackground в определенное время
- 20. DataBind() в определенное время
- 21. уведомления в определенное время
- 22. Опубликовать в определенное время
- 23. Как запустить команду ubuntu в определенное время
- 24. Как я могу установить UILabel для изменения через определенное время?
- 25. Как установить аа определенное время с помощью DateTime
- 26. Как установить функцию EXPECT_CALL для вызова функции через определенное время?
- 27. Как установить определенное время окончания GMT для плагина classyCountdown.js?
- 28. набор DatePicker в определенное время
- 29. Установить поток, который будет запущен в определенное время
- 30. Resque планировщик установить динамику первого запуска в определенное время
Если вам нужно больше объяснений, чтобы ответить на этот вопрос ... просто спросите. – Anzwur
Я не вижу красных, где именно они? – andrewk
Это слишком много кода в этом jsFiddle, никто не собирается читать это. Пожалуйста, постройте более простой пример кода. – millimoose