Thursday, August 18, 2011

Revising animation delays

A chaque utilisation d'AnimEDS, la liste des imperfections s'allonge. Ici, c'est la gestion de la ligne du temps -- le composant le plus ancien -- qui devra être revue dès que j'en ai fini avec ce fichu escalier imponçable.

Thought: Since we have an abstract TItem class, we could introduce a new TIControl in addition to TIFrame that would support things such as loops and end-of-animation. It would generate a static thumbnail and could be moved at wish.

Implementation detail : TI* structures do not directly know their position. The TIList consists of (unsigned, TIFrame) pairs indicating each TIFrame's absolute position. Relative delays are inferred in exportAnim() in order to produce the C_CONTROL:I_DELAY entries.

Thought: There's a "delay" plus/minus control right now, that control delay when a new item is inserted and the additional delay at the end of the animation. We'd rather have it affect directly how long a given frame is displayed.

  • [done] add AnimWindow::adjust_positions() to perform one-shot delay update
  • [done] rewrite code for '+', '-' and FRAME_SELECTED accordingly
  • [wish] possibly use the 'prv' and 'nxt' checkbuttons to uniformly rescale the animation.
  • [done] introduce TIControl for loop and end-of-animation
  • [done] make sure moving frames across other frames do not break animation order

No comments: