Page 1 sur 2
Displaytranslucidesprite
Publié : ven. 20/août/2004 15:22
par garzul

Rahhhh je met sa dans mon code mais apparemment sa me ralentie ma ligne qui tourne je voudrais savoir i quelq'un a un moyen d'y remedier si oui comment ? J'ai oublier le code ^^ tenez ?
Code : Tout sélectionner
;Procedure du dessin
Procedure Ligne(x.f,y.f,anx.f,any.f)
Protected x1.f,y2.f,s1.f,d1.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(60)
;Création des fichier . pak
;- .PAK
CreatePack("Demos.pak")
AddPackFile("Texte1.bmp",9)
ClosePack()
OpenPack("Demos.pak")
CatchSprite(1,NextPackFile())
ClosePack()
;Texte
Procedure Texte()
DisplayTranslucideSprite(1, 250, 250, 255)
intense + 1
If intense = 255
inse - 1
EndIf
EndProcedure
;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\x,coord\y,RGB($28,$18,$D7))
StopDrawing()
texte()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Pour que sa marche créé une image .
Publié : ven. 20/août/2004 16:17
par Backup
ALERTE !!!
this variable doesn't have a 'structure'
met ton code en entier ça ira mieu pour t'aider !!

Publié : ven. 20/août/2004 16:20
par garzul

DSL dobrro Tien regarde j'ai fait sa mais ya toujour un probléme au niveau de la ligne qui tourne .
Code : Tout sélectionner
;Coder par garzul le 20 aout a 4 heure 31
;Variable de la démos
jeuxtime = 300
affichagetexte1 = 0
affichagetexte2 = 1
affichagescene1 = 1
;Structure
Structure Ligne
x.f
y.f
EndStructure
Global coord.Ligne,intense,affichagetexte2,affichagetexte1
;Procedure du dessin
Procedure Ligne(x.f,y.f,anx.f,any.f)
Protected x1.f,y2.f,s1.f,d1.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(60)
;Création des fichier . pak
;- .PAK
CreatePack("Demos.pak")
AddPackFile("Texte1.bmp",9)
AddPackFile("Texte2.bmp",9)
ClosePack()
OpenPack("Demos.pak")
CatchSprite(1,NextPackFile())
CatchSprite(2,NextPackFile())
ClosePack()
;Texte
Procedure Texte()
If affichagetexte1 = 0
affich1 = DisplayTranslucideSprite(1,360 , 360, intense)
EndIf
If affichagetexte2 = 0
affich = DisplayTranslucideSprite(2,360 , 360, intense)
EndIf
EndProcedure
;BOUCLE
intense = 0
Repeat
ClearScreen(0, 0, 0);A enlever sa fait un jolie effet :)
;Effet de l'intensite
intense + 20
If intense = 260
EndIf
;Effet de disparition et d'affichage des texte
jeuxtime = jeuxtime - 10
If jeuxtime < 0
intense - 40
affichagetexte2 = 0
affichagetexte1 = 1
EndIf
If affichagetexte2 = 0 And intense = 0
affichagetexte2 = 1
affichagetexte1 = 1
EndIf
; fin de l'effet
; passage a la scene 1
If affichagetexte2 = 1 And affichagetexte1 = 1
affichagescene1 = 0
EndIf
AngleX + 0.01
AngleY + 0.09
AngleZ + 0.09
If affichagescene1 = 0
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\x,coord\y,RGB($28,$18,$D7))
StopDrawing()
EndIf
texte()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Publié : ven. 20/août/2004 17:58
par Backup
je peut pas t'aider je sais pas ce que tu fait avec ça
Code : Tout sélectionner
; CreatePack("Demos.pak")
; AddPackFile("Texte1.bmp",9)
; AddPackFile("Texte2.bmp",9)
; ClosePack()
; OpenPack("Demos.pak")
; CatchSprite(1,NextPackFile())
; CatchSprite(2,NextPackFile())
; ClosePack()
si j'active ça j'ai une erreur ligne 52 !!
Publié : ven. 20/août/2004 18:26
par garzul

C'est normal dobro tien je t'ai mis la source et les deux image tu les decompresse et zous tu me degage la poussiere qui fait planter lol

non tien je t'ai mis la source et les deux image c'est pour sa que sa plantais
http://consolpcgame.ifrance.com/consolp ... bro%20.rar
Publié : ven. 20/août/2004 18:45
par Backup
bon ok !!
et tu veux quoi exactement ?

Publié : ven. 20/août/2004 18:48
par garzul

Bah que la ligne ne rame plus quelle sit aussi fluide qu'avant (je suis pas chiant non

) héhé
Publié : ven. 20/août/2004 19:07
par garzul

Mechant dobro tien prend sa lol

et sa

oula je vais me faire engueuler

Lol je rigole n'empeche c'est marrant ce site ou ya plein de smyley ACCLAMEZ MOI

LOL

si vous en voulez d'autre allez sur ce site
http://membres.lycos.fr/bluesmilies/ Bon alors pour mon code c'est simple je ne veut plus que sa rame au niveau de la ligne tout en laissant le displaytranslucidesprite mais a mon avis c'est impossible en tout cas si vous avez une idéés aidez moi ^^

@++

Publié : ven. 20/août/2004 19:11
par Backup
il semblerai qu'il exiqte un bug avec la fonction
Code : Tout sélectionner
StartSpecialFX()
affich = DisplayTranslucideSprite(2,360 , 360, intense)
StopSpecialFX()
qui ne serai pas du a toi mais a Purebasic !!
en principe StartSpecialFX() est sensé accelerer l'affichage de
DisplayTranslucideSprite
or ça fige tout !!! tres curieux !!
dans le code de garzul
il affiche une ligne niquel tant que l'on utilise pas DisplayTranslucideSprite
si l'on utilise DisplayTranslucideSprite
l'affichage d'une simple ligne ralentit mortel !!
je pense a un gros bug du pure !!
j'aimerai bien avoir l'avis des pros la dessus !!

Publié : ven. 20/août/2004 19:18
par Backup
Garzul essai avec les sprite 3D
l'equivalent de DisplayTranslucideSprite(#Sprite, x, y, Intensité)
c'est DisplaySprite3D(#Sprite3D, x, y, Transparence)
Publié : ven. 20/août/2004 19:23
par garzul

Dobro je sais j'ai essayer en c++ et sa fait pareil ? Bizare et comment je peux faire pour le mettre en sprite 3d ?
Publié : ven. 20/août/2004 19:25
par garzul

excuse dobro l'ecran avait effacer un peu ton message mais bon regarde en c++ sa fait pareil bizarre j'ai essayer de creer une image qui rebondi en c++ avec de la transarence et sa fait pareil sa doit etres soit l'opengl mais c'est pas pure basic ?

Publié : ven. 20/août/2004 19:33
par Backup
tien j'ai passé ton code en version sprite 3D
Code : Tout sélectionner
;Coder par garzul le 20 aout a 4 heure 31
;Variable de la démos
jeuxtime = 300
affichagetexte1 = 0
affichagetexte2 = 1
affichagescene1 = 1
;Structure
Structure Ligne
x.f
y.f
EndStructure
Global coord.Ligne,intense,affichagetexte2,affichagetexte1
;Procedure du dessin
Procedure Ligne(x.f,y.f,anx.f,any.f)
Protected x1.f,y2.f,s1.f,d1.f
coord\x = x1 + x * Sin(any*2*3.1415926/50)
coord\y = y2 - x * Cos(any*2*3.1415926/50)
; par Dobro
; effet lazer
; coord\x = x1 + x * Sin(any*2*3.1415926/50)
; coord\y = y2 - x * Cos(any)
; effet roue qui tourne
; coord\x = x1 + x * Sin(any*2*3.1415926/3.12)
; coord\y = y2 - x * Cos(any*2*3.1415926/3.12)
; * Cos(anx)
EndProcedure
;initialisation des cmposant
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitSprite3D() =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(60)
;Création des fichier . pak
; ;- .PAK
; CreatePack("Demos.pak")
; AddPackFile("Texte1.bmp",9)
; AddPackFile("Texte2.bmp",9)
; ClosePack()
; OpenPack("Demos.pak")
; CatchSprite(1,NextPackFile())
; CatchSprite(2,NextPackFile())
; ClosePack()
LoadSprite(1, "Texte1.bmp" )
LoadSprite(2, "Texte2.bmp" )
Resultat = LoadSprite(1, "Texte1.bmp" , #PB_Sprite_Texture)
Resultat = LoadSprite(2, "Texte2.bmp" ,#PB_Sprite_Texture)
Resultat = CreateSprite3D(1, 1)
Resultat = CreateSprite3D(2, 2)
;Texte
Procedure Texte()
If affichagetexte1 = 0
Resultat = Start3D()
DisplaySprite3D(1, 360, 360, intense)
Stop3D()
EndIf
If affichagetexte2 = 0
Resultat = Start3D()
DisplaySprite3D(2, 360, 360, intense)
Stop3D()
EndIf
EndProcedure
;BOUCLE
intense = 0
Repeat
ClearScreen(0, 0, 0);A enlever sa fait un jolie effet :)
;Effet de l'intensite
intense + 20
If intense = 260
EndIf
;Effet de disparition et d'affichage des texte
jeuxtime = jeuxtime - 10
If jeuxtime < 0
intense - 40
affichagetexte2 = 0
affichagetexte1 = 1
EndIf
If affichagetexte2 = 0 And intense = 0
affichagetexte2 = 1
affichagetexte1 = 1
EndIf
; fin de l'effet
; passage a la scene 1
If affichagetexte2 = 1 And affichagetexte1 = 1
affichagescene1 = 0
EndIf
AngleX + 1
AngleY + 1
AngleZ + 1
; AngleX + 10
; AngleY + 10
; AngleZ + 2
If affichagescene1 = 0
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\x,coord\y,RGB($28,$18,$D7))
StopDrawing()
EndIf
Texte()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Publié : ven. 20/août/2004 19:38
par Chris
Sinon, tu peux simplement essayer de modifier le code au niveau du chargement du sprite.
Code : Tout sélectionner
OpenPack("Demos.pak")
CatchSprite(1,NextPackFile(),#PB_Sprite_Memory)
CatchSprite(2,NextPackFile(), #PB_Sprite_Memory)
ClosePack()
Tu ajoutes #PB_Sprite_Memory pour charger les sprites en mémoire PC au lieu de la mémoire vidéo. Chez moi, ça fonctionne.
Publié : ven. 20/août/2004 19:40
par Backup
aaarrrg !! j'y ai pas pensé !!
je test !!
..... ouaaaa ça marche Garzul !!
ecoute le grand maitre Chris
