Démosmaking
Démosmaking
Code : Tout sélectionner
;Coder par garzul le 20 aout a 4 heure 31
;Structure
Structure Ligne
x.f
y.f
x2.f
y2.f
EndStructure
Global coord.Ligne
;Procedure du dessin
Procedure Ligne(x.f,y.f,anx.f,any.f)
Protected x1.f,y2.f
Coord\x = x1 + x * Sin(any)
Coord\y = y2 - x * Cos(any)
; * Cos(anx)
EndProcedure
;initialisation des cmposant
If InitSprite() = 0 Or InitKeyboard() = 0
End
EndIf
;création screen
OpenScreen(1024,768,32,"Démos")
AngleX.f = 0
AngleY.f = 0
AngleZ.f = 0
FontID = LoadFont(0, "tahoma", 8, #PB_Font_HighQuality)
SetFrameRate(30)
;BOUcle
Repeat
ClearScreen(0, 0, 0);A enlever sa fait un jolie effet :)
AngleX + 0.01
AngleY + 0.09
AngleZ + 0.09
StartDrawing(ScreenOutput())
DrawingFont(FontID)
;Tracer de la ligne 1
Ligne(200,0,angleX,AngleY)
Line(250,250,coord\x,coord\y,RGB($F7,$EF,$08))
Plot( 250 + coord\x,250 + coord\y,RGB($1B,$3E,$E4)) ;Normalement le point qui devrait faire un cercle
;tracer de la ligne 2
Ligne(0,200,angleX,AngleY)
Line(250,250,coord\x2,coord\y2,RGB($28,$18,$D7))
StopDrawing()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)moi j'ai utilise les sprite (plus simple)
et j'ai vire le clearscreen pour que ça laisse des traces
ensuite je dessine un cercle noir au centre pour simuler le clearscreen
de cette facon les lignes qui laisses des traces disparaissent !!
bref une grosse arnaque !!!
soit dit en passant le mask qui simule le cls (clearscreen) etait une astuce tres employé dans les jeux video des années 80 !!
c'est tres efficace et economique en code !!
l'avantage c'est qu'avec les forme de base (cercle, rectangle ,triangle))
on dispose de "gommes" sur mesure !!!
faut y penser des fois c'est utile !! 
et j'ai vire le clearscreen pour que ça laisse des traces
ensuite je dessine un cercle noir au centre pour simuler le clearscreen
de cette facon les lignes qui laisses des traces disparaissent !!
bref une grosse arnaque !!!
soit dit en passant le mask qui simule le cls (clearscreen) etait une astuce tres employé dans les jeux video des années 80 !!
c'est tres efficace et economique en code !!
l'avantage c'est qu'avec les forme de base (cercle, rectangle ,triangle))
on dispose de "gommes" sur mesure !!!
Code : Tout sélectionner
;Coder par garzul le 20 aout a 4 heure 31
;Structure
Structure Ligne
x.f
y.f
x2.f
y2.f
EndStructure
Global coord.Ligne
InitSprite()
;Procedure du dessin
Procedure Ligne(x.f,y.f,anx.f,any.f)
Protected x1.f,y2.f
coord\x = x1 + x * Sin(any*2*3.1415926/50)
coord\y = y2 - x * Cos(any*2*3.1415926/50)
; * Cos(anx)
EndProcedure
;initialisation des cmposant
If InitSprite() = 0 Or InitKeyboard() = 0
End
EndIf
;création screen
;OpenScreen(1024,768,32,"Démos")
OpenWindow(1, 0, 0, 800, 600, #PB_Window_SystemMenu , "hello" )
WindowID = WindowID(1)
OpenWindowedScreen(WindowID, 0, 0, 800, 600, 1, 0, 0)
; on fait des sprites pour remplacer le plot qui est moin beau !!
For t=1 To 200
CreateSprite(t, 10, 10 )
StartDrawing(SpriteOutput(t) )
Circle(5, 5, 5 ,RGB(255,255,255))
StopDrawing()
Next t
AngleX.f = 0
AngleY.f = 0
AngleZ.f = 0
FontID = LoadFont(0, "tahoma", 8, #PB_Font_HighQuality)
SetFrameRate(60)
t=1
;BOUcle
Repeat
AngleX + 0.5
AngleY + 0.5
AngleZ + 0.5
StartDrawing(ScreenOutput())
DrawingFont(FontID)
;Tracer de la ligne 1
Ligne(200,0,AngleX,AngleY)
Line(250,250,coord\x,coord\y,RGB($F7,$EF,$08))
;Plot( 250 + coord\x,250 + coord\y,RGB($1B,$3E,$E4)) ;Normalement le point qui devrait faire un cercle
StopDrawing()
t+1:If t=200:t=1:EndIf
DisplaySprite(t,coord\x+250,coord\y+250) ; et hop un sprite a la place de plot !!
; GROSSE ARNAQUE !!!!!!!!
FlipBuffers()
StartDrawing(ScreenOutput())
Circle(255, 255, 195,RGB(0,0,0)) ; ceci est une grosse arnaque , mais faut pas le dire
StopDrawing()
; ClearScreen(0, 0, 0);A enlever sa fait un jolie effet :) ; bem moi je l'ai retiré !!!
Event=WindowEvent()
Delay(1)
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)Or Event=#PB_Event_CloseWindow
Dernière modification par Backup le ven. 20/août/2004 11:04, modifié 1 fois.
Oliv ==> Mais je le remercie car sa ma étais un peu utile mais bon le c++ et moi
Dobro ==> Génial ton code ,merci !!! C'EST PAS BIEN DE TRICHER
Chris ==>Bah non car on oublie les lettre en majuscule c'est sa qui nous fait tromper ^^
En tout cas merci les gars et j'attend encore plus d'aides (je mettrai ici mes effet!!!)
Dobro ==> Génial ton code ,merci !!! C'EST PAS BIEN DE TRICHER
Chris ==>Bah non car on oublie les lettre en majuscule c'est sa qui nous fait tromper ^^
En tout cas merci les gars et j'attend encore plus d'aides (je mettrai ici mes effet!!!)
voila une petite démo simple
les touches sont les fleches gauche et droite
Dri
les touches sont les fleches gauche et droite
Code : Tout sélectionner
InitSprite()
InitKeyboard()
OpenScreen(640, 480, 32, "")
#MAX = 100
#PLANS = 5
Dim etoile.Point(#MAX-1, #PLANS-1)
RandomSeed(ElapsedMilliseconds())
For j=0 To #PLANS-1
For i=0 To #MAX-1
etoile(i, j)\x = Random(640)
etoile(i, j)\y = Random(480)
Next i
CreateSprite(j, 1, 1)
StartDrawing(SpriteOutput(j))
Plot(0, 0, RGB(51*(j+1), 51*(j+1), 51*(j+1)))
StopDrawing()
Next j
dx = 0
Repeat
ClearScreen(0, 0, 0)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left) : dx - 1 : EndIf
If KeyboardPushed(#PB_Key_Right) : dx + 1 : EndIf
For j=0 To #PLANS-1
For i=0 To #MAX-1
x = etoile(i, j)\x + dx/(#PLANS-j)
While x<0 : x+640 : Wend
While x>=640 : x-640 : Wend
DisplaySprite(j, x, etoile(i, j)\y)
Next i
Next j
FlipBuffers(1)
Until KeyboardPushed(#PB_Key_Escape)
Dernière modification par Dr. Dri le ven. 20/août/2004 12:53, modifié 1 fois.
-
Le Soldat Inconnu
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
code de DRI
heu ! j'ai le mal de l'espace la !!
heu ! j'ai le mal de l'espace la !!
Code : Tout sélectionner
InitSprite()
InitKeyboard()
OpenScreen(640, 480, 32, "")
#MAX = 100
#PLANS = 5
Dim etoile.POINT(#MAX-1, #PLANS-1)
RandomSeed(ElapsedMilliseconds())
For j=0 To #PLANS-1
For i=0 To #MAX-1
etoile(i, j)\x = Random(640)
etoile(i, j)\y = Random(480)
Next i
CreateSprite(j, 1, 1)
StartDrawing(SpriteOutput(j))
Plot(0, 0, RGB(51*(j+1), 51*(j+1), 51*(j+1)))
StopDrawing()
Next j
dx = 0
Repeat
ClearScreen(0, 0, 0)
ExamineKeyboard()
; If KeyboardPushed(#PB_Key_Left) : dx - 1 : EndIf
; If KeyboardPushed(#PB_Key_Right) : dx + 1 : EndIf
amplitude=10
angle+1
dx + Sin(angle*2*31415926/50)*amplitude
For j=0 To #PLANS-1
For i=0 To #MAX-1
x = etoile(i, j)\x + dx/(#PLANS-j)
While x<0 : x+640 : Wend
While x>=640 : x-640 : Wend
DisplaySprite(j, x, etoile(i, j)\y)
Next i
Next j
FlipBuffers(1)
Until KeyboardPushed(#PB_Key_Escape)