|
|
|
|
|
|
|
Dernière mise à jour : 04 Novembre 2000
![]()

![]()
Votez pour ce site au WebOrama
Collision
et zones transparentes (Damien Ferrey)
Modifier
la palette d'une surface ou d'un TXDib
How to change the Palette of a surface or a TDXDib
Comment
jouer plusieurs sons en même temps
How to play many sounds in the same time
Comment
créer une nouvelle "Surface"
How to create a new "surface"
![]()
Modifier
une Image d'un TDXImageLib en cours d'execution (Damien Ferey)
Pour modifier une image d'un
TDXImageList en cours d'éxecution (si par exemple on modifie un TBitmap pendant
l'application et qu'on souhaite l'assigner à un TDXImageList), Il ne suffit
pas de faire un simple Assign, et la ligne suivante est insuffisante: DXImageList.Items[0].Picture.Bitmap.Assign(MBitmap);
Si on fait un simple Assign, les changements
ne sont pas pris en compte. La seule manière de faire prendre en compte les
changements est de faire appel à la méthode Restore: DXImageList.Items[0].Picture.Bitmap.Assign(MBitmap);
DXImageLisT.Items[0].Restore;
For modify a TDXImageList in
execution (Like assign a TBitmap) you must do
DXImageList.Items[0].Picture.Bitmap.Assign(MBitmap);
But this line doesn't work, if you want
apply change you must call Restore function :
DXImageList.Items[0].Picture.Bitmap.Assign(MBitmap);
DXImageLisT.Items[0].Restore;
Collision
et zones transparentes (Damien Ferey)
Si vous utiliser un TDXSpriteEngine, vous savez que la gestion des collisions entre les TSprite est très simple, il suffit de faire un appel à la méthode Collision et écrire un gestionnaire DoCollision. En revanche, si l'image de votre sprite contient des zones transparentes, celles-ci sont considérées par défaut dans la collision des 2 sprite, ce qui peut aboutir parfois à des situations surprenantes: si les 2 sprite en collision ont une zone transparente assez large, on verra 2 sprite éloignés exploser, car le TDXSpriteEngine considérera que la collision a eu lieu. Pour éviter ce genre de désagréments, on peut forcer le TDXSpriteEngine à ne prendre en compte que les zones qui contiennent une image, en mettant la propriété PixelCheck des TSprite sur true à leur création.
Modifier
la palette d'une surface ou d'un TDXDib
How to change the Palette of a surface or a TDXDib
Pour modifier la palette d'une surface ou d'un TDXDib, c'est très simple. Pour cela, il faut utilier la propriété COLORTABLE comme ceci :
If you want to change the palette of a surface or a TDXDib, you must use ColorTable property like this :
Dxdraw.surface.colortable[indexCouleur].rgbred:=255;
Dxdraw.surface.colortable[indexCouleur].rgbgreen:=255;
Dxdraw.surface.colortable[indexCouleur].rgbblue:=255;
Dxdraw.surface.updatepalette;
Et voilà, on vient de definir la couleur blanche pour la couleur INDEXCOULEUR.
Simple non !!!!!
This is very easy no !
Comment
jouer plusieurs sons en même temps (Gunner)
How to play many sounds in the same time
Pour jouer plusieurs son en même temps, placer le composant DXSOUND ET DXWAVELIST sur votre Form puis insérer le code suivant pour pouvoir entendre vos sons. (il faut que vous mettiez vos WAV dans un fichier dxw)
If you want to hear many sound in the same time you must insert DXSOUND and DXWAVELIST on your form and writing the following code :
dxwavelist.items.loadfromfile('soundlib.dxw');
dxwavelist.items[0].play(false);
dxwavelist.items[1].play(false);
Et voila les 2 sons joueront en même temps.
In this sample you listen 2 sounds in the same time.
Comment
créer une nouvelle "Surface"
How to create a new "surface"
Pour ajouter une surface mettez dans la clause Private ou Public (je prefaire private) :
For add a surface put in Private or Public clause :
Masurface : TDirectDrawSuface;
Ensuite Dans le DXDrawInitialize :
And in the DXDrawInitialize procedure :
Masurface:=TDirectDrawSurface.Create(DxDraw.DDraw);
Masurface.LoadFromFile('map2.bmp');
et enfin, pour l'afficher :
And for view surface :
DxDraw.Surface.Draw(posX, posY, Masurface.ClientRect,MapSurface, False);
Votez pour ce site au WebOrama

![]()

![]()