Основы трехмерной графики в среде Blitz3D


Добавление анимации в программу (15 мин)


Изменим введенный кусок программы:

Загружаем анимационную последовательность номер 0 - модель робота, смотрящая по сторонам:

robot = LOADANIMMESH("C:\media\standing.3ds")

Добавляем анимационную последовательность номер 1 - бегущая модель робота:

LOADANIMSEQ robot, "C:\media\running.3ds"

SCALEENTITY robot, 0.4, 0.4, 0.4

rx# = 10

rz# = 0

ang = 90

REPEAT

 

 POSITIONENTITY robot, rx#, -8, rz#

 ROTATEENTITY robot, 0, ang + 90, 0



 POINTENTITY cam, robot

 IF KEYDOWN(200)

Если нажата клавиша "вверх" и робот стоит на месте, то задаем анимационную последовательность 1 (бег), тип анимации - зацикленная (1), скорость - 0.5, количество промежуточных фаз - 10

 IF ANIMSEQ(robot) = 0 THEN ANIMATE robot, 1, 0.5, 1, 10

  rx# = rx# + COS(ang) * 0.5

  rz# = rz# + SIN(ang) * 0.5

 ELSE

Если клавиша "вверх" не нажата и робот бежит,  то задаем анимационную последовательность 0 (стоять на месте), тип анимации - пинг-понг (2), скорость - 1, количество промежуточных фаз - 10

  IF ANIMSEQ(robot)=1 THEN ANIMATE robot, 2, 1, 0, 10

 END IF

 IF KEYDOWN(203) THEN ang = ang + 5

 IF KEYDOWN (205) THEN ang = ang - 5

 IF KEYDOWN(1) THEN EXIT

Обновляем анимированную модель:

 UPDATEWORLD

 RENDERWORLD

 FLIP

FOREVER



Содержание раздела