Page 2 sur 2

Re: je viens de commencer un jeux c'est un petit Shoot'Em U

Publié : lun. 09/nov./2015 17:00
par microdevweb
@Micheao,

Je te rassure moi non plus, la trigono c'est pas ma force. Javais du demandé pour un autre projet

Re: je viens de commencer un jeux c'est un petit Shoot'Em U

Publié : lun. 09/nov./2015 17:03
par Micheao
le probléme c'est que pas compris certaines de ton code :

Code : Tout sélectionner

 Velocity.i
 Angle.i

\Angle=Random(160,130)
      \Velocity=1

\X=\X-Cos(Radian(\Angle)) *\Velocity
                  \Y=\Y+Sin(Radian(\Angle)) *\Velocity
                  If (\X-(SpriteWidth(#Invader)*2))>ScreenWidth() Or  (\Y-(SpriteHeight(#Invader)*2))>ScreenHeight()
                        \X=0
                        \Y=-100
                  EndIf
                  If \X>=(0-SpriteWidth(#Invader)) And \X<=(ScreenWidth()+SpriteWidth(#Invader))
                        If \Y>=(0-SpriteHeight(#Invader)) And \Y<=(ScreenHeight()+SpriteHeight(#Invader))
                              DisplayTransparentSprite(#Invader,\X,\Y)

Re: je viens de commencer un jeux c'est un petit Shoot'Em U

Publié : lun. 09/nov./2015 22:37
par microdevweb
Voila une code de teste avec différents angles, la tu a la formule à toi de jouer avec suivant l'angle que tu veux

Code : Tout sélectionner

; X,Y= le départ du point
; X2,Y2 = l'arrivée du point
OpenWindow(0,0,0,800,600,"teste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CanvasGadget(0,0,0,800,600)
StartDrawing(CanvasOutput(0))
X=400 ; le centre du canvas
Y=300 ; le centre du canvas
;Teste avec un angle de 90° sur une distance de 100 pxl en vert
X2=X+Cos(Radian(90))*100
Y2=Y+Sin(Radian(90))*100
LineXY(X,Y,X2,Y2,$00FF00)
;Teste avec un angle de 30° sur une distance de 100 pxl en rouge
X2=X+Cos(Radian(30))*100
Y2=Y+Sin(Radian(30))*100
LineXY(X,Y,X2,Y2,$0000FF)
;Teste avec un angle de 60° sur une distance de 100 pxl en bleu
X2=X+Cos(Radian(60))*100
Y2=Y+Sin(Radian(60))*100
LineXY(X,Y,X2,Y2,$FF901E)
;Teste avec un angle de 45° sur une distance de 100 pxl en maron
X2=X+Cos(Radian(45))*100
Y2=Y+Sin(Radian(45))*100
LineXY(X,Y,X2,Y2,$3F85CD)
StopDrawing()
Repeat
      Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
Donc en gros pour ton jeu tu calcul la nouvelle position comme suit

positionX=positionX+Cos(Radian(Angle_du_vaiseau))*Distance_a_parcourir_a_chaque_cycle
positionY=positionY+Sin(Radian(Angle_du_vaiseau))*Distance_a_parcourir_a_chaque_cycle

Et tes vaisseaux ennemi se déplaceront suivant un angle donné, n'oublie pas non plus de faire un RotateSprite(#Sprtie,Angle) pour que ton sprite donne une impression de réalisme

Maintenant il est également possible de faire en sorte que le vaisseau ennemi vise le vaisseau du joueur, mais je ne sais pas si c'est ton souhait.

Note: pour les jeux ce genre de formule est indispensable

Re: je viens de commencer un jeux c'est un petit Shoot'Em U

Publié : mar. 10/nov./2015 10:21
par Micheao
Merci mais un peu complexe pour ma part

Re: je viens de commencer un jeux c'est un petit Shoot'Em U

Publié : mar. 10/nov./2015 10:35
par microdevweb
@Micheao,

Désolé mais je ne voie pas commet mieux t'expliquer, retient simplement que tu n'a pas besoins de comprendre la formule, c'est de la trigono et donc ce sont des formules que l'on utilise telle quel. Tu dois juste l'appliquer c'est tout.

Re: je viens de commencer un jeux c'est un petit Shoot'Em U

Publié : jeu. 19/nov./2015 17:53
par Micheao
Pour le moment je met de coté ce jeux
car je suis entrain le tuto de microdevweb du jeu Asteroid