Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > Moteurs de jeux vidéo > XNA
XNA Forum d'entraide sur le développement avec XNA
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/12/2012, 19h58   #1
Exec57
Invité de passage
 
Homme
Étudiant
Inscription : avril 2012
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2012
Messages : 16
Points : 1
Points : 1
Par défaut Créer une ligne avec collisions

Bonjour

J'ai réussi a faire ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
public Rectangle lineRectangle;
 
private void DrawLine(Vector2 p1, Vector2 p2)
{
    float angle = (float)Math.Atan2(p1.Y - p2.Y, p1.X - p2.X);
    float dist = Vector2.Distance(p1, p2);
 
    lineRectangle = new Rectangle((int)p2.X, (int)p2.Y, (int)dist, 1);
    Main.spriteBatch.Draw(Main.rectTexture, lineRectangle, null, Color.Black, angle, Vector2.Zero, SpriteEffects.None, 0);
}
Je vois bien la ligne mais le problème c'est que le rectangle n'est pas bon. Il est droit et ne gère pas la rotation.

Comment puis-je faire pour palier a ce problème svp. Est-ce que si je créer une ligne avec les matrices sa peux fonctionner ?
Exec57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 20h38   #2
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 763
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 763
Points : 42 824
Points : 42 824
Bonjour,

Avez vous tenté de déboguer pour voir si l'angle n'était pas toujours à zéro ?
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 20h52   #3
Exec57
Invité de passage
 
Homme
Étudiant
Inscription : avril 2012
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2012
Messages : 16
Points : 1
Points : 1
Citation:
Envoyé par LittleWhite Voir le message
Bonjour,

Avez vous tenté de déboguer pour voir si l'angle n'était pas toujours à zéro ?
Bonsoir.

Oui, l'angle n'est pas toujours à 0. Ça varie.
Exec57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 20h58   #4
MoDDiB
Membre chevronné
 
Homme
Développeur de jeux vidéo
Inscription : février 2006
Messages : 471
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2006
Messages : 471
Points : 738
Points : 738
Dans draw le paramètre ou tu as mis Vector2.Zero correspond au centre de rotation pour ce que tu souhaites faire le centre doit correspondre au centre de la texture !

( 0,0 = top supérieur gauche de la texture )
__________________
Suivez le développement de Chibis Bomba
twitter : https://twitter.com/MoD_DiB
DevBlog : http://moddib.blogspot.fr/
MoDDiB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 21h19   #5
Exec57
Invité de passage
 
Homme
Étudiant
Inscription : avril 2012
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2012
Messages : 16
Points : 1
Points : 1
Oui je sais tout sa.

Sa donne ceci :



Mais je peux pas faire sa :

Code :
if(lineRectangle.Intersects(/*un autre rectangle*/))
Car le rectangle est droit et il ne gère pas la rotation.
Je pense pas qu'un rectangle peux avoir une rotation.

Avez vous une solution svp ?
Exec57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web