Ondulation

Programmation d'applications complexes
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Ondulation

Message par SPH »

Code : Tout sélectionner

; SPH(2006)
; PB4 

InitSprite() 
InitMouse() 
InitKeyboard() 

;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS ) 

If ExamineDesktops() 
   dw.w=DesktopWidth(0) 
   dh.w=DesktopHeight(0) 
Else 
   dw.w=1024 
   dh.w=768 
EndIf 
dw2=dw/2
dh2=dh/2

dw1=dw/4
dw3=(dw/4)*3

OpenScreen(dw,dh,32,"") 

;;;;;;;;;;;
;;;;;;;;;;;
autre:
rr1.f=Random(5)+Random(1000)/1000
rr2.f=Random(5)+Random(1000)/1000
vv1.f=Random(5)+Random(1000)/1000
vv2.f=Random(5)+Random(1000)/1000
bb1.f=Random(5)+Random(1000)/1000
bb2.f=Random(5)+Random(1000)/1000
or1.f=rr1
or2.f=rr2
ov1.f=vv1
ov2.f=vv2
ob1.f=bb1
ob2.f=bb2
cr1.f=0.001+Random(1000)/10000
cr2.f=0.001+Random(1000)/10000
cv1.f=0.001+Random(1000)/10000
cv2.f=0.001+Random(1000)/10000
cb1.f=0.001+Random(1000)/10000
cb2.f=0.001+Random(1000)/10000

a1.f=0.001+Random(1000)/35000
a2.f=0.002+Random(1000)/35000
a3.f=0.003+Random(1000)/35000
a4.f=0.001+Random(1000)/35000
a5.f=0.002+Random(1000)/35000
a6.f=0.003+Random(1000)/35000

;;;;;;;;;;;
Repeat ; Until xmouse<>xmouse2 Or ymouse<>ymouse2 Or KeyboardPushed(#PB_Key_All) 

ExamineMouse() 
xmouse=MouseDeltaX()/55 ; /x : x= sensibilité
ymouse=MouseDeltaY()/55 ; /x : x= sensibilité
;*****
ClearScreen(0)
StartDrawing(ScreenOutput())


;;;;;;;;;;;

For i=0 To dh-1
r1=63+Cos(rr1)*63
r2=63+Sin(rr2)*63
v1=63+Cos(vv1)*63
v2=63+Cos(vv2)*63
b1=63+Sin(bb1)*63
b2=63+Sin(bb2)*63

rr=r1+v1+b1
vv=r2+v2+b2

;LineXY(0,i,dw,i,RGB(b1+b2,r1+r2,v1+v2))
;LineXY(dw2,i,dw,i,RGB(b1+b2,r1+r2,v1+v2))

LineXY(dw2-rr,i,dw2+vv,i,RGB(r1+r2,v1+v2,b1+b2))

rr1+a1
rr2+a2
vv1+a3
vv2+a4
bb1+a5
bb2+a6
Next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  2



or1+cr1
rr1=or1
or2+cr2
rr2=or2
ov1+cv1
vv1=ov1
ov2+cv2
vv2=ob2
ob1+cb1
bb1=ob1
ob2+cb2
bb2=ob2
;;;;;;;;;;;
StopDrawing() 
;*****
FlipBuffers() 

If MouseButton(#PB_MouseButton_Left)<>0
Goto autre
EndIf

ExamineKeyboard() 
Until xmouse<>0 Or ymouse<>0 Or KeyboardPushed(#PB_Key_All) 
End 

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
nemerod256
Messages : 39
Inscription : dim. 19/févr./2012 1:51
Localisation : la ou la météo est bizarre
Contact :

Re: Ondulation

Message par nemerod256 »

belle effet
mais c'est pourquoi ?
purebasic 5.00
minecraft (en jeu (redstone))
perturbe les programme 32 et 64-bit directement dans la RAM du pc !!! (aussi se que je crée avec purebasic (rien que pour le lol ou a des fin de débogage)
bref rien que du plaisir !!!!!
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Ondulation

Message par MLD »

@SPH

Salut
Sympa l'effet
Si tu le fait de haut en bas au lieu de l'inverse, tu pourrai l'appelé "TARTINE DEGOULINANTE" :mrgreen:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Ondulation

Message par Backup »

hum , tu nous fais du réchauffé ? ;)

par politesse je ne donnerai pas le lien du topic original ;)


Code : Tout sélectionner

InitMouse()
InitKeyboard()
InitJoystick()

Declare Ondulation(xo,yo,Texte.s,ro,vo,bo) 
; ***** variables a OLIV ********* 
; Variables
Global yo.f = 110

;vitesses de départ
Global vxo.f = 10
Global vyo.f = -45

Global Paso.f=0.2
#HauteurSin = 50 ; Coef qui joue sur la hauteur de la sinusoide
#LargeurSin = 50 ; Coef qui joue sur la largeur de la sinusoide
#VitesseAngle =  1 * #PI / 50 ; vitesse de modification de l'angle de départ du texte
Global angleo.f, FontID,   long_text_bas
; ****************************************


Enumeration
	#fenetre
	#Police
	#Image_buffer
EndEnumeration

pa=10:r=255-16
LoadFont(0,"arial",50)

; ***********************************
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(#Fenetre, 0, 0,1024,768,  "hello",#PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered ) 
Result = OpenWindowedScreen(WindowID(#Fenetre) ,0,0, 1027, 768, 1, 0,0) 
CentreX = (EcranX)  / 2
CentreY = 0 
Vitesse.f = 8.2 ;donne scroling vert ou hori suivant
angle.f = 0  ;donne scroling vert ou hori suivant
amplitude.f =120 ; profondeur des dents
pas.f = 0.3 ; nombre de dent de scie  
ss.f=2

Global Dim palette.l(500)
For i = 0 To 500
	angle.f = angle + ((2 * #PI) / 500)
	palette(i) = RGB (Abs (Cos (angle + (4*#PI/6))* 255),Abs (Cos (angle + #PI/3)* 255), Abs (Cos (angle)* 255))
Next 
Texte.s= ".................... coucou SPH , tu ressort les vieux code ???    :D............"
Repeat
	artichaut = artichaut+Cos( 36)/10
	artison =artison+Sin( 36) 
	ExamineMouse() 
	StartDrawing(ScreenOutput()) 
	; ***************************************************************************
	a = Sin ((x + artichaut)/(500 + Sin (x/100)*100)) * 75 + 75
	For Y=1 To EcranY-1  
		artichaut = Cos ((Y + artison)/(300 + Cos (Y/100)*100)) * 75 + 75 
		coul = a + artichaut
		If coul > 500
			coul = coul-500
		EndIf
		coul = palette (coul) 
		i=Y
		amplitude= amplitude+ss
		If amplitude>120:ss=-ss:EndIf
		If amplitude<-120:ss=-0.001:ss=-ss:EndIf    
		x=(CentreX)-300+ Sin((angle + i* pas*10  )  * 0.0174533) * amplitude 
		LineXY(x+Sin((angle + i* pas*3  )  * 0.0174533) * amplitude ,Y,x+500+Sin((angle + i* pas*5  )  * 0.0174533) * amplitude ,Y,coul) 
	Next Y
	StopDrawing()  
	angle=angle + Vitesse  
	;************ ondulation text ***************
	xo=xo-2
	If xo<-1600
		xo= EcranX
	EndIf
	; ***************************************
	Ondulation(xo,yo,Texte.s,255,0,255)  
	WindowEvent()  
	If MouseButton(2)
		End 
	EndIf 
	FlipBuffers():; affiche l'ecran
	ClearScreen(RGB(0, 0, 0)) :;efface l'ecran 
Until Event=#PB_Event_CloseWindow 

Procedure Ondulation(xo,yo,Texte.s,ro,vo,bo)  
	; procedure realisé par OLIV
	StartDrawing(ScreenOutput()) ; Pour pouvoir utiliser les commandes des dessin 2D.
	DrawingMode( #PB_2DDrawing_Transparent) ; On selectionne le mode pour ne pas avoir de fond derrière les lettres.
	FrontColor(RGB(ro,vo,bo) ); On change la couleur. 
	DrawingFont(FontID(0)) ; On change la police 
	angleo + #VitesseAngle ; Angle de départ de la sinusoide en radian 
	If angleo >= 2 * #PI
		angleo = 0
	EndIf 
	; On affiche toute les lettres
	posx = 10 ; Position du caractère
	For n = 1 To Len(Texte) ; Pour chaque lettre du texte 
		Lettre.s = Mid(Texte, n, 1) ; on récupère la lettre à la position n 
		posy = 50 + #HauteurSin * Sin(angleo + posx / #LargeurSin) ; on calcul la position en Y de la lettre
		; On part du centre de l'image (50) puis on ajoute un sin
		; #HauteurSin fait varier l'amplitude du mouvement
		; l'angle mis dans le sinus est d'abord composé de l'angle de départ d'affichage du texte (Angle)
		; puis on augmente l'angle au fur et à mesure que l'on affiche des lettres avec le coefficient #LargeurSin qui permet de faire varier la largeur de la sinusoide
		
		DrawText(xo+posx, yo+posy,Lettre) 
		posx +TextWidth(Lettre) 
	Next 
	StopDrawing() ; On signife que l'on arrête les fonctions dessin 2D.
EndProcedure

Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Ondulation

Message par SPH »

Dobro a écrit :hum , tu nous fais du réchauffé ? ;)
Oui, il y a du new people a reconquerir :wink:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Ondulation

Message par kelebrindae »

Bin, réchauffé ou pas, moi j'trouve ça bien joli... :)
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Ondulation

Message par TazNormand »

Très bonne initiative.

D'ailleurs, faut aussi relancer les PurePunchs. Ah et si un ancien démoMaker pouvait faire des tutos sur les différents effets de démos, accompagné d'exemple en PB, genre :
Plasma
CopperList
Rasters
Scrollings
twisted bars
etc...
Image
Image
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Ondulation

Message par djes »

TazNormand a écrit :D'ailleurs, faut aussi relancer les PurePunchs.
Ok ! :)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Ondulation

Message par Ar-S »

TazNormand a écrit :Très bonne initiative.

D'ailleurs, faut aussi relancer les PurePunchs. Ah et si un ancien démoMaker pouvait faire des tutos sur les différents effets de démos, accompagné d'exemple en PB, genre :
Plasma
CopperList
Rasters
Scrollings
twisted bars
etc...
Ce serait top.
J'ai recupéré des codes sur divers forums regroupant quelques uns de ces effets, reste à les retrouver et voir s'ils sont encore fonctionnels.
On a déjà de bon exemples avec le Shadow Of the Beast et le remake de la cracktro scoopex.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Ondulation

Message par Backup »

Répondre