Déplacement sur un Hélice 3D V1.1

Généralités sur la programmation 3D
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Déplacement sur un Hélice 3D V1.1

Message par Guimauve »

Bonjour à tous,

Un autre animation 3D, les mêmes models 3D que la dernière fois. Seulement l'animation est différente.

Édition Version 1.1 - Écran de veille

La mise à jour :

- Optimisation du code.
- Utilisation d'une liste chainé de type structurée.
- Le code pour l'écran de veille est opérationnel. Sauf qu'il manque le "Preview". À venir dans la prochaine version.

A+
Guimauve

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; PureBasic Screensaver - Icosaèdre étoilé
; Nom de l'écran de veille : Icosaèdre étoilé
; Programmation : Version 1.1
; Programmé par : Guimauve
; Date : 18 décembre 2004
; Mise à jour : 24 février 2005
; Codé avec PureBasic V3.92
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Déclaration des procédures

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Constantes, Variables, Structure, Création des Tableaux, etc.

Enumeration
     
     #Scr_Win_Param
     
     #Txt_version
     #Btn_ok
     #Btn_cancel
     
EndEnumeration

Enumeration
     #CoordonneeX
     #CoordonneeY
     #CoordonneeZ
EndEnumeration

Enumeration = 1
     ; Constante pour l'animation
     #Icosahedron_01
     #Icosahedron_02
     #Icosahedron_03
     #Icosahedron_04
     #Icosahedron_05
     #Icosahedron_06
     #Icosahedron_07
     #Icosahedron_08
     #Icosahedron_09
     #Icosahedron_10
     #Icosahedron_tex_01
     #Icosahedron_tex_02
     #Icosahedron_tex_03
     #Icosahedron_tex_04
     #Icosahedron_tex_05
     #Icosahedron_tex_06
     #Icosahedron_tex_07
     #Icosahedron_tex_08
     #Icosahedron_tex_09
     #Icosahedron_tex_10
     
EndEnumeration

; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Degré en Radian

Procedure.f DegToRad(Angle.f)
     
     ProcedureReturn Angle * #Pi / 180
     
EndProcedure

; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Procedure.f SpinFloat(No.f, mini.f, maxi.f, increment.f)
     
     No + increment
     
     If No > maxi
          No = mini
     EndIf
     
     If No < mini
          No = Maxi
     EndIf
     
     ProcedureReturn No
     
EndProcedure

; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Procedure.f Helice3D(rayon.f, NbSpire.f, Pas.f, Pos_u.f, Calcul.b)
     
     If Calcul = #CoordonneeX
          Resultat.f = rayon * Cos(DegToRad(360 * NbSpire * Pos_u))
          
     ElseIf Calcul = #CoordonneeY
          Resultat.f = rayon * Sin(DegToRad(360 * NbSpire * Pos_u))
          
     ElseIf Calcul = #CoordonneeZ
          Resultat.f = Pas * NbSpire * Pos_u
          
     EndIf
     
     ProcedureReturn Resultat
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#Vertical = 0
#Horizontal = 1

ProcedureDLL DrawGradient(Color1.l, Color2.l, NbColor.l, largeur.l, hauteur.l, OutputID.l, Orientation.b)
     
     rt = Red(Color1)
     rd = Red(Color2) - rt
     gt = Green(Color1)
     gd = Green(Color2) - gt
     bt = Blue(Color1)
     bd = Blue(Color2) - bt
     
     StartDrawing(OutputID)
          If Orientation = #Vertical
               While i < NbColor
                    r = MulDiv_(i, rd, NbColor) + rt
                    g = MulDiv_(i, gd, NbColor) + gt
                    b = MulDiv_(i, bd, NbColor) + bt
                    y = MulDiv_(i, hauteur, Nbcolor)
                    h = MulDiv_(i + 2, hauteur, NbColor)
                    Box( 0, y, largeur, h, RGB(r, g, b))
                    i + 1
               Wend
               
          ElseIf Orientation = #Horizontal
               While i < NbColor
                    r = MulDiv_(i, rd, NbColor) + rt
                    g = MulDiv_(i, gd, NbColor) + gt
                    b = MulDiv_(i, bd, NbColor) + bt
                    x = MulDiv_(i, largeur, Nbcolor)
                    l = MulDiv_(i + 2, largeur, NbColor)
                    Box(x, 0, l, hauteur, RGB(r, g, b))
                    i + 1
               Wend
          EndIf
     StopDrawing()
EndProcedure


; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Procedure OnlyOneSCRStart(Name$)
     Shared OnlyOneStartMutex.l
     OnlyOneStartMutex = CreateMutex_(0, 1, Name$)
     OnlyOneStartError.l = GetLastError_()
     If OnlyOneStartMutex <> 0 And OnlyOneStartError = 0
          ProcedureReturn 1
     Else
          CloseHandle_(OnlyOneStartMutex)
          End
     EndIf
EndProcedure

; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Procedure OnlyOneSCRStop()
     CloseHandle_(OnlyOneStartMutex)
EndProcedure

; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Procedure InitScreenSaver(ScreenSaverName$, ScrWidth.w, ScrHeight.w, ScrDepth.w)
     
     ; Initialisation des sprites et du clavier.
     If InitSprite() = 0 Or InitKeyboard() = 0
          MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
          End
     EndIf
     
     ; Ouverture du screen
     If OpenScreen(ScrWidth, ScrHeight, ScrDepth, ScreenSaverName$) = 0
          MessageRequester("Error", "Can't open a screen !", 0)
          End
     EndIf
     
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

ScreenSaverName$ = "Hélice 3D"
ScreenSaverVersion$ = "Version 1.1"

ScreenW = GetSystemMetrics_(#SM_CXSCREEN)
ScreenH = GetSystemMetrics_(#SM_CYSCREEN)
ScreenD = 32

Structure Info
     
     ModelID.l
     HelixRadius.f
     HelixNbSpire.f
     HelixPitch.f
     PosU.f
     PosX.f
     PosY.f
     PosZ.f
     ScaleFactor.f
     TextureID.l
     TextureSize.w
     TextureColor01.l
     TextureColor02.l
     
EndStructure

Dim Color(2, 10)

Color(1, 1) = RGB(000, 255, 000)
Color(2, 1) = RGB(100, 000, 155)

Color(1, 2) = RGB(000, 255, 000)
Color(2, 2) = RGB(000, 000, 255)

Color(1, 3) = RGB(255, 000, 000)
Color(2, 3) = RGB(150, 150, 150)

Color(1, 4) = RGB(255, 255, 255)
Color(2, 4) = RGB(100, 000, 160)

Color(1, 5) = RGB(000, 255, 255)
Color(2, 5) = RGB(150, 000, 150)

Color(1, 6) = RGB(000, 000, 255)
Color(2, 6) = RGB(255, 255, 000)

Color(1, 7) = RGB(255, 255, 000)
Color(2, 7) = RGB(000, 000, 255)

Color(1, 8) = RGB(000, 255, 000)
Color(2, 8) = RGB(100, 000, 155)

Color(1, 9) = RGB(255, 255, 128)
Color(2, 9) = RGB(180, 000, 000)

Color(1, 10) = RGB(255, 255, 000)
Color(2, 10) = RGB(255, 000, 000)


NewList Model.Info()

; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Programme principale
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

OnlyOneSCRStart(ScreenSaverName$)

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; On regarde quel paramètre à été donné au programme

FirstParam$ = ProgramParameter()
command$ = LCase(Left(ReplaceString(FirstParam$, "-", "/"), 2))
ParentWindow.l = Val(StringField(FirstParam$, 2, ":")) | Val(ProgramParameter())

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; L'écran de veille, le scr est lancé avec /s comme paramètre

Select command$
          
     Case "/s"
          
          InitEngine3D()
          InitScreenSaver(ScreenSaverName$, ScreenW, ScreenH, ScreenD)
          
          GetCursorPos_(SourisOrigine.POINT)
          ShowCursor_(0)
          
          For model = #Icosahedron_01 To #Icosahedron_10
               AddElement(Model())
               Model()\ModelID = model
               Model()\HelixRadius = 14.5
               Model()\HelixNbSpire = 5
               Model()\HelixPitch = 15
               Model()\PosU = 0.000 + u1.f
               Model()\PosX = Helice3D(Model()\HelixRadius, Model()\HelixNbSpire, Model()\HelixPitch, Model()\PosU, #CoordonneeZ)
               Model()\PosY = Helice3D(Model()\HelixRadius, Model()\HelixNbSpire, Model()\HelixPitch, Model()\PosU, #CoordonneeY)
               Model()\PosZ = Helice3D(Model()\HelixRadius, Model()\HelixNbSpire, Model()\HelixPitch, Model()\PosU, #CoordonneeX)
               Model()\ScaleFactor = 0.65
               Model()\TextureID = model + #Icosahedron_10
               Model()\TextureSize = 128
               Model()\TextureColor01 = Color(1, model)
               Model()\TextureColor02 = Color(2, model)
               u1 = SpinFloat(u1, 0, 1, 0.145)
          Next
          
          ForEach Model()
               CreateMesh(Model()\ModelID)
               SetMeshData(Model()\ModelID, 0, ?Vertices, 180)
               SetMeshData(Model()\ModelID, 1, ?FacesIndexes, 60)
               SetMeshData(Model()\ModelID, 2, ?TextureCoordinates, 180)
               CreateEntity(Model()\ModelID, MeshID(Model()\ModelID), CreateMaterial(Model()\TextureID, CreateTexture(Model()\TextureID, Model()\TextureSize, Model()\TextureSize)))
               EntityLocate(Model()\ModelID, 0, 0, 0)
               ScaleEntity(Model()\ModelID, Model()\ScaleFactor, Model()\ScaleFactor, Model()\ScaleFactor)
               DrawGradient(Model()\TextureColor01, Model()\TextureColor02, 255, Model()\TextureSize, Model()\TextureSize, TextureOutput(Model()\TextureID), #Vertical)
          Next
          
          CreateCamera(0, 0, 0, 100, 100)
          CameraLocate(0, 50, 0, 50)
          
          speed.b = 1
          
          Repeat
               
               ClearScreen(0, 0, 0)
               
               If frame = 500
                    
                    If set.b = 0
                         speed = 1
                         frame = 0
                         set = 1
                         
                    ElseIf set = 1
                         speed = -1
                         frame = 0
                         set = 0
                    EndIf
               EndIf
               
               ; Ici on fait la mise à jour des positions des models 3D et on positionne les models à leurs nouvelles positions.
               ForEach Model()
                    Model()\PosU = SpinFloat(Model()\PosU, 0, 1, 0.0015)
                    Model()\PosX = Helice3D(Model()\HelixRadius, Model()\HelixNbSpire, Model()\HelixPitch, Model()\PosU, #CoordonneeZ)
                    Model()\PosY = Helice3D(Model()\HelixRadius, Model()\HelixNbSpire, Model()\HelixPitch, Model()\PosU, #CoordonneeY)
                    Model()\PosZ = Helice3D(Model()\HelixRadius, Model()\HelixNbSpire, Model()\HelixPitch, Model()\PosU, #CoordonneeX)
                    EntityLocate(Model()\ModelID, Model()\PosX, Model()\PosY, Model()\PosZ)
                    RotateEntity(Model()\ModelID, -2 * speed, -2 * speed, -2 * speed)
               Next
               
               RenderWorld()
               
               frame + 1
               ExamineKeyboard()
               
               FlipBuffers()
               
               ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               ; On vérifie si l'utilisateur touche au clavier ou à la souris
               
               GetCursorPos_(Souris.POINT)
               ExamineKeyboard()
               
          Until KeyboardPushed(#PB_Key_All) > 0 Or Souris\x <> SourisOrigine\x Or Souris\y <> SourisOrigine\y ; WindowEvent() = #PB_Event_CloseWindow Or
          
          ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
          ; Fenètre de paramétrage de l'écran de veille
          
     Case "/c"
          
          If OpenWindow(#Scr_Win_Param, 0, 0, 300, 225, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, ScreenSaverName$) <> 0
               
               If CreateGadgetList(WindowID(#Scr_Win_Param)) <> 0
                    
                    TextGadget(#PB_any, 5, 5, 290, 20, "Il n'y a aucun paramètre pour cet écran de veille.")
                    TextGadget(#Txt_version, 10, 200, 150, 20, ScreenSaverVersion$)
                    ButtonGadget(#Btn_ok, 130, 195, 75, 25, "Ok")
                    ButtonGadget(#Btn_cancel, 215, 195, 75, 25, "Cancel")
                    
               EndIf
               
               Repeat
                    
                    EventID.l = WaitWindowEvent()
                    
                    If EventID = #PB_EventGadget
                         Select EventGadgetID()
                                   
                              Case #Btn_ok
                                   EventID = #PB_EventCloseWindow
                                   
                              Case #Btn_cancel
                                   EventID = #PB_EventCloseWindow
                                   
                         EndSelect
                    EndIf
                    
               Until EventID = #PB_EventCloseWindow
               
          EndIf
          
          ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
          ; Code pour l'affichage de l'aperçu
          
     Case "/p"
          End
          
EndSelect

OnlyOneSCRStop()

End

; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; <<<<<<<<<<<<<<<<<<<<<<<<<<<< Procédures Secondaires, Data, etc >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

DataSection
     
     Vertices :
          Data.f - 4.014306, 5.254795, 0.000000
          Data.f 0.000000, 4.000000, 0.000000
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f - 4.014306, 5.254795, 0.000000
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f 0.000000, 4.000000, 0.000000
          Data.f - 4.014306, 5.254795, 0.000000
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f - 1.240489, 5.254795, 3.817832
          Data.f 0.000000, 4.000000, 0.000000
          Data.f 1.105573, 1.788854, 3.402603
          Data.f - 1.240489, 5.254795, 3.817832
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f 0.000000, 4.000000, 0.000000
          Data.f - 1.240489, 5.254795, 3.817832
          Data.f 1.105573, 1.788854, 3.402603
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f 3.247642, 5.254795, 2.359550
          Data.f 0.000000, 4.000000, 0.000000
          Data.f 3.577708, 1.788854, 0.000000
          Data.f 3.247642, 5.254795, 2.359550
          Data.f 1.105573, 1.788854, 3.402603
          Data.f 0.000000, 4.000000, 0.000000
          Data.f 3.247642, 5.254795, 2.359550
          Data.f 3.577708, 1.788854, 0.000000
          Data.f 1.105573, 1.788854, 3.402603
          Data.f 3.247642, 5.254795, -2.359550
          Data.f 0.000000, 4.000000, 0.000000
          Data.f 1.105573, 1.788854, -3.402603
          Data.f 3.247642, 5.254795, -2.359550
          Data.f 3.577708, 1.788854, 0.000000
          Data.f 0.000000, 4.000000, 0.000000
          Data.f 3.247642, 5.254795, -2.359550
          Data.f 1.105573, 1.788854, -3.402603
          Data.f 3.577708, 1.788854, 0.000000
          Data.f - 1.240489, 5.254795, -3.817832
          Data.f 0.000000, 4.000000, 0.000000
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f - 1.240489, 5.254795, -3.817832
          Data.f 1.105573, 1.788854, -3.402603
          Data.f 0.000000, 4.000000, 0.000000
          Data.f - 1.240489, 5.254795, -3.817832
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f 1.105573, 1.788854, -3.402603
          Data.f - 6.495283, 1.240489, 0.000000
          Data.f - 3.577709, -1.788854, 0.000000
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f - 6.495283, 1.240489, 0.000000
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f - 3.577709, -1.788854, 0.000000
          Data.f - 6.495283, 1.240489, 0.000000
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f - 2.007153, 1.240489, 6.177382
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f - 2.007153, 1.240489, 6.177382
          Data.f 1.105573, 1.788854, 3.402603
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f - 2.007153, 1.240489, 6.177382
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f 1.105573, 1.788854, 3.402603
          Data.f 5.254795, 1.240489, 3.817831
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 1.105573, 1.788854, 3.402603
          Data.f 5.254795, 1.240489, 3.817832
          Data.f 3.577708, 1.788854, -0.000000
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 5.254795, 1.240489, 3.817831
          Data.f 1.105573, 1.788854, 3.402603
          Data.f 3.577708, 1.788854, -0.000000
          Data.f 5.254794, 1.240489, -3.817832
          Data.f 2.894427, -1.788854, -2.102925
          Data.f 3.577708, 1.788854, -0.000000
          Data.f 5.254794, 1.240489, -3.817832
          Data.f 1.105572, 1.788854, -3.402603
          Data.f 2.894427, -1.788854, -2.102925
          Data.f 5.254794, 1.240489, -3.817832
          Data.f 3.577708, 1.788854, -0.000000
          Data.f 1.105572, 1.788854, -3.402603
          Data.f - 2.007153, 1.240489, -6.177382
          Data.f - 1.105573, -1.788854, -3.402603
          Data.f 1.105572, 1.788854, -3.402603
          Data.f - 2.007153, 1.240489, -6.177382
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f - 1.105573, -1.788854, -3.402603
          Data.f - 2.007153, 1.240489, -6.177382
          Data.f 1.105572, 1.788854, -3.402603
          Data.f - 2.894427, 1.788854, -2.102924
          Data.f 2.007153, -1.240489, -6.177382
          Data.f 1.105573, 1.788854, -3.402603
          Data.f - 1.105572, -1.788854, -3.402603
          Data.f 2.007153, -1.240489, -6.177382
          Data.f 2.894427, -1.788854, -2.102924
          Data.f 1.105573, 1.788854, -3.402603
          Data.f 2.007153, -1.240489, -6.177382
          Data.f - 1.105572, -1.788854, -3.402603
          Data.f 2.894427, -1.788854, -2.102924
          Data.f - 5.254794, -1.240489, -3.817832
          Data.f - 2.894427, 1.788854, -2.102925
          Data.f - 3.577708, -1.788854, -0.000000
          Data.f - 5.254794, -1.240489, -3.817832
          Data.f - 1.105572, -1.788854, -3.402603
          Data.f - 2.894427, 1.788854, -2.102925
          Data.f - 5.254794, -1.240489, -3.817832
          Data.f - 3.577708, -1.788854, -0.000000
          Data.f - 1.105572, -1.788854, -3.402603
          Data.f - 5.254795, -1.240489, 3.817831
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f - 5.254795, -1.240489, 3.817832
          Data.f - 3.577708, -1.788854, -0.000000
          Data.f - 2.894427, 1.788854, 2.102924
          Data.f - 5.254795, -1.240489, 3.817831
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f - 3.577708, -1.788854, -0.000000
          Data.f 2.007153, -1.240489, 6.177382
          Data.f 1.105573, 1.788854, 3.402603
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 2.007153, -1.240489, 6.177382
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f 1.105573, 1.788854, 3.402603
          Data.f 2.007153, -1.240489, 6.177382
          Data.f 2.894427, -1.788854, 2.102924
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f 6.495283, -1.240489, 0.000000
          Data.f 3.577709, 1.788854, 0.000000
          Data.f 2.894427, -1.788854, -2.102924
          Data.f 6.495283, -1.240489, 0.000000
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 3.577709, 1.788854, 0.000000
          Data.f 6.495283, -1.240489, 0.000000
          Data.f 2.894427, -1.788854, -2.102924
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 1.240489, -5.254795, -3.817832
          Data.f 0.000000, -4.000000, 0.000000
          Data.f 2.894427, -1.788854, -2.102924
          Data.f 1.240489, -5.254795, -3.817832
          Data.f - 1.105573, -1.788854, -3.402603
          Data.f 0.000000, -4.000000, 0.000000
          Data.f 1.240489, -5.254795, -3.817832
          Data.f 2.894427, -1.788854, -2.102924
          Data.f - 1.105573, -1.788854, -3.402603
          Data.f - 3.247642, -5.254795, -2.359550
          Data.f 0.000000, -4.000000, 0.000000
          Data.f - 1.105573, -1.788854, -3.402603
          Data.f - 3.247642, -5.254795, -2.359550
          Data.f - 3.577708, -1.788854, 0.000000
          Data.f 0.000000, -4.000000, 0.000000
          Data.f - 3.247642, -5.254795, -2.359550
          Data.f - 1.105573, -1.788854, -3.402603
          Data.f - 3.577708, -1.788854, 0.000000
          Data.f - 3.247642, -5.254795, 2.359550
          Data.f - 0.000000, -4.000000, 0.000000
          Data.f - 3.577708, -1.788854, 0.000000
          Data.f - 3.247642, -5.254795, 2.359550
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f - 0.000000, -4.000000, 0.000000
          Data.f - 3.247642, -5.254795, 2.359550
          Data.f - 3.577708, -1.788854, 0.000000
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f 1.240489, -5.254795, 3.817832
          Data.f 0.000000, -4.000000, 0.000000
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f 1.240489, -5.254795, 3.817832
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 0.000000, -4.000000, 0.000000
          Data.f 1.240489, -5.254795, 3.817832
          Data.f - 1.105573, -1.788854, 3.402603
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 4.014306, -5.254795, 0.000000
          Data.f 0.000000, -4.000000, 0.000000
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 4.014306, -5.254795, 0.000000
          Data.f 2.894427, -1.788854, -2.102924
          Data.f 0.000000, -4.000000, 0.000000
          Data.f 4.014306, -5.254795, 0.000000
          Data.f 2.894427, -1.788854, 2.102924
          Data.f 2.894427, -1.788854, -2.102924
     
     FacesIndexes :
          Data.w 2, 1, 0
          Data.w 5, 4, 3
          Data.w 8, 7, 6
          Data.w 11, 10, 9
          Data.w 14, 13, 12
          Data.w 17, 16, 15
          Data.w 20, 19, 18
          Data.w 23, 22, 21
          Data.w 26, 25, 24
          Data.w 29, 28, 27
          Data.w 32, 31, 30
          Data.w 35, 34, 33
          Data.w 38, 37, 36
          Data.w 41, 40, 39
          Data.w 44, 43, 42
          Data.w 47, 46, 45
          Data.w 50, 49, 48
          Data.w 53, 52, 51
          Data.w 56, 55, 54
          Data.w 59, 58, 57
          Data.w 62, 61, 60
          Data.w 65, 64, 63
          Data.w 68, 67, 66
          Data.w 71, 70, 69
          Data.w 74, 73, 72
          Data.w 77, 76, 75
          Data.w 80, 79, 78
          Data.w 83, 82, 81
          Data.w 86, 85, 84
          Data.w 89, 88, 87
          Data.w 92, 91, 90
          Data.w 95, 94, 93
          Data.w 98, 97, 96
          Data.w 101, 100, 99
          Data.w 104, 103, 102
          Data.w 107, 106, 105
          Data.w 110, 109, 108
          Data.w 113, 112, 111
          Data.w 116, 115, 114
          Data.w 119, 118, 117
          Data.w 122, 121, 120
          Data.w 125, 124, 123
          Data.w 128, 127, 126
          Data.w 131, 130, 129
          Data.w 134, 133, 132
          Data.w 137, 136, 135
          Data.w 140, 139, 138
          Data.w 143, 142, 141
          Data.w 146, 145, 144
          Data.w 149, 148, 147
          Data.w 152, 151, 150
          Data.w 155, 154, 153
          Data.w 158, 157, 156
          Data.w 161, 160, 159
          Data.w 164, 163, 162
          Data.w 167, 166, 165
          Data.w 170, 169, 168
          Data.w 173, 172, 171
          Data.w 176, 175, 174
          Data.w 179, 178, 177
     
     TextureCoordinates :
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
          Data.f 0.500000, 0.000000
          Data.f 0.000000, 1.000000
          Data.f 1.000000, 1.000000
     
EndDataSection
; fin
Dernière modification par Guimauve le ven. 25/févr./2005 21:24, modifié 2 fois.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

8O sympa :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai le mal de mer !! :D

est-ce parceque j'utilise les derniere librairie keyboard mis en ligne par Fred
que lorsque j'appuis sur F1 il n'y a rien qui s'affiche ?? pas d'infos :?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Chapeau Guimauve :10:


Tout simplement excellent et fluide :wink:
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Sympa, la danse des oursins :lol:

@Dobro: J'ai la même lib et F1 marche :roll:
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Dobro a écrit :j'ai le mal de mer !! :D

est-ce parceque j'utilise les derniere librairie keyboard mis en ligne par Fred
que lorsque j'appuis sur F1 il n'y a rien qui s'affiche ?? pas d'infos :?
C'est bizarre ça, j'ai mis à jour les librairies il n'y a pas très long temps. Est-ce que ça le fait à quelqu'un d'autre ?

Moi de mon côté, ça fonctionne très bien.

A+
Guimauve
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ça fonctionne très bien pour moi aussi , avec les dernières libs , y compris les libs spéciales markus :)
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Bonjour à tous,

Je viens de faire une mise à jour du code.

A+
Guimauve
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

J'ai ce message
---------------------------
jaPBe - Erreur du compilateur !
---------------------------
Line 255 - DrawGradient() is not a function, an array, or a linked list
---------------------------
OK
---------------------------
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Oui je sais, je viens de m'en rendre compte.

La voiçi :

Code : Tout sélectionner


#Vertical = 0
#Horizontal = 1

ProcedureDLL DrawGradient(Color1.l, Color2.l, NbColor.l, largeur.l, hauteur.l, OutputID.l, Orientation.b)
     
     rt = Red(Color1)
     rd = Red(Color2) - rt
     gt = Green(Color1)
     gd = Green(Color2) - gt
     bt = Blue(Color1)
     bd = Blue(Color2) - bt
     
     StartDrawing(OutputID)
          If Orientation = #Vertical
               While i < NbColor
                    r = MulDiv_(i, rd, NbColor) + rt
                    g = MulDiv_(i, gd, NbColor) + gt
                    b = MulDiv_(i, bd, NbColor) + bt
                    y = MulDiv_(i, hauteur, Nbcolor)
                    h = MulDiv_(i + 2, hauteur, NbColor)
                    Box( 0, y, largeur, h, RGB(r, g, b))
                    i + 1
               Wend
               
          ElseIf Orientation = #Horizontal
               While i < NbColor
                    r = MulDiv_(i, rd, NbColor) + rt
                    g = MulDiv_(i, gd, NbColor) + gt
                    b = MulDiv_(i, bd, NbColor) + bt
                    x = MulDiv_(i, largeur, Nbcolor)
                    l = MulDiv_(i + 2, largeur, NbColor)
                    Box(x, 0, l, hauteur, RGB(r, g, b))
                    i + 1
               Wend
          EndIf
     StopDrawing()
EndProcedure
C'est le problème de se faire des librairie perso, les autres ne les ont pas toujours. Puis on ne peut pas tester le code pour voir s'il manque quelque chose.

Désolé

A+
Guimauve
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Il faut faire une manip pour utiliser le code; car chez moi, il se passe rien du tout.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

il faut mettre /s en paramètre de lancement (dans japbe) ou insérer

command$ = "/s" avant ceci

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
; L'écran de veille, le scr est lancé avec /s comme paramètre 

Select command$ 
          
     Case "/s"
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Il faut aller dans les options de compilation et mettre /s comme argument.

Ou le compiler comme un exe puis avec l'explorateur windows changer l'extension .exe pour .scr.

Et bien sûr la Engine3D.dll doit être dans le même répertoire.

A+
Guimauve
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Merci à vous. :D
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

ça marche :D
Répondre