2009-10-28 2 views
0

J'ai été affecté à la réalisation d'un économiseur d'écran animé en tant que projet de programmation pour mon cours de programmation avancée. L'objectif est d'avoir plusieurs composants mobiles dans un cadre plein écran non décoré, mais je vais pas à pas et de le faire un composant à la fois.Animation de base en Java pour une application d'économiseur d'écran

Voici mon code source jusqu'à présent: http://pastebin.com/dc722188

Ne hésitez pas à commenter toute partie concernant les opérations de fichiers, ils ne sont pas pertinents pour l'instant. Maintenant, le problème que j'ai ici est que apparemment le programme reconnaît mon LogoComponet comme englobant toute la trame (même si ce n'est pas censé), et donc les conditions de collision sont déclenchées immédiatement provoquant que mon objet logo commence soudainement à saisies. Je n'ai aucune idée de ce qui en est la cause, même un réglage manuel des limites du composant ne fonctionnera pas, et le fait que cela soit dû demain n'aide pas du tout mon cas.

Alors, aidez, s'il vous plaît? .___.

Répondre

0

Tout d'abord, le code que vous avez collé a le nom incorrect du constructeur dans le composant TwoSquareComponent. Le problème est dans votre méthode d'animation. Lorsque vous effectuez vos vérifications pour changer de direction, vous changez de direction, mais l'appel suivant revient à l'endroit où vous étiez. Vous avez besoin d'un moyen de suivre la direction actuelle. Par exemple, si vous croisez le côté et que votre dx est 10 et que x est 11, vous passez à 1, puis l'appel d'animation suivant vous ramène à 11, puis à 1, etc. Il ne fait que répéter d'où l'effet de crise que vous décrivez. Je vais te laisser ça comme c'est du devoirs :). mais c'est votre problème Vous voulez probablement stocker la direction actuelle, et ne pas changer jusqu'à ce que vous sortiez à nouveau des limites.

Bonne chance

Questions connexes