Petit tour d'horizon sur la façon de le réaliser, à l'ancienne sur une feuille quadrillée avant d'aller dormir... Chose amusante, je me rends compte qu'en réalité les 2 formes d'encrier ("volant" ou "poussable") présentés ici pourraient très bien être 2 GOBs aux machines d'état totalement distinctes.
Parmi les "petits défis techniques" posés par Inkjet, j'ai recensé le "demi-tour de plate-forme mobile", nécessitant un contrôleur adapté.
Rien de particulier pour que Bilou puisse être transporté par un inkjet, en revanche: ce sera entièrement dans le code de Bilou que ça se passera.
Envoyer Bilou en l'air s'il est présent et lancer des gouttes d'encre dans le cas contraire ? C'est possible. Il suffit d'une zone de collision associée à l'animation "projeter". Si elle rencontre un personnage compatible (transition "found"), elle interrompt l'animation (et le projette). Les gouttes d'encre ne seront générée que si l'animation prend fin naturellement (transition "done" dans ma machine d'état).
Pour l'encrier au sol, je devrai procéder en 2 temps. Tout d'abord, m'assurer qu'il est effectivement "solide" pour les marcheurs, qui fasse faire demi-tour aux dumbladors et force Bilou à passer en mode "pousser".
Ensuite seulement, une 2eme collision dans le sens inverse force l'encrier à se déplacer.
Bon, là-dessus, je vais m'installer pépère dans un fauteuil et faire quelques petites animations supplémentaires dans SEDS...
Checklist:
- [check] special block digits are read horizontally first, then vertically
- [oops!] 1xxx is for
"interacts with monsters""interacts also with monsters", 2xxx is for "doesn't trash graphics while removing properties""doesn't disappear when touched", but we could use "on hit [0] ()" in block description to prevent it. - [oops!] "
block 1002 {"effectively encode properties of block using digits 1,0,0,2 on the level editor and not some other funny 0x1002 value that wouldn't make sense. (block 82 is required.) - [ok] states doesn't prevent collisions to be detected.
- [fixed] decrease controller
cancannot be used as expected. - [bugfix] GameScript::content() should allow \t tabulations in cmd files.
Hmm ... par contre, avec son unique animation (12 images 32x32), Inkjet consomme déjà 20% d'un tileset. Il faudra peut-être que j'explore cette histoire de "multiplieurs" pour exploiter l'entièreté des 128Ko de VRAM.
ReplyDeleteBien sûr, les pros, eux, feraient du streaming depuis la RAM vers la VRAM, mais ça, en utilisant plutôt un slot par GOB qu'un slot par étape d'animation ... mais je préfère garder mon approche pour l'instant.