Démosmaking

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

super !!!


2 petite choses

1- ça manque de music (module)

2 - ton fond d'etoile est "plat" !! dommage

pour faire un fond d'etoile "profond"
tu cree des etoile de differents niveau de gris ,et suivant les couleurs tu les fait ce deplace a des vitesse differentes

ex : les plus foncés vont plus lentement que les plus clair ect ...
cela donnera l'illusion de la profondeur !!!

tu as plusieurs choix soit plusieurs plan en superposition d'image transparente qui bouge a des vitesses differente

soit des sprites "groupé" par couleurs qui avance avec des vitesse lié a leur couleurs !!

voila ça c'est la theorie , a toi la pratique !!

:lol:

sinon Bravo pour ta demo !!



voici un code (je sais plus a qui j'ai piqué ça désolé !! )

Code : Tout sélectionner

#dobro=1
#Police=1
SSum.w = 8000 ; Amount of Stars


Cspeed.f=1
CameraZ.f=0

Gosub InitStarField
;-------- Init all needed Stuff --------
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
    MessageBox_ (0,"Can't open DirectX 7 or later", "blahhhh", #MB_ICONINFORMATION|#MB_OK)
    End
EndIf
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
WindowID = OpenWindow(1, 0, 0, EcranX, EcranY ,  #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello") 

WindowID = WindowID(1) 
If OpenWindowedScreen(WindowID,0,0,EcranX,EcranY,1,1,1) = 0 
    MessageBox_ (0,"Could not open screen", "blahhh blaa", #MB_ICONINFORMATION|#MB_OK) 
    End 
EndIf

SetFrameRate(60) 




    

    



Repeat
   
    event=WindowEvent()
    StartDrawing( ScreenOutput()) 
    ; ici on dessine sur l'ecran avec les commande 2D
    ; on peut rajouter des sprites
     
    DrawingMode(1)
    Gosub DrawStarField
    Gosub MoveCamera
    
    StopDrawing() 
    
    
    
    
    ;DisplaySprite(#dobro, de, ysprite) 
    
    
    
    


  


FlipBuffers():; affiche l'ecran
ClearScreen(0, 0, 0) :;efface l'ecran

Until event=#PB_Event_CloseWindow 
; #### INITSTARFIELD ####
InitStarField:
; Structure of a star ...
Structure a3DStar
    x.f ; X-Coordinate
    y.f ; Y-Coordinate
    z.f ; Z-Coordinate
EndStructure

; Init Starfield ...
Dim Stars.a3DStar(SSum)
For dummy = 0 To SSum
    Stars(dummy)\x = Random(10000)-5000
    Stars(dummy)\y = Random(10000)-5000
    Stars(dummy)\z = 100 + Random(1000)
Next dummy
Return


; ### Move Camera ###
MoveCamera:
If CameraZ>1000
    Direction=-1
ElseIf CameraZ<-1000
    Direction=1
EndIf
If Direction=1 And Cspeed<20
    Cspeed=Cspeed+0.01
ElseIf Direction=-1 And Cspeed>-20
    Cspeed=Cspeed-0.01
EndIf
CameraZ=CameraZ+Cspeed
Return



; #### Draw StarField ####
DrawStarField:
For dummy = 0 To SSum
    If Stars(dummy)\z<CameraZ
        Stars(dummy)\z=CameraZ+1000
    ElseIf Stars(dummy)\z>(CameraZ+1000)
        Stars(dummy)\z=CameraZ
    EndIf
    
    SX = Stars(dummy)\x / (Stars(dummy)\z-CameraZ)*100+EcranX/2
    SY = Stars(dummy)\y / (Stars(dummy)\z-CameraZ)*100+EcranY/2
    
    If SX<EcranX And SY<EcranY And SX>0 And SY>0 
        b.f = 255-(((Stars(dummy)\z)-CameraZ)*(255./1000.))
        c=Int(b)
        rouge =Random(255)+1
        vert=Random(255)+1
        bleu=Random(255)+1
       ;Plot ( SX, SY, RGB(rouge,vert,bleu))
        
        Circle(SX, SY, 1 ,RGB(rouge,vert,bleu) )
       
        
    EndIf 
    
Next dummy
Return
et un autre !!!



Code : Tout sélectionner

#dobro=1
#Police=1
SSum.w = 8000 ; Amount of Stars


Cspeed.f=1
CameraZ.f=0


; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
WindowID = OpenWindow(1, 0, 0, EcranX, EcranY ,  #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello") 

WindowID = WindowID(1) 
If OpenWindowedScreen(WindowID,0,0,EcranX,EcranY,1,1,1) = 0 
    MessageBox_ (0,"Could not open screen", "blahhh blaa", #MB_ICONINFORMATION|#MB_OK) 
    End 
EndIf


SetFrameRate(60) 
xmax.w=10000 
ymax.w=10000 
zmax.w=2000 
sspeed.w=-10 
zmin.w=10 
num.w=5000 ;get slow around 2500-3000 and i have 2.66 cpu 
centerx.w=EcranX/2 
centery.w=EcranY/2 
zoom.w=60 
shade.w=0 
Dim sx(num) 
Dim sy(num) 
Dim sz(num) 
For i=0 To num 
    sx(i)=Random(xmax)-xmax/2 
    sy(i)=Random(ymax)-ymax/2 
    sz(i)=Random(zmax) 
Next i 





Repeat
   
    event=WindowEvent()
    StartDrawing( ScreenOutput()) 
    ; ici on dessine sur l'ecran avec les commande 2D
    ; on peut rajouter des sprites
    For i=0 To num 
        sz(i)=sz(i)+sspeed 
        If sz(i)<=zmin 
            sz(i)=zmax 
            sx(i)=Random(xmax)-xmax/2 
            sy(i)=Random(ymax)-ymax/2 
        EndIf 
        screenx.w=(sx(i)*zoom)/sz(i)+centerx 
        screeny.w=(-sy(i)*zoom)/sz(i)+centery 
        shade=Int(255/zmax* -sz(i)) 
        If screenx < EcranX
            If screeny < EcranY
                If screenx > 0 
                    If screeny > 0 
                        ;Plot(screenx,screeny,RGB(shade,shade,shade)) 
                        rouge=Random(255)+1
                        vert=Random(255)+1
                        bleu=Random(255)+1
                        Circle(screenx, screeny,1,RGB(rouge ,vert,bleu)) 
                    EndIf 
                EndIf 
            EndIf 
        EndIf 
    Next i 
    StopDrawing() 
    
    
    ;DisplaySprite(#dobro, de, ysprite) 
  
FlipBuffers():; affiche l'ecran
ClearScreen(0, 0, 0) :;efface l'ecran

Until event=#PB_Event_CloseWindow 




KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Chris a écrit :
Oliv a écrit :Garzul, Karox t'as déjà donné des liens
garzul a écrit :Heu merci kaklox mais...
Est-ce que vous allez réussir à orthographier son pseudo correctement au moins une fois, dans ce post :lol:

KarLKoX
Merci ;)
Oliv a écrit :@dri : cool !!!!!!
@Dobro : et ça t'amuse :twisted: !!! :lol: :lol:
@Chris : Comme je l'ai déjà dis à dobro qui rallait (encore, il va remplacer régis) sur une lettre qui manquait, je change de Pc et de clavier, il y en a un plus sensible que l'autre, alors....EXCUSE MOI KarLKoX (vive le copier/coller)
Po grâve :)
"Qui baise trop bouffe un poil." P. Desproges
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:D Merci pour tes encouragement dobro et c'est super le code que tu ma paséé il faudrat que je l e regarde un de ses quatre en tout cas merci mais comment remédier au ptit bug avec ma démos ?
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:D Qui pourrait m'aprofondir sur les cosinus et les sinus sur un cercle car j'arrive pas trop bien a assimiler sa ?
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

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)]
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:D Merci j'avais oublié ce bon vieux forum (meme si je ne l'ai pas connu car je suis arrivée bien aprés merci régis ^^
Psycode
Messages : 131
Inscription : lun. 23/août/2004 18:47
Localisation : Jupiter ?

Message par Psycode »

Tracer un cercle par soit meme avec des point, c'est mathématique car une distance entre 2 point se calcule come ceci : racine carré de x de b - x de a au carré + y de b - y de a au carré :lol:
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Ya plus simple
Racine carré de coordonnée du premier vecteur au carré + coordonnée du second vecteur au carré. Au lieu de calcluer les coordonénes de deux vecteur dans la racine, c'est mieux de les calculer à l'exterieur, c'est plus lisible :) Et après tu fous le tout :lol:
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Encore plus simple:

Code : Tout sélectionner

Cercle = #PrendreCouvercleBoiteConserve|#PoserCouvercleSurEcran|#PrendreStyloFeutre|#TracerAutourCouvercle|#RetirerCouvercle
:10:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

voila un cercle !!!
:D

Code : Tout sélectionner




; code by Dobro http://michel.dobro.free.fr/

#dobro=1
#Police=1
#Sprite=1
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 50, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
WindowID = OpenWindow(1, 0, 0, EcranX, EcranY,  #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello") 
WindowID = WindowID(1) 
Result = OpenWindowedScreen(WindowID,0,0, EcranX, EcranY, 1, 0,0)
Resultat = InitMouse() 
taille_du_cercle=200 
nombre_de_point=360 ; ceci determine la resolution (nombre de points)
Repeat
    ExamineMouse() 
    Event=WaitWindowEvent()
    
    StartDrawing( ScreenOutput())  
    compt+1  
    If compt=nombre_de_point :compt=0:EndIf ; on a fait le tour ?? 
   
    x=taille_du_cercle* Cos( compt*(2*3.1415926/nombre_de_point)) + (EcranX / 2) ; la formule du cercle /360 = 360 points
    y=taille_du_cercle * Sin( compt*(2*3.1415926/nombre_de_point)) + (EcranY  / 2) ; la formule du cercle
    Box(x, y,2, 2 ,RGB(255,255,255))
    CallDebugger
    Debug compt
    StopDrawing() 
    FlipBuffers():; affiche l'ecran 
    Event=WindowEvent() 
    If MouseButton(2)
        End
    EndIf
Until Event=#PB_Event_CloseWindow  
Dernière modification par Backup le jeu. 26/août/2004 22:49, modifié 2 fois.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ou un aute :
http://perso.wanadoo.fr/lesoldatinconnu ... lissage.pb

légèrement plus barbare :jesors:
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)]
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

oui ! mais 100000 de fois plus rapide et plus "pro" !! :D

ps (tu peut rester !!) :lol:
Psycode
Messages : 131
Inscription : lun. 23/août/2004 18:47
Localisation : Jupiter ?

Message par Psycode »

Juste comme ca, en trichant, j'imagine faire un quart de cercle avec juste X plot (X est a definir pour ne pas trop avoir de "faces") le tout réunis par des LineXY. Ca, c'est rapide !!!!! (les sin et cos serait pris d'une banque precalculé => CA c'est encore + + + rapide) :wink:
Wait And See...
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

et c'est moche ... no comment :mrgreen:
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)]
Psycode
Messages : 131
Inscription : lun. 23/août/2004 18:47
Localisation : Jupiter ?

Message par Psycode »

Des plot tous les 5 degrées, ca fait 180 plot et 180 lineXY + la copie des 3/4 du cercle manquant soit 720 plot et 720 lineXY.... Mouai, faut voir :x
Wait And See...
Répondre