Question

Je fais un clone de Tetris en C # avec XNA, et je ne suis pas sûr de la façon de mettre en œuvre effectivement les blocs.

Je ne pense pas que faire les formes que des images fonctionne (parce que les pièces sont retirées lorsque les lignes sont formées), donc je dois blocs pour faire les morceaux comme Cette .

Malheureusement, je ne sais pas comment définir réellement les blocs pour faire les pièces, et je ne sais comment les manipuler pour les faire tourner, etc.

Edit:. Je voudrais aussi avoir besoin d'aide pour apprendre à faire aussi la grille Tetris

Était-ce utile?

La solution

Je ne l'ai pas créé tetris avant, mais après réflexion, je crois que j'utiliser une matrice simple pour créer mes morceaux. Par exemple, votre plateau de jeu entier serait une grande matrice. Un sous-ensemble de cette matrice, par exemple un bloc 4x4 de celui-ci, serait une pièce de jeu. Quelles parties de ce bloc 4x4 serait rempli seraient déterminés par quelle pièce particulière que vous voulez créer. Chaque partie de la matrice peut avoir un indicateur booléen qui indiquerait si elle est remplie ou non. Ceci est une vue très simpliste, mais je pense qu'il est une solution viable.

Autres conseils

A l'aide d'une matrice booléenne pour modéliser l'état de l'écran. Chaque pièce est elle-même une autre matrice inférieure booléenne.

Faire pivoter une pièce est aussi simple que de jouer avec les coordonnées un peu (je suis parti ce pour vous).

A propos de la façon de rendre, juste dessiner une tuile de pièce pour chaque valeur réelle dans votre matrice ored avec la pièce en cours tombant décalé et tourné.

Pour les blocs, je vous suggère fortement de travailler en 3D. Vous pouvez toujours faire le jeu ressembler 2D en bloquant la caméra etc, mais vous bénéficierez beaucoup de travailler dans des graphiques vectoriels. Vos blocs seront simples cubes (plat ou avec une certaine profondeur) que vous faites pivoter et se déplacer autour de l'écran.

Pour la grille, regardez @ de @ et de Fortran réponses de aaron, une matrice booléenne fera l'affaire.

Peut-être que ce lien Coding4Fun aidera . Il est en allemand, mais vous devriez être en mesure d'obtenir le code source et jeter un oeil sur la façon dont le problème est résolu ici.

Juste pour être sûr, ici lien de téléchargement direct .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top