Bonjour à tous,
J'essaie de créer un petit jeu en Silverlight. Je suis tombé sur un comportement assez étrange (d'ailleurs, j'ai eu le même problème il y a quelques temps sous XNA également).
Le principe pour faire simple :
- J'ai un storyboard avec une duration à 0 pour faire bouger mon usercontrol (un simple rectangle).
- J'utilise le translateTransform pour le faire bouger, à chaque storyboard.completed, j'update sa position.
- je regarde sa position pour savoir s'il arrive à la limite du Canvas parent, si oui : je le fais rebondir.
Le problème : parfois, l'usercontrol sort du canvas ! Au lieu de rebondir, il "vibre" et s'éloigne petit à petit du canvas ?!?
Plus l'objet est rapide, plus c'est fréquent :/
J'ai fait un pong en XNA, j'ai eu le même problème, la balle finissait par passer au travers des raquettes.
Le code pour le rebond :
Avez-vous déjà été confrontés à ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if (((MatrixTransform)elem.RenderTransform).Matrix.OffsetX > bdf.ActualWidth - elem.ActualWidth) elemVelocityX *= -1; else if (((MatrixTransform)elem.RenderTransform).Matrix.OffsetX < 0) elemVelocityX *= -1; else if (((MatrixTransform)elem.RenderTransform).Matrix.OffsetY > bdf.ActualHeight - elem.ActualHeight) elemVelocityY *= -1; else if (((MatrixTransform)elem.RenderTransform).Matrix.OffsetY < 0) elemVelocityY *= -1;
Merci d'avance.
Partager