Problème avec directdraw

Signaler
Messages postés
57
Date d'inscription
vendredi 4 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
-
Bonjour
J'ai un problème avec directdraw, je suis en train de faire un jeu de mario et je charge un niveau qui est interpréter dans mon application qui charge tous les image avec leur propriété corecte mais dès que leur position x ou y sort de la fenetre ils disparaissent.

Je pense qu'il faut utiliser les fonctions rect mais je sais pas trop comment.
Merci

5 réponses

Messages postés
57
Date d'inscription
vendredi 4 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

Up svp
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
Bonjour

J'avais un pb équivalent, je l'ai solutionné en faisant en sorte que l'orsque une image atteint le bord de rogner l'image à afficher, cela fonctionne, mais si tu veux le code (il faudras que je parte avec tous mon matos de spéléo pendant un moment) il te suffit de demander.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
57
Date d'inscription
vendredi 4 novembre 2005
Statut
Membre
Dernière intervention
9 avril 2008

Je suis en train d'essayer ALGORYTHME DE CLIPPAGE D'IMAGE DANS DIRECTDRAW 7 (COMPTATIBLE VC++ 6 ET VB 6)

http://vbfrance.com/codes/ALGORYTHME-CLIPPAGE-IMAGE-DANS-DIRECTDRAW-COMPTATIBLE-VCPLUSPLUS-VB_29932.aspx

Mais si tu aurais un bout de code à me donner pour gérer le rognage d'image lorsque qu'il dépasse de l'écran je t'en serais reconnaissant.
Merci.
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
Bonjour

Je vais voir si j'ai cela en stock (ce soir).

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
Bonjour

Voila ce que j'ai retrouvé :

Public Sub PaintSprite(Sprite As
DirectDrawSurface7, ByVal X As Long, ByVal Y As Long, Optional ByVal
Width As Long 64, Optional ByVal Height As Long 64)
Dim X1 As Long
Dim Y1 As Long    If X < 0 Then X1 0 Else X1 X    If Y < 0 Then Y1 0 Else Y1 Y
    If X + Width > 799 Then Width = 799 - X + 1  'Condition
    If Y + Height > 599 Then Height = 599 - Y + 1  'Condition
Dim rSprite As RECT    If X < 0 Then rSprite.Left Abs(X) Else rSprite.Left 0    If Y < 0 Then rSprite.Top Abs(Y) Else rSprite.Top 0
    rSprite.Bottom = Height 'Y + Height
    rSprite.Right = Width 'X + Width
    Call BackBuffer.BltFast(X1, Y1, Sprite, rSprite, DDBLTFAST_SRCCOLORKEY Or DDBLTFAST_WAIT)
End Sub

Utilisation :
PaintSprite Image,PositionX,PositionY,TailleX,TailleY

Si ta résolution est différente de 800*600, il faut changer les conditions des 2 If (commentés 'Condition)

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site