Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - cortex024

Pages: [1]
1
DotNet / Re : SFML et timer: pas d'effet
« le: Juin 25, 2013, 06:39:19 pm »
ça fonctionne avec mon image!
et après avoir retransformé ça fonctionne aussi avec mon sprite.

 8)

2
DotNet / Re : Re : SFML et timer: pas d'effet
« le: Juin 25, 2013, 05:50:59 pm »
Citer
Citer
Citer
Et au fait, il te faudrait un appel à app.DispatchEvents() non ?

c'est quoi ça?
C'est la fonction à appeler pour gérer les évènements de la fenêtre SFML. Même si tu n'es pas intéressé par ces évènements, il faut appeler la fonction pour que la fenêtre SFML puisse gérer ses évènements internes.

j'ai essayé, ça ne change rien.

Citer
serait-il possible que ça vienne d'un appel inter-thread catché par SMFL?
Non. Par contre si ta fonction RunEvent est exécutée dans un thread, là ça va coincer.

beh par défaut dans le runevent c'est un autre thread visiblement.
Car si j'essaie avec un controle classique hors SFML, d'agir dessus dans le runevent j'ai une erreur inter-thread.
Ça serait ça alors?


je vais essayer de régler le problème inter-thread sur un contrôle "normal", d'après ce que j'ai vu il faut passer par des deleguate.
Une fois que ça fonctionne j'essaierai de re-remplacer ça par mon sprite et autres éléments SFML.

merci pour ta réponse, si tu as d'autres idées de causes ;)

3
DotNet / Re : SFML et timer: pas d'effet
« le: Juin 25, 2013, 03:53:28 pm »
aie, je ne me suis pas relu effectivement cette phrase porte à confusion.  :-[

avec ou sans la messagebox, mon sprite ne s'affiche pas, mon panel ne prend même pas la couleur de fond noire, comme si vraiment rien ne se passait.

alors qu'exactement le même code, mais soit placé une fois (sans boucle et sans mouvement) lors du chargement de la page, ou lors d'un click de bouton de ma WinForm par exemple affiche bien mon sprite dans mon panel qui prend la couleur de fond noire.
ce même code placé dans les mêmes endroits dans une boucle while (window.isopen()) avec une évolution de la position fonctionne aussi.

par contre, rien du tout ne se passe si je place le code dans l'évènement de mon timer.
pourtant, je passe bien dedans (des points d'arrêt et/ou messagebox par exemple le confirme).

Citer
serait-il possible que ça vienne d'un appel inter-thread catché par SMFL?



edit: Et au fait, il te faudrait un appel à app.DispatchEvents() non ?

c'est quoi ça?

ps: SFML est tout nouveau pour moi.

4
DotNet / Re : SFML et timer: pas d'effet
« le: Juin 25, 2013, 03:38:21 pm »
euhh... oui,

mais le MessageBox est juste là pour vérifier qu'on passait bien dans ma boucle, il est commenté sinon.  :-X
je vérifie aussi en mettant un point d'arrêt, on passe bien dans la boucle mais rien ne se passe à l'écran.

serait-il possible que ça vienne d'un appel inter-thread catché par SMFL?

5
DotNet / SFML et timer: pas d'effet
« le: Juin 25, 2013, 02:03:37 pm »
Bonjour,

lorsque je bouge mon sprite comme ceci:

            app = new RenderWindow(panel_SFML.Handle);//myvideomode, "test");
            app.SetFramerateLimit(60);
            mytexture = new SFML.Graphics.Texture(myimage);
            mysprite = new Sprite(mytexture);

            while (app.IsOpen())
            {
                app.Clear();
                mysprite.Position = new SFML.Window.Vector2f(mysprite.Position.X + 1, 0);
                app.Draw(mysprite);

                app.Display();
            }

ça fonctionne bien, je vois mon sprite qui se déplace vers la droite.
Mais je ne veux pas rester coincer dans un app.isopen comme tous les exemples qu'on trouve.
Car je suis dans une windows form qui peut réaliser pleins d'autres actions.

j'essaie alors de me servir d'un timer; à chaque fois que le temps est écoulé, je passe dans la fonction qui fait ceci (exactement la même chose):

public void RunEvent(object source, ElapsedEventArgs e)
        {
            //MessageBox.Show("test" + mysprite.Position.X.ToString());
            app.Clear();
            mysprite.Position = new SFML.Window.Vector2f(mysprite.Position.X + 1, 0);
            app.Draw(mysprite);

            app.Display();

        }

rien ne se passe, le sprite ne se dessine même pas à l'écran, le panel reste gris.
en mode debug, je vois pourtant bien mon sprite créé, sa position qui évolue.

si je décommente le messagebox, je l'ai bien à l'écran.

je ne comprends pas ce qui coince et pourquoi tout ce qui est fait en dehors du windows.isopen n'apparait pas à l'écran!

Pages: [1]
anything