IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XNA/Monogame Discussion :

Problème d'installation imcomplète ?


Sujet :

XNA/Monogame

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 126
    Points : 48
    Points
    48
    Par défaut Problème d'installation imcomplète ?
    Bonjour,

    Désolé de vous déranger pour un truc vraiment pas intéressant et merci à tous ceux qui essaieront de me donner un coup de main !

    Je suis débutant avec monogame, je code en C# pour créer une toute ptite appli dans le cadre d'un cours sur internet. La logique de l'appli étant élémentaire je suis à peu près certain d'avoir fait ce qu'il fallait. Par ailleurs quand je lance le programme celui-ci opère comme prévu (en dessinant au hasard une image parmi 3 au milieu de la fenetre et en faisant se déplacer l'image). Toutes les secondes une nouvelle image est générée au hasard.

    Mon problème est simple : l'appli ne devrait jamais s'arrêter d'elle même (jai supprimé les lignes qui stop le programme comme réclamé pour le cours) et pourtant elle s'arrête après environ 1 sec (j'ai juste la fenêtre bleue de base qu'on peut générer avec le template).

    Voici l'erreur que je vois en dessous de "sortie de l'application" : EXT_swap_control_tear unsupported. Fall back to standard VSync.

    J'ai cherché sur le net je n'ai trouvé personne avec un problème similaire au mien.

    Je ne sais pas si cela vous est utile mais je vous laisse le résultat de mono --version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1)
    Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    	TLS:           __thread
    	SIGSEGV:       altstack
    	Notifications: epoll
    	Architecture:  amd64
    	Disabled:      none
    	Misc:          softdebug 
    	LLVM:          supported, not enabled.
    	GC:            sgen
    Merci infiniment aux gens qui feront de leur mieux pour m'aider, je suis pris par le temps car j'ai une deadline serrée et je désespère un peu...

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Je pense que ce message est négligeable.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 126
    Points : 48
    Points
    48
    Par défaut
    Bonjour et merci de ta réponse. Si le message est négligeable c'est qu'il y a un problème dans le programme. Il est très court et très simple, tu veux bien jeter un coup d'oeil et me dire si tu sais pourquoi il ne tourne pas à l'infini ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Audio;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.GamerServices;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework.Input;
    using Microsoft.Xna.Framework.Media;
     
    namespace ProgrammingAssignment2
    {
        /// <summary>
        /// Programming assignment 2 : let's play with MonoGame and sprites 
        /// </summary>
        public class Game1 : Microsoft.Xna.Framework.Game
        {
            const int WINDOW_WIDTH = 800;
            const int WINDOW_HEIGHT = 600;
     
            GraphicsDeviceManager graphics;
            SpriteBatch spriteBatch;
     
            // STUDENTS: declare variables for three sprites
    		Texture2D icon;
    		Texture2D icon2;
    		Texture2D icon3;
     
            // STUDENTS: declare variables for x and y speeds
    		int xSpeed;
    		int ySpeed;
     
     
            // used to handle generating random values
            Random rand = new Random();
            const int CHANGE_DELAY_TIME = 1000;
            int elapsedTime = 0;
     
            // used to keep track of current sprite and location
            Texture2D currentSprite;
            Rectangle drawRectangle = new Rectangle();
     
            public Game1()
            {
                graphics = new GraphicsDeviceManager(this);
                Content.RootDirectory = "Content";
     
                graphics.PreferredBackBufferWidth = WINDOW_WIDTH;
                graphics.PreferredBackBufferHeight = WINDOW_HEIGHT; ;
            }
     
            /// <summary>
            /// Allows the game to perform any initialization it needs to before starting to run.
            /// This is where it can query for any required services and load any non-graphic
            /// related content.  Calling base.Initialize will enumerate through any components
            /// and initialize them as well.
            /// </summary>
            protected override void Initialize()
            {
                // TODO: Add your initialization logic here
     
                base.Initialize();
            }
     
            /// <summary>
            /// LoadContent will be called once per game and is the place to load
            /// all of your content.
            /// </summary>
            protected override void LoadContent()
            {
                // Create a new SpriteBatch, which can be used to draw textures.
                spriteBatch = new SpriteBatch(GraphicsDevice);
     
                // STUDENTS: load the sprite images here
    			icon = Content.Load<Texture2D> ("icon");
    			icon2 = Content.Load<Texture2D> ("icon2");
    			icon3 = Content.Load <Texture2D> ("icon3");
     
                // STUDENTS: set the currentSprite variable to one of your sprite variables
    			currentSprite = icon;
            }
     
            /// <summary>
            /// UnloadContent will be called once per game and is the place to unload
            /// all content.
            /// </summary>
            protected override void UnloadContent()
            {
                // TODO: Unload any non ContentManager content here
            }
     
            /// <summary>
            /// Allows the game to run logic such as updating the world,
            /// checking for collisions, gathering input, and playing audio.
            /// </summary>
            /// <param name="gameTime">Provides a snapshot of timing values.</param>
            protected override void Update(GameTime gameTime)
            {
                // Allows the game to exit
                //if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                //    this.Exit();
     
                elapsedTime += gameTime.ElapsedGameTime.Milliseconds;
                if (elapsedTime > CHANGE_DELAY_TIME)
                {
                    elapsedTime = 0;
     
                    // STUDENTS: uncomment the code below and make it generate a random number 
                    // between 0 and 2 inclusive using the rand field I provided
                    int spriteNumber = rand.Next(0, 3);
     
     
                    // sets current sprite
                    // STUDENTS: uncomment the lines below and change sprite0, sprite1, and sprite2
                    //      to the three different names of your sprite variables
                    if (spriteNumber == 0)
                    {
                       currentSprite = icon;
                    }
                    else if (spriteNumber == 1)
                    {
    					currentSprite = icon2;
                    }
                    else if (spriteNumber == 2)
                    {
                        currentSprite = icon3;
                    }
     
                    // STUDENTS: set the drawRectangle.Width and drawRectangle.Height to match the width and height of currentSprite
    				drawRectangle.Width = currentSprite.Width;
    				drawRectangle.Height = currentSprite.Height;
     
                    // STUDENTS: center the draw rectangle in the window. Note that the X and Y properties of the rectangle
                    // are for the upper left corner of the rectangle, not the center of the rectangle
    				drawRectangle.X = drawRectangle.X + WINDOW_WIDTH / 2 - currentSprite.Width / 2;
    				drawRectangle.Y = drawRectangle.Y + WINDOW_HEIGHT / 2 - currentSprite.Height / 2;
     
                    // STUDENTS: write code below to generate random numbers  between -4 and 4 inclusive for the x and y speed 
    				// using the rand field I provided
                    // CAUTION: Don't redeclare the x speed and y speed variables here!
    				xSpeed = rand.Next (-4, 5);
    				ySpeed = rand.Next (-4, 5);
     
                }
     
                // STUDENTS: move the drawRectangle by the x speed and the y speed
    			drawRectangle.X += xSpeed;
    			drawRectangle.Y += ySpeed;
     
                base.Update(gameTime);
            }
     
            /// <summary>
            /// This is called when the game should draw itself.
            /// </summary>
            /// <param name="gameTime">Provides a snapshot of timing values.</param>
            protected override void Draw(GameTime gameTime)
            {
                GraphicsDevice.Clear(Color.CornflowerBlue);
     
                // STUDENTS: draw current sprite here
    			spriteBatch.Begin ();
     
    			spriteBatch.Draw (currentSprite, drawRectangle, Color.White);
     
    			spriteBatch.End ();
     
                base.Draw(gameTime);
            }
        }
    }
    En te remerciant de ton aide.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    Je pense qu'un soucis se trouve ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    drawRectangle.X = drawRectangle.X + WINDOW_WIDTH / 2 - currentSprite.Width / 2;
    drawRectangle.Y = drawRectangle.Y + WINDOW_HEIGHT / 2 - currentSprite.Height / 2;
    L'image va disparaitre, car vous la décalez de plus en plus vers la droite et le bas.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 126
    Points : 48
    Points
    48
    Par défaut
    Je ne suis pas certain car une nouvelle image est générée toutes les secondes environ, quand on rentre dans la condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (elapsedTime > CHANGE_DELAY_TIME)
    Or quand une nouvelle image est générée elle apparait au milieu de l'écran via le code que tu as copié. Donc en effet si la vitesse est assez importante je m'attends à ce que l'image disparaisse mais à ce qu'elle soit rapidement remplacée par une autre au milieu. Ai-je raté quelque chose ?

    Merci encore

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    Oui, d'après moi, vous ratez quelque chose : la position en X et Y de l'image n'est jamais réinitialisé et votre centrage est faux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    drawRectangle.X = drawRectangle.X + WINDOW_WIDTH / 2 - currentSprite.Width / 2;
    drawRectangle.Y = drawRectangle.Y + WINDOW_HEIGHT / 2 - currentSprite.Height / 2;
    Prenons une fenêtre de 800x600 et une image de 100x50.
    Voici ce qui se pase :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    drawRectangle.X = 0 + 800/2 - 100/2;
    drawRectangle.Y = 0 + 600/2 - 50/2
    Ok, mais le '0' du début, à la prochaine, il ne sera pas 0 (car vous ne le remettez jamais à 0 (et aussi, car il ne devrait pas être présent dans cette formule)). Du coup cela fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    drawRectangle.X = 350 + 800/2 - 100/2;
    drawRectangle.Y = 275 + 600/2 - 50/2
    On voit que le résultat n'est pas bon du tout et on va commencer à sortir de l'écran. Pour la troisième image, c'est complètement hors écran que l'on se trouve.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 126
    Points : 48
    Points
    48
    Par défaut
    En effet j'étais un peu à la ramasse sur ce coup-là Oo. Enfin merci beaucoup en tout cas et bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation de CallerId
    Par Chacks dans le forum Composants VCL
    Réponses: 5
    Dernier message: 21/08/2003, 09h30
  2. problème d'installation du compilateur Borland C++
    Par Hakkou dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 02/06/2003, 12h02
  3. [SAPdb]Problème d'installation
    Par manou dans le forum SAP
    Réponses: 3
    Dernier message: 17/04/2003, 10h20
  4. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 15h18
  5. Réponses: 3
    Dernier message: 27/07/2002, 00h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo