Вопрос

В моей игре запущен pygame.Timer, вызывающий функцию рисования 32 раза в секунду. Метод рисования получает позиции от всех элементов на моем экране и соответственно их блиит. Однако я хочу, чтобы главный персонаж ходил медленнее, чем другие объекты.

Должен ли я установить таймер специально для него или я должен просто перетаскивать одни и те же кадры несколько раз? Есть ли лучший способ сделать это? Толчок в правильном направлении был бы потрясающим:)

(Если кому-то интересно, вот код, который в настоящее время контролирует, какие кадры отправлять на чертеж: http://github.com/kallepersson/subteriterranean-ng/blob/master/Player.py#L88 )

Это было полезно?

Решение

Ваш кадр цикла ходьбы (как и все движения) должен быть функцией абсолютного времени, а не числа кадров. например:.

def walk_frame(millis, frames_per_second, framecount, start_millis=0):
    millis_per_frame = 1000 / frames_per_second
    elapsed_millis = millis - start_millis
    total_frames = elapsed_millis / millis_per_frame
    return total_frames % framecount
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top