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 19/09/2012, 21h07   #1
Shinja
Candidat au titre de Membre du Club
 
Homme
Inscription : septembre 2012
Messages : 41
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2012
Messages : 41
Points : 14
Points : 14
Par défaut Créer missile pour un shoot

Salut, je débute en XNA et en C#. Je suis en train de développer un shoot'em up à ma sauce, enfin bref je sèche pour la création des missiles.

J'ai vu un peu de code dans différents tutoriels en anglais mais c'est des méthodes qui ne corresponds pas avec la manière dont j'ai appris à coder en C#.

Je vous explique rapidement :

J'ai différentes classes, dont le classe Sprite qui s'occupe de créer et afficher les sprites. J'ai une classe Player qui correspond au vaisseau, elle ne comporte que les commandes aux claviers et la position de départ.

J'ai ajouté une classe Missile mais je vois pas du tout comment m'y prendre pour afficher les missiles à partir de la position du vaisseau.

J'ai essayé de coder quelque chose comme sa :

Code :
1
2
3
4
5
6
7
8
9
10
11
      public void Update(GameTime gameTime)
        {
 
 
            if (ServiceHelper.Get<IKeyboardService>().IsKeyDown(Keys.C))
                position = new Vector2(player.position.X, player.position.Y + (float)(0.9f * gameTime.ElapsedGameTime.Milliseconds));
 
 
 
        }
    }
Mais cela ne donne rien si ce n'est une erreur lorsque j'appuie sur la touche C.

Bref je n'arrive pas à créer un sprite à partir du vaisseau et je ne vois pas comment implanter une boucle...

Si vous pouviez m'aider, se serait vraiment sympa
Shinja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 18h21   #2
saturn1
Membre confirmé
 
Inscription : janvier 2008
Messages : 576
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 576
Points : 258
Points : 258
Salut,

pour get le state du clavier, c'est quelque chose comme:

Keyboard.GetState().IsKeyDown....


Ensuite ce que je te conseille de faire c'est de mettre une fonction update a ton missile.
Meme a toutes tes entities. Et dans ton game tu stock une liste de AEntity.
Ensuite tu fais dans ton Scene.Update une boucle pour updater et draw toutes tes entities.

Apres donc dans ta classe missiles tu peux stocker des valeurs telles que :
- IsActive
- Direction
- Speed

Ainsi dans l'update de ta classe missile tu peux faire quelque chose comme:

If IsActive:
Position += Direction * Speed.

Bon courage.
saturn1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2012, 15h59   #3
Shinja
Candidat au titre de Membre du Club
 
Homme
Inscription : septembre 2012
Messages : 41
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2012
Messages : 41
Points : 14
Points : 14
Merci pour ta réponse.

J'ai préféré recommencer le projet depuis le début et j'ai finalement trouvé comme créer ces foutus missiles.

Pour le reste je rame pas mal et je me demande si le C# + XNA n'est pas un peu trop difficile en vue de mes connaissances car parfois je me sens vraiment perdu. Je ne sais pas s'il existe un langage de programmation un plus accessible...
Shinja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2012, 16h31   #4
saturn1
Membre confirmé
 
Inscription : janvier 2008
Messages : 576
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 576
Points : 258
Points : 258
Le C# reste assez haut niveau...
Apres avec xna tu n'as pas tous les outils comme tu pourrais trouver dans un moteur.
saturn1 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 19h37.


 
 
 
 
Partenaires

Hébergement Web