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
| # Exemple d'utilisation :
#
# Il vous faudra créer une form avec les différents contrôles requis. De même, il vous faudra une scène exportée par oFusion. Si vous désirez que je vous fournisse le code souce complet, écrivez moi je ne vais pas le déposer ici.
#
# Public Class frmclOgre
#
# 'Example d'application pour l'utilisation de la classe clOgre
# 'Cette form implémente l'utilisation de la classe et quelques manipulations possibles.
#
# Private myOgre As New clOgre.clOgre 'Instanciation de la classe
#
# Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
#
# 'Pour charger des ressources supplémentaires :
#
# 'Dim tabRessourses(1) As String
# 'tabRessourses(0) = "M:\DevMOGRE\Scenes\Gymnase\GymnaseMaps.zip|Zip" 'Même définition que le ressource manager (Zip, FileSystem...)
# 'tabRessourses(1) = "M:\DevMOGRE\Scenes\Gymnase\GymnaseMeshes.zip|Zip"
# 'tabRessourses(1) = "M:\DevMOGRE\Scenes\Gymnase|FileSystem"
# 'myOgre.RessourcesToLoad = tabRessourses
#
# 'Les affectations suivantes permmettent de gérer l'annulation du keypress dans les différents contrôles de la form
# AddHandler trkCameraHeight.KeyDown, AddressOf AnnuleKeyPress
# AddHandler trkMoveFactor.KeyDown, AddressOf AnnuleKeyPress
# AddHandler trkTimeFactor.KeyDown, AddressOf AnnuleKeyPress
# AddHandler cboCameras.KeyDown, AddressOf AnnuleKeyPress
# AddHandler chkDebugOnOff.KeyDown, AddressOf AnnuleKeyPress
# AddHandler chkSphereOnOff.KeyDown, AddressOf AnnuleKeyPress
#
#
# myOgre.Init = True 'Nécessaire pour signaler le début d'initialisation à la classe
# myOgre.TopWindowHandle = Me.Handle 'Le handle de la TopWindow pour le InputHandler OIS (cf. DirectX)
# myOgre.RenderWindowHandle = panRender.Handle 'Le contrôle dans lequel se fera le rendu
# myOgre.osmSceneName = "M:\DevMOGRE\Scenes\Kites\Kites.osm" 'Le nom de la scène à charger...
# myOgre.MoveFactor = 300 'Le facteur de déplacement
#
# myOgre.ShowInfo = True 'On montre la form d'attente
# 'myOgre.CollisionDetection = False 'Pour ne pa gérer les collisions
# 'myOgre.GravityOn = False 'Pour ne pas gérer la pesanteur
#
# myOgre.CameraSize = New Mogre.Vector3(10, 70, 10) 'La taille du body de la caméra
# myOgre.RotateFactor = 1.5F 'le facteur de rotations
# myOgre.Application = My.Application 'On passe l'objet My.application pour le doEvents
# myOgre.StartupPath = Application.StartupPath 'Le chemin de l'appli pour le chargement des axes
# myOgre.NewtonUpdateFps = 60 'Newton sera updaté toutes les 60 images
# If myOgre.InitOgre() Then 'On peut initialiser Ogre
# If myOgre.InitScene() Then 'Et la scène
# Else
# 'Aï, un truc ne va pas
# MsgBox("Erreur d'initialisation de la scène", MsgBoxStyle.Critical, "Erreur critique")
# Exit Sub
# End If
# Else
# 'Pareil
# MsgBox("Erreur d'initialisation OGRE", MsgBoxStyle.Critical, "Erreur critique")
# Exit Sub
# End If
# 'On applique des ombres
# myOgre.OgreSceneManager.ShadowTechnique = Mogre.ShadowTechnique.SHADOWTYPE_STENCIL_MODULATIVE
# myOgre.OgreSceneManager.ShadowColour = New Mogre.ColourValue(0.8, 0.8, 0.8, 1.0)
#
# 'Parcourt du RootSceneNode pour détecter les caméras de la scène et les ajouter à la comboBox
# Dim Fils As Mogre.SceneNode = Nothing
# For i As UShort = 0 To myOgre.OgreSceneManager.RootSceneNode.NumChildren - 1
# Try
# Fils = myOgre.OgreSceneManager.RootSceneNode.GetChild(i)
#
# If Fils.GetAttachedObject(CType(0, UShort)).MovableType = "Camera" Then
# cboCameras.Items.Add(Fils.Name)
# End If
# Catch ex As Exception
# 'En erreur si le MovableType ne peut être déterminé
# End Try
# Next
# Fils.Dispose()
# myOgre.Init = False 'On a fini l'init
# Me.Show() 'on montre la form
#
# myOgre.OgreGo() 'et on lance la boucle de rendu
#
# End Sub
#
# Private Sub trkMoveFactor_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trkMoveFactor.Scroll
#
# 'Change la vitesse de déplacement
#
# myOgre.MoveFactor = trkMoveFactor.Value
#
# End Sub
#
# Private Sub trkTimeFactor_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trkTimeFactor.Scroll
#
# 'Change le Time Factor
#
# myOgre.NewtonTimeFactor = trkTimeFactor.Value
# End Sub
#
# Private Sub trkCameraHeight_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trkCameraHeight.Scroll
# 'Change la hauteur de la caméra active
#
# myOgre.CameraSize = New Mogre.Vector3(10, trkCameraHeight.Value, 10)
# End Sub
#
# Private Sub cboCameras_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboCameras.SelectedIndexChanged
#
# 'Permet de sélectionner une caméra de la scène (s'il y en a plusieurs)
#
# myOgre.SelectCamera(cboCameras.SelectedItem, True)
# End Sub
#
# Private Sub AnnuleKeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
# 'Cette procédure permet d'annuler la détection d'appui sur une touche dans un contrôle
# 'Elle est utile lors du déplacement de la caméra afin que le contôle ayant le focus ne
# 'soit pas modifié par la touche de déplacement pressée
#
# e.SuppressKeyPress = True
# End Sub
#
#
# Private Sub panRender_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles panRender.MouseUp
#
# 'On termine le déplacement
#
# myOgre.Moving = False
# End Sub
#
# Private Sub panRender_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles panRender.Resize
#
# 'Le pannel change de taille, la fenêtre de rendu Ogre aussi...
#
# myOgre.ReSize()
# End Sub
#
# Private Sub panRender_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles panRender.MouseDown
#
# 'On commence le déplacement, Moving passe à true
#
# myOgre.Moving = True
#
# End Sub
#
# Private Sub chkDebugOnOff_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkDebugOnOff.CheckedChanged
#
# 'Montre ou cache les infos de debug Newton
#
# If chkDebugOnOff.Checked Then
# myOgre.DebugOnOff = True
# Else
# myOgre.DebugOnOff = False
# End If
# End Sub
#
# Private Sub chkSphereOnOff_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkSphereOnOff.CheckedChanged
# 'Montre ou cache la sphère
#
# If chkSphereOnOff.Checked Then
# myOgre.OgreSceneManager.GetSceneNode("SphereCV").GetAttachedObject("SphereCV").Visible = False
# Else
# myOgre.OgreSceneManager.GetSceneNode("SphereCV").GetAttachedObject("SphereCV").Visible = True
# End If
#
# End Sub
# End Class |
Partager