Suite à mon précédent article sur l’utilisation de MonoGame avec C++/CLI je vous propose le même genre mais cette fois le langage Visual Basic.Net. Il faut savoir que ce langage a de l’histoire chez Microsoft et c’est pour ça qu’on le trouve toujours parmi les langages disponibles dans Visual Studio. Historiquement on notera 2 grandes versions de Visual Basic, la version classique jusqu’à la version 6 et la version .Net qui fonctionne sur machine virtuelle et qui permet de travailler avec les composants de cette dernière. Pourquoi utiliser Visual Basic ? Et bien il y a des gens qui aiment encore ce langage et puis il y a les nostalgiques comme moi qui aiment bien programmer avec des « vieux » trucs remis au gout du jour, alors même si Locomotive Basic et Turbo Basic sont bien loin, aujourd’hui nous jouerons avec MonoGame en Visual Basic.Net.
Mise en place du projet
Contrairement à C++/CLI la mise en place du projet est relativement plus simple, vous devez dans un premier temps créer un projet Visual Basic vide et ajouter les bonnes références. Ici comme dans l’article précedent nous utiliserons MonoGame pour OpenGL qui sera dans un dossier ThirdParty dans le dossier du projet. Pour ajouter une référence il faut faire un clic droit sur le projet puis choisir ajouter une référence, de là on choisis dans parcourir les références à ajouter.
Le code
Oui nous y sommes déjà 🙂 Je vous propose de créer 2 fichiers, Program.vb contiendra le code de lancement avec la procédure main et un autre nommé très fièrement Game1.vb contiendra le code template que nous connaissons tous très bien désormais.
Program.vb
Module MyMonoGameInVBNet Sub Main(ByVal args() As String) Using game As Game1 = New Game1() game.Run() End Using End Sub End Module
Game1.vb
Imports Microsoft.Xna.Framework Imports Microsoft.Xna.Framework.Graphics Imports Microsoft.Xna.Framework.Input Public Class Game1 Inherits Game Private graphics As GraphicsDeviceManager Private spriteBatch As SpriteBatch Public Sub New() graphics = New GraphicsDeviceManager(Me) graphics.PreferredBackBufferWidth = 800 graphics.PreferredBackBufferHeight = 600 Window.Title = "MonoGame with Visual Basic .Net" Content.RootDirectory = "Content" End Sub Protected Overrides Sub Initialize() MyBase.Initialize() End Sub Protected Overrides Sub LoadContent() MyBase.LoadContent() End Sub Protected Overrides Sub Update(gameTime As GameTime) MyBase.Update(gameTime) If Keyboard.GetState().IsKeyDown(Keys.Escape) Or GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.Back) Then Me.Exit() End If End Sub Protected Overrides Sub Draw(gameTime As GameTime) GraphicsDevice.Clear(Color.CornflowerBlue) MyBase.Draw(gameTime) End Sub End Class
Je n’irais pas jusqu’à dire « Que c’est beau » mais ça me rappel de très bons souvenirs. On notera quelques points particuliers du Visual Basic.Net à savoir que l’appel à une méthode parente se fait avec l’objet MyBase.MethodeParent() et le mot clé this en C# est remplacé par Me, on ne peut pas non plus appeler une méthode Exit directement et c’est pour ça que dans la méthode Update j’ai ajouté un appel au pointeur de la classe pour référencer la méthode Exit de la classe Game de MonoGame. Désormais vous pouvez vous aussi vous lancer à l’aventure en créant vos jeux en Visual Basic.Net avec MonoGame ! Vous pouvez retrouver les sources dans un projet fonctionnel sur ma page github dédiée à ce blog.