Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] SFML VB.NET Event Window.closed  (Lu 2806 fois)

0 Membres et 1 Invité sur ce sujet

r3dh4

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
    • E-mail
[Résolu] SFML VB.NET Event Window.closed
« le: Juillet 09, 2013, 01:05:47 am »
Bonjour,

Je développe un jeu en VB.net avec le binding .NET de SFML (une hérésie pour les pro C++, je vais me faire recevoir !). J'ai pas mal avancé dans mon projet mais j'arrive à un point bloquant concernant la gestion des événements de l'objet Window.

J'ai l'habitude de m'appuyer sur les exemples en C# ou C++ pour comprendre les fonctionnalités de la librairie et les appliquer à VB.net, mais sur ce point précis je suis bloqué.

Pas compris par exemple comment instancier et gérer ne serait-ce que l'événement window.closed. Quelqu'un aurait un exemple basique ?

Merci de votre aide !
« Modifié: Juillet 09, 2013, 09:56:08 pm par r3dh4 »

RadicalEd

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : SFML VB.NET Event Window.closed
« Réponse #1 le: Juillet 09, 2013, 09:55:13 am »
Salut !

Je ne suis pas un très grand spécialiste du language VB, je lui préfère de loin C#, cependant pour la gestion des events de la fenêtre window je pense que le code C# te suffira pour trouver toi même la solution en VB :

Il faut que tu assigne un handler à l'event closed :

window.Closed += new EventHandler(OnClosed);
 

Ensuite dans une méthode tu va traité l'event :

private void OnClosed(object sender, EventArgs e)
{
        RenderWindow window = (RenderWindow)sender;
        window.Close();
}
 

A++
RadicalEd

r3dh4

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
    • E-mail
Re : SFML VB.NET Event Window.closed
« Réponse #2 le: Juillet 09, 2013, 05:57:55 pm »
Merci RadicalEd, ça donnerait quelque chose du genre :
 
 AddHandler sfml.window.Closed, AddressOf Me.OnClosed
 
 
   Private Sub OnClosed(sender As Object, e As EventArgs)
        Dim window As RenderWindow = DirectCast(sender, RenderWindow)
        window.Close()
    End Sub

mais l'événement sfml.window.Closed n'est pas répertorié.

Je suppose que je vais devoir me contenter de créer ma fenêtre SFML sous la forme New RenderWindow(Form1.Handle) et gérer les événements de la form1 plutôt que ceux de la sfml.window.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : SFML VB.NET Event Window.closed
« Réponse #3 le: Juillet 09, 2013, 06:50:25 pm »
Ce ne serait pas plutôt SFML.Window.Window.Closed (i.e. le type de la fenêtre + .Closed) ?
Laurent Gomila - SFML developer

r3dh4

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
    • E-mail
Re : SFML VB.NET Event Window.closed
« Réponse #4 le: Juillet 09, 2013, 09:54:04 pm »
Yes, c'était bien ça, intervention décisive de Maître Laurent qui m'a mis sur la voie.
ça fonctionne à présent, voir ci-dessous pour exemple.

Merci à vous deux.

sub gameThread()
    dim wndGame as sfml.graphics.renderWindow
    AddHandler wndGame.Closed, AddressOf OnClosed
end sub
 


   
Sub OnClosed(sender As Object, e As EventArgs)
    Dim window As RenderWindow = DirectCast(sender, RenderWindow)
    window.Close()
End Sub