Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: [Résolu] SFML VB.NET Event Window.closed  (Read 3266 times)

0 Members and 1 Guest are viewing this topic.

r3dh4

  • Newbie
  • *
  • Posts: 10
    • View Profile
    • Email
[Résolu] SFML VB.NET Event Window.closed
« on: July 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 !
« Last Edit: July 09, 2013, 09:56:08 pm by r3dh4 »

RadicalEd

  • Newbie
  • *
  • Posts: 16
    • View Profile
Re : SFML VB.NET Event Window.closed
« Reply #1 on: July 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
  • *
  • Posts: 10
    • View Profile
    • Email
Re : SFML VB.NET Event Window.closed
« Reply #2 on: July 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
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re : SFML VB.NET Event Window.closed
« Reply #3 on: July 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
  • *
  • Posts: 10
    • View Profile
    • Email
Re : SFML VB.NET Event Window.closed
« Reply #4 on: July 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
 

 

anything