FAQ PureBasicConsultez toutes les FAQ

Nombre d'auteurs : 7, nombre de questions : 68, dernière mise à jour : 3 janvier 2013  Ajouter une question

 

Bienvenue dans la F.A.Q. PureBasic !

Celle-ci va tenter de répondre aux questions les plus fréquemment posées sur le langage PureBasic et tous ses outils de programmation. Si elle n'a pas pour vocation de répondre à toutes les interrogations possibles, elle reste une bonne base de connaissances sur le PureBasic, et ne demande qu'à être enrichie par vos expériences personnelles.

Bien entendu, malgré toute l'attention qui a pu être portée à cette F.A.Q., des erreurs ont toujours pu s'y glisser. Prenez donc toutes les précautions qui s'imposent avant d'essayer un exemple.

Nous vous souhaitons une bonne lecture ! Et n'oubliez pas qu'en cas de problème, vous pourrez toujours poser votre question sur le forum PureBasic !

L'équipe PureBasic de Developpez.


SommaireSprite / Sprite3D (2)
précédent sommaire suivant
 

Insérez le code suivant dans votre programme. La fonction SetColor() permet de modifier la couleur d'un sprite3D.

Code purebasic : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
; DirectX9 
Structure D3DTLVERTEX 
  x.f 
  y.f 
  z.f 
  rhw.f 
  Color.l 
  tu.f 
  tv.f 
EndStructure 
 
Structure PB_DX9Sprite3D 
  TexRes.I                    ; TexRes 
  Vertice.D3DTLVERTEX[4]      ; The 4 vertices for the rectangle sprite 
  TmpVertice.D3DTLVERTEX[4]   ; The 4 vertices for the rectangle sprite 
  Width.l                     ; width set with ZoomSprite3D() 
  Height.l                    ; height set with ZoomSprite3D() 
  RealWidth.l 
  RealHeight.l 
  Angle.f 
  Transformed.l 
EndStructure 
 
Procedure SetColor(sprite3d, Color.l) 
  Protected *Sprite3D.PB_DX9Sprite3D = IsSprite3D(sprite3d) 
  With *Sprite3D 
    \Vertice[0]\Color = Color.l 
    \Vertice[1]\Color = Color.l 
    \Vertice[2]\Color = Color.l 
    \Vertice[3]\Color = Color.l 
  EndWith 
EndProcedure

Mis à jour le 30 mars 2011

La fonction TformSprite3D() permet d'effectuer des miroirs verticaux / horizontaux.
Pour en savoir plus sur les paramètres de SetRenderState(), lisez la doc msdn.

Code purebasic : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
;Disable Backface Culling - must be done AFTER "OpenScreen" 
Define pd3d.IDirect3DDevice9 
Start3D() 
  EnableASM 
  !extrn _PB_Screen_Direct3DDevice 
  !MOV dword EAX, [_PB_Screen_Direct3DDevice] 
  !MOV dword [v_pd3d],EAX 
  DisableASM 
  pd3d\SetRenderState(22,1) 
  pd3d\SetRenderState(7,0) 
Stop3D() 
 
;0=No Flip, 1=Horiz, 2=Vert, 3=Both 
Procedure TformSprite3D(SpriteID.l,sizeX.i,sizeY.i,flipmode.i=0) 
  Select flipmode 
    Case 0 
      TransformSprite3D(SpriteID,0,0,sizeX,0,sizeX,sizeY,0,sizeY) 
    Case 1 
      TransformSprite3D(SpriteID,sizeX,0,0,0,0,sizeY,sizeX,sizeY) 
    Case 2 
      TransformSprite3D(SpriteID,0,sizeY,sizeX,sizeY,sizeX,0,0,0) 
    Case 3 
      TransformSprite3D(SpriteID,sizeX,sizeY,0,sizeY,0,0,sizeX,0) 
  EndSelect 
EndProcedure

Mis à jour le 30 mars 2011

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2018 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Responsable bénévole de la rubrique PureBasic : comtois -