|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre confirmé
![]() ![]() Titouan Créac'hLycéen Inscription : mai 2009 Messages : 193 ![]() |
Voilà j'ai un bug avec tetris que je n'arrive pas a résoudre. Je vais essayer d'expliquer sans en donner trop :=)
Code :
Quand j'appuie sur la touche du haut elle pivote et sort de l'écran et fais tout planter. J'empeche les formes de bouger quand elles sont collées au bord, ce qui marche avec tout sauf la barre (trop grande
|
||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Développeur informatique Inscription : janvier 2010 Messages : 142 ![]() |
Bonjour,
ah le tétris... tu en es deja là... moi je n'ai pas encore écris une seule ligne... et si tu rajoutais un test quand c'est la grande barre ? si collée ou presque collée, tu empêches le déplacement... à bientôt peut-être |
|
00
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Titouan Créac'hLycéen Inscription : mai 2009 Messages : 193 ![]() |
Oui j'y ai pensé mais le probleme, c'est que je vais rajouter au moins 10 lignes et que ça va faire un code sale. J'aurais préféré une méthode qui marche pour toute les formes. Mais si je trouve pas je vais faire comme ça...
merci |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Étudiant Inscription : juin 2009 Messages : 902 ![]() |
Salut
Le plus simple, tu tourne ta barre, et tu regarde si il y a chevauchement/dépassement. Si c'est le cas, tu annules le mouvement. C'est valable pour n'importe quelle pièce. Bonne chance
__________________
Articles : Création d'un système de chat en PascalProgrammes : Défi Pascal 2011 - Mon Tetris Défi Pascal 2010 - Mon système de chat Défi Delphi 2009 - Mon Sudoku SolverRetrouvez mes différents projets sur ma page personnelle. |
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 3 406 ![]() |
alors le plus simple pour éviter de "sortir" de l'écran dans ce genre de situation est d'ajouter une zone vide suffisamment grande autour de celui-ci.
exemple, je déplace un pion sur un damier de 9x9 type Damier=array[1..9,1..9] of Byte;. si je veux tester que le point peut aller de (x, y) à (x + 1, y) il faut tester if (x + 1 < 9) and Damier[x + 1, y] = 0 then.... Pour éviter le teste sur la valeur de x, il suffit d'agrandir le damier type Damier=array[0..10,0..10] of Byte; et de remplir les cases du bord par une valeur bloquante. Code :
__________________
Developpez.com: Mes articles Entreprise: Execute SARL Produits : UPnP, RemoteOffice sous Delphi Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
||
|
20
|
|
|
#6 |
|
Membre confirmé
![]() ![]() Titouan Créac'hLycéen Inscription : mai 2009 Messages : 193 ![]() |
J'ai utilisé ça pour le bas du tableau, mais je vais aussi utilisé ça sur les bords. Merci !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com