Étape 12 : Détection de tuile
Il est temps de faire de la magie. Détection de la tuile.
Détection de tuile nous permet de « savoir » quelles polices et les carreaux est placés à des positions spécifiques. N’oubliez pas de Mario Bros sur Nintendo ? Comment le jeu sait quand Mario est en cours d’exécution sur la terre ferme, ou tomber dans une fosse ?
Encore une fois, nous avons une sous-routine simple (en fait une fonction) qui va nous aider à lire les tuiles et savoir ce qui a été placé autour de nous. Voici la routine :
Function Tiledetect(xpos, ypos) I2C WRITE PC,0,4,1,255,xpos,ypos Pause 1 I2C WRITE PC,0,1,&h0 I2C READ PC,0,1,TileDetect End Function
Tiledetect peut être utilisé pour retourner la valeur de n’importe quelle tuile à n’importe quelle position X et Y.
Comment les sprites utilisent Tiledetect :
Maintenant, prenez une profonde purification souffle parce que je vais vous montrer comment faire les sprite 16 x 16 à interagir avec le monde de 8 x 8 carreaux.
Jetez un oeil à l’image que j’ai joint à cette page. Remarquez comment mon sprite se tient réellement carreaux principalement sur deux différentes briques de 8 x 8. Position actuelle de mon sprite sur l’écran est d’environ X-30 et Y-240. Nous avons besoin de convertir ces positions pixel en lieux de sprite de 8 x 8. Voici comment nous le faisons en BASIC.
Int(player_x/8) et INT(player_y/8+1)
30 / 8 = 3,76 (INT réduit le nombre de 3)
240 / 8 = 30
Divisant la position des pixels de X de la sprite et Y coordonnées donne nous « très proches » 8 x 8 carreaux de positions pour notre sprite.
Plusieurs fois la division d’un nombre créera un nombre fractionnaire, donc INT tronque un nombre au nombre entier supérieur inférieure ou égale à l’argument.
Let's quiz un peu et voir si vous comprenez encore...
Que se passe-t-il si nous avons besoin de savoir quelles sont les tuiles de dessous le sprite ? Comme le sol de briques en Loadrunner ?
Int(player_x/8) « Sprite, position de départ.
Int(player_y/8+2) "Position de départ de sprite + 2 (2 * 8) ci-dessous.
Il est parfois pratique d’utiliser le texteaffiché & DisplayChar de la dernière page pour placer ces informations dans la partie supérieure de l’écran pendant que vous créez votre jeu. Ça va vous aider à avoir une idée de ce qui se passe pendant que votre sprite se déplace autour de l’écran.