| DocumentationRootretour à l'arborescence des catégories » Documentation techniqueEnsemble des informations pouvant être utiles au développement » Lynx docRestranscription de la documentation d'origine » Annexe 4 : Moteur de sprites » Positionnement de l'affichage de Handy et des sprites » Positionnement des sprites dans le monde et dans la fenêtre «««« ( /^\ ) »»»» INFOS SUR LA CATEGORIE Créée le : 2009-10-07 11:30:00 Par : vince INFOS SUR LA PAGE Titre : Positionnement des sprites dans le monde et dans la fenêtre Sous Titre : Langue : FRA Source : http://www.monlynx.de/lynx/sprite.html#_16 Auteur : vince Posté par : vince Positionnement des sprites dans le monde et dans la fenêtreLes sprites sont définis par rapport au coin suppérieur gauche du monde d'affichage. Quand un sprite a des coordonnées (0,0) ce sprite est tout en haut à gauche du monde d'affichage. Des coordonnées de (511,511) situent un sprite au coin inférieur droit du monde d'affichage. Afin de pouvoir positionner les sprites de 0 à 511, il faut 9 bits pour les positions horizontales et verticales. En fait, il y a 16 bits de positionnement pour chaque axe, les 7 bits de poids fort étant ignorés pour le moment par le système mais on peut les initialiser convenablement comme décrit dans plus bas dans le Positionnement 16 bits. Voyons maintenant un exemple de positionnement. Imaginez que nous le sprite montré ci dessous dans l'illustration et qu'il fasse 32 pixels en largeur et en hauteur et que nous voulions le définir plusieurs fois le long d'une diagonale. On définit les positions du sprite par rapport au coin supérieur gauche du monde d'affichage en mettant le premier à (0,0), le second à (32,32) et ainsi de suite. Notez que pour le moment on ne parle que des positions des sprites, pas de leur affichage. La façon dont ils sont affichés dépends de la position de la fenêtre d'affichage. Fenêtre d'affichage positionnée dans le monde d'affichage Pour afficher certains des sprites que nous avons déini, nous positionnons la fenêtre d'affichage quelque part dans le monde d'affichage. Le positionnement de la fenêtre d'affichage dans le monde d'affichage est indépendant du positionnement des vos sprites dans le monde d'affichage. Dans l'illustration ci dessus, la fenêtre se situe à un décalage horizontal de 96 et un décalage vertical de 160 par rapport au coin supérieur gauche du monde d'affichage. La fenêtre couvre donc les coordonnées du monde d'affichage de (96,160) à (255,261). Quatre de nos sprites apparaissent dans la fenêtre d'affichage aux coordonnées (128,128), (160,160), (192,192) et (224,224). Quand on va demander la génération de nos sprites, ces 4 sprites seront dessinés dans la fenêtre d'affichage en RAM alors que les autres seront coupés par le matériel et ne seront pas dessinés. Notez que certains sprites sont partiellement dans la fenêtre et partiellement hors de celle ci. L'imagerie hors fenêtre est coupée automatiquement par le matériel et n'est pas rendu. "Whaou !" crient les développeurs qui savent à coté de quoi ils viennent de passer. Ca veut dire que vous pouvez faire glisser les sprites en dehors de la fenêtre juste en les positionnant et en laissant le matériel faire le boulot. Le matériel effectue une découpe efficace qui est décrite plus bas dans la section Techniques de découpage matériel de l'image des sprite. Il y a deux techniques que vous pouvez utiliser pour positionner un sprite chaque technique peut être utilisée simultanément avec l'autre sur le même affichage sans restrictions. Ces techniques sont présentées dans les deux sections suivants et incluent : ¤ Le positionnement simple sur 8 bits des sprites qui permet un nombre raisonable de découpage autour des bords de la fenêtre d'affichage. ¤ Le positionnement complet sur 16 bits (9 bits significatifs) des sprites qui sous entends un coût d'opérations deux octets et de déplacements qui sont plus important qu'en mode 8 bits mais qui permet de faire sortir de la fenêtre des objets plus grands. De la sorte, si vous définissez un monde d'affichage plein de sprites, vous pouvez tous les montrer simplement en décalant la fenêtre d'affichage dans le monde d'affichage. Aucune des définitions de sprites aura à être modifiée. Vous n'avez qu'à changer HOFF et VOFF pour déplacer la fenêtre. (Source : http://www.monlynx.de/lynx/sprite.html#_16) «««« ( /^\ ) »»»» | ||||||||||||||||||||||||
-= DevLynx, un site par vince pour vous =- |