rolala le travail
dans un moteur 3d (ou 2d) tout les objets/sprites etc.. à dessiner sur l'écran doivent être appelé dans la boucle de rendu.
Car après chaque frame (image) la scene est effacée et redessinée.
Donc ici, tu demande à dessiner ton "autreman2" dans l'évenement click de ton bouton, c'est a dire qu'au click du bouton ton perso ce dessine MAIS est tout de suite effacé mais n'est pas redessiné car ton bouton a fini son job.
Et de plus il ne faut pas confondre les fonction d'initialisation, et de rendu, les lignes:
1 2 3 4 5
| GB.SetSearchDirectory App.Path
Dim autreman2 As TVActor
Set autreman2 = New TVActor
'charge les autres persos
autreman2.Load "..\ressources3D\Media\gs.mdl" |
ne doivent être appelées qu'une fois. Enssuite les lignes:
1 2 3 4 5
| autreman2.SetSpeed 1
autreman2.SetAnimation 0
autreman2.SetRotation 0, 90, 0
autreman2.SetScale 0.6, 0.6, 0.6
autreman2.SetPosition 588, 118, 390 |
Servent à changer les propriété de ton perso elles peuvent être appelé plusieurs fois.
Puis pour dessiner ton perso il faut toujours appeler autreman2.Render à chaque frame.
Pour par exemple dessiner ou non ton perso en cliquant sur ton bouton, ajoute une nouvelle variable dans ton formulaire (tout au dessus de ton code source):
Private Montre_Moi As Boolean
puis ajoute ton "autreman2.Render" avec une variable boolean ici:
1 2 3 4 5
| TV3D.Clear
[...]
if Montre_Moi=true then autreman2.Render
[...]
TV3D.RenderToScreen |
et dans ton bouton ajoute simplement:
1 2 3 4 5 6 7
| Private Sub Command7_Click()
if Montre_Moi=false then
Montre_Moi=true
else
Montre_Moi=false
end if
End Sub |
Partager