RotateSprite3D(j(Ordre(4),i), 269, 0)

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

RotateSprite3D(j(Ordre(4),i), 269, 0)

Message par kelly »

Et oui, une rotation de 0 degré = rotation 269 sous PB... Illogique et angle meme pas rond !!
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

8O

tu pourrais illustrer par un exemple ce que tu dis ? je ne comprends pas , j'ai testé par curiosité, et je ne vois rien d'anormal .

Code : Tout sélectionner

InitSprite()
InitKeyboard()
InitSprite3D() 
OpenScreen(800,600,32,"Tut Sprite3D et Souris")

;Creation d'une texture
CreateSprite(0,64,64,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(0))
Line(SpriteWidth(0)/2,0,SpriteWidth(0)/2,SpriteHeight(0),RGB(255,255,0))
Line(SpriteWidth(0)/2,0,-SpriteWidth(0)/2,SpriteHeight(0),RGB(255,255,0))
Line(0,SpriteHeight(0)-1,SpriteWidth(0),0,RGB(255,255,0))
FillArea(SpriteWidth(0)/2,SpriteHeight(0)/2,RGB(255,255,0),RGB(255,155,0))
Circle(32,6,3,RGB(255,0,0))
StopDrawing()


CreateSprite3D(0,0)
; Sprite3DQuality(1)

Repeat
    FlipBuffers()
    ClearScreen(0,0,100)
    ExamineKeyboard()
    If KeyboardReleased(#PB_Key_F1)
    	Angle - 10
    ElseIf KeyboardReleased(#PB_Key_F2)
    	Angle + 10
    EndIf 
   
    ;Affiche le sprite 3D
    If Start3D()
    	DisplaySprite3D(0, 400, 300)
    	RotateSprite3D(0,Angle,0)
    	Stop3D()
	EndIf    
	
	StartDrawing(ScreenOutput())
	DrawingMode(1)
	FrontColor(255,255,255)
	Locate(0,0)
	DrawText("Touche [F1] décrémente l'angle")
	Locate(0,20)
	DrawText("Touche [F2] incrémente l'angle")
	Locate(0,40)
	DrawText("Angle : " + Str(Angle))
	StopDrawing()
	    
Until KeyboardPushed(#PB_Key_Escape)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Et bien, tu n'as qu'a inserer un "Delay(3000)" entre ton flipbuffer et ton clearscreen et tu verras l'original et la copie :
La copie a tourné malgré son degré 0 !
la copie est tordue ! (bien plus visible avec un carré)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

non chez moi ça marche bien !!


d'autre par la deformation est normal ! car les sprite purebasic sont des images !! pas des objets !!

si tu veut un sprite parfait pendant la rotation , il faut lui passer les 8 images precalculées , et afficher ces images en temps voulu !!
c'est plus lourd a gerer, mais ce sera parfait pour eviter les distortions !

d'ailleurs cette technique est employé dans tout les jeux, ou le personnage
est muni d'une animation !! :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Ici pas de problème.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Avec le triangle ou avec un carré, pas de problème chez moi non plus. :?
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

?????
Vous voyez comme moi le triangle point a droite, non ??
Moi, je vois ca mais l'original est un triangle pointe en l'air !!
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Image

Au départ, il est comme ça, après une rotation complète dans un sens comme dans l'autre, il est comme ça aussi, et si on le tourne de 10 degrés dans un sens ou dans l'autre et qu'on ramène à 0, il est toujours comme ça.

Bref, quelle que soit la rotation qu'on lui applique, quand on le remet à 0, il reste conforme à l'original : Pointe en haut! :?

Tu devrais peut-être faire faire un quart de tour à ton moniteur :lol:

Envoie une capture d'écran, parce que je ne vois que deux solutions.
- Soit il n'y a que chez toi que ça ne fonctionne pas.
- Soit on n'a pas compris ce que tu voulais dire

Rajoute ces lignes à la fin de ton code, juste avant le Until.

Code : Tout sélectionner

  If KeyboardPushed(#PB_Key_F12)
    UsePNGImageEncoder()
    ScreenShot = GrabSprite(#PB_Any,0,0,800,600,0)
    SaveSprite(ScreenShot,"C:\Image.png",#PB_ImagePlugin_PNG)
  EndIf 
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Et bin m.... ZUT !! Comment ca se fait que moi, avec un degré 0, je le vois pointe a droite ??????????????????????

http://xmas.free.fr/degre0.bmp
Dernière modification par kelly le lun. 31/oct./2005 13:11, modifié 2 fois.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

kelly a écrit :Et bin m.... ZUT !! Comment ca se fait que moi, avec un degré 0, je le vois pointe a droite ??????????????????????
Ben je ne sais pas, mais manifestement, t'as comme un problème :lol:
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

C''est ce genre de truc que je deteste. Il faut TJR que je choppe des bugs !!
J'espere qu'il y aura un fixe PB !!

ps : j'ai une radeon 9000 pro
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Tes pilotes (carte graphique, directx) doivent être hs! C'est incompréhensible ce truc?! Ou alors tu as une ancienne version de Ogre?!
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Les sprite3D ne passent pas par ogre, je vais tester le machin
[edit]
ati rage pro 128 -> nickel

Dri
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Mon angle de 269° = votre angle de 0° ! =(
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Essayons quelque chose : est ce que avec la compilation du code de comtois sur MA machine, vous voyez le triangle comme moi a l'angle 0 ?
reponse : http://xmas.free.fr/Angle0.exe

alors ?
Répondre