Bonsoir
je rencontre un petit problème avec mon code quand le boss tire son laser ne part du milieu du boss j'arrive pas à le faire partir du milieu et il suit pas le boss dans les déplacements
cela 2 jours que j'essaye de faire ça
Merci d'avance
https://www.dropbox.com/s/xt2or840gpmgi ... s.zip?dl=0
[OK]Bonsoir petit probleme de code
[OK]Bonsoir petit probleme de code
Dernière modification par Bernie le jeu. 12/mai/2016 6:28, modifié 1 fois.
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Bonsoir petit probleme de code
Tu es assez déroutant Bernie.
je ne sais pas si tu te rappelles d'un tuto que j'avais fais. Les coordonnées d'affichage x & y se situent dans le coin haut gauche du sprite.

http://www.purebasic.fr/french/viewtopi ... 81#p181881
Ce qui veux dire que pour que ton tir se trouve au milieu de ton boss il faut que tu prennes la largeur du sprite que tu divises par deux et que tu ajoutes à la position x de ton boss.
Décryptage Voila ce qui cloche dans ton code.
Tu prends bien comme point d'origine (Yeah).
Tu ajoutes la largeur de ton boss que tu as multiplié par deux moins la largeur de ton tir (on se demande pourquoi) que tu divises par deux.
D'ou ce décalage à droite. Ton bosse faisant 144 de large * 2 = 288 - la largeur de ton tir divisé par deux soit soit 2 pixels.
Ton tire se fait donc à 288 - 2 = 286 Pixels du point d'affichagede ton sprite.
Remplace dans un premier temps par et ça fonctionnera.
Tu vas voir que la position n'est pas tout àa fait la bonne. Je te laisse affiner cette position en tenant compte de la largeur du shoot.
je ne sais pas si tu te rappelles d'un tuto que j'avais fais. Les coordonnées d'affichage x & y se situent dans le coin haut gauche du sprite.


Ce qui veux dire que pour que ton tir se trouve au milieu de ton boss il faut que tu prennes la largeur du sprite que tu divises par deux et que tu ajoutes à la position x de ton boss.
Décryptage Voila ce qui cloche dans ton code.
Code : Tout sélectionner
BossTir()\Posx = Boss\Posx + SpriteWidth(#Boss)*2- SpriteWidth(BossTir()\Sprite)/2
Tu ajoutes la largeur de ton boss que tu as multiplié par deux moins la largeur de ton tir (on se demande pourquoi) que tu divises par deux.
D'ou ce décalage à droite. Ton bosse faisant 144 de large * 2 = 288 - la largeur de ton tir divisé par deux soit soit 2 pixels.
Ton tire se fait donc à 288 - 2 = 286 Pixels du point d'affichagede ton sprite.

Code : Tout sélectionner
BossTir()\Posx = Boss\Posx + SpriteWidth(#Boss)*2- SpriteWidth(BossTir()\Sprite)/2
Code : Tout sélectionner
BossTir()\Posx = Boss\Posx + SpriteWidth(#Boss)/2
Tu vas voir que la position n'est pas tout àa fait la bonne. Je te laisse affiner cette position en tenant compte de la largeur du shoot.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Bonsoir petit probleme de code
Merci falsam
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: [OK]Bonsoir petit probleme de code
En tous les cas Bernie je tiens à te féliciter pour tes progrès, le code est claire et fonctionnel.
Continue sur cette voie
Continue sur cette voie

Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: [OK]Bonsoir petit probleme de code
microdevweb a écrit :En tous les cas Bernie je tiens à te féliciter pour tes progrès, le code est claire et fonctionnel.
Continue sur cette voie
merci de ton encouragement que tu as vu c'est le niveau final de mon jeu