Pages : [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21]


Nous rencontrons ici un premier problème. Alors que l'affichage d'une ball ne pose jusqu'ici aucun problème, l'affichage de deux balls se chevauchant va créer un problème. La zone "noire" de la dernière ball affichée va s'inscrire sur les précédentes alors que notre fond noir est censé etre transparent.

Ce premier problème vient du fait que nous affichons les "zeros" alors qu'ils ne devraient pas l'etre. Un petit travail de préparation sera donc nécessaire pour afficher les lignes qui contiennent une zone transparente.

La technique consistera alors a utiliser un masque de notre ball de facon à mettre à zéro le fond sur lequel s'afficheront les pixels de notre ball, et de laisser tel quel les autres points (les zones noires de notre ball précisement). Le masque subira un opérateur logique AND avec le fond, et un opérator logique OR permettra d'afficher la ball. Un masque sera tout simplement l'inverse de notre ball et ne contient qu'une "couleur" unique.

En appliquant un AND sur chacune des lignes du masque sur le fond d'écran, nous ne garderons que ce qui est dans la zone colorée et nous effacerons en quelques sortes la zone qui contiendra la ball elle meme. Un OR de la ball sur le fond permettra alors d'insérer la ball dans la zone netoyée.

Ci dessous est un rappel des tables Booléennes AND et OR :

AND=
000
010
100
111
OR=
000
011
101
111

© PULS 2004-2019