je viens de commencer un jeux c'est un petit Shoot'Em Up

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

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

Message par microdevweb »

@Micheao,

Je te rassure moi non plus, la trigono c'est pas ma force. Javais du demandé pour un autre projet
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

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

Message 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)
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

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

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

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

Message par Micheao »

Merci mais un peu complexe pour ma part
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

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

Message 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.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

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

Message par Micheao »

Pour le moment je met de coté ce jeux
car je suis entrain le tuto de microdevweb du jeu Asteroid
Répondre