AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 Extreme physics tire

Aller en bas 
3 participants
AuteurMessage
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

Extreme physics tire Empty
MessageSujet: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 11:28

Bon voila j'ai des caisse dynamic et je voudrais que lorsque je tire dessus cela les bouges
Dans mon hero j'ai sa pour le tire
Code:

if mouse_check_button(mb_left)
{
instance_create(x+cos(aim_angle*pi/180)*75,y+75-sin(aim_angle*pi/180)*75,obj_bullet)
}
Dans ma balle
Code:

create
{
speed=20
direction = obj_hero.aim_angle+random(6)-2;
}
step
{
image_angle = direction;
}
J'avais essayé un truc mais cela ne marchait pas
Merci d'avance super
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 12:03

1) a ta place, je donnerais une cadence à tes tirs, là il y en a 30/secondes, ça fait beaucoup
2) pas la peine de s'embêter avec pi, pour la position de création de la balle, il suffit de faire :
x+lengthdir_x(75,aim_angle),y+lengthdir_y(76,aim_angle)
ces deux fonctions donnes les coordonnées (x,y) d'une coordonnée polaire (longueur, angle)

ensuite, pour la balle, au lieu de réassigner une direction dans le create, je trouve (personnellement) plus simple de le faire dans l'action de tir du héros :

Code:
if mouse_check_button(mb_left)
{
with(instance_create(x+lengthdir_x(75,aim_angle),y+lengthdir_y(76,aim_angle),obj_bullet))

{
direction=other.aim_angle+random(6)-3
speed=20
}
}
le with permet d'executer une action pour l'instance mise entre parenthèse ( or le instance_create retourne l'id de l'sintance crée, donc on peux racourcir comme j'ai écrit)

3)Pour en venir à ta question, il faut nous dire quel moteur physique tu utilises, ou si tu en a fais un toi même. Dans le cas d'un moteur existant, cherche une fonction permettant d'assigner un vecteur force, ou d'ajouter une force, ou encore une vitesse (motion) à un objet.

_________________
Extreme physics tire Control-commentTous les icones de gm utilisables sur le cbna ICI  Extreme physics tire Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 13:02

Je pensais que mon titre parlait assez de luis même,j'utilise extréme physics 2.1 et il est donc assez compliqué le mieux serais que vous me donniez le code mais que vous m'expliquiez le code.
1)Je vais le faire je ne l'ai juste pas encore programmé
2) :nezrouge: Qu'est ce que je suis ***

Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 13:55

oups, 'avait pas vu le titre "-_-
C'est effectivement clair :p

3)
function ep_body_apply_impulse_relative(world_id;body_id;relativex;relativey;xforce;yforce;torque;ignoremass;awake)

Cette fonction permet d'ajouter une impulsion à un objet. C'est pas à proprement parler un vecteur force, mais ça devrait donner l'effet que tu recherches.
Quant aux arguments, j'ai jamais utilisé ce moteur, mais je devine :
world_id : identifiant du 'world', configuré au début
body_id : identifiant du corps physique de ton objet
relativex : position x du point d'application, selon l'objet
relativey : position y du point d'application, selon le référentiel objet
xforce : composante en abcisse de la force
yforce : composante en ordonnée blablabla
torque : moment de l'impulsion = force de rotation
ignoremass : si on ignore la masse dans les calculs (je pense qu'il faut mettre sur false)
awake : propre au moteur, je sais pas ce que ça signifie. Surement si l'objet doit être mis au repos ou pas, un truc dans le genre.

bref, un truc genre ep_body_apply_impulse_relative(world_id,id,obj_bullet.x-x,obj_bullet.y-x,obj_bullet.hspeed,obj_bullet.vspeed,0,0,1)
bien sur, faut encore modifier la position relative selon l'angle de l'objet, mais je te laisse faire les calculs, c'est de la géométrie basique :p

et si jamais, la liste de toutes les fonctions :
Spoiler:

_________________
Extreme physics tire Control-commentTous les icones de gm utilisables sur le cbna ICI  Extreme physics tire Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 14:10

:gniah:
Bon se code serais a placer où?
Sinon je peux t'envoyer mon jeux en mp
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 14:12

le code est à placer dans la collision entre la balle et la caisse.

_________________
Extreme physics tire Control-commentTous les icones de gm utilisables sur le cbna ICI  Extreme physics tire Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 14:28

moi je serait vous j'aurais fait une balle en sphere dynamics, c'est moins compliqué
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 17:01

Bon la balle reste sur place
obj_hero
Code:

if mouse_check_button(mb_left)
{
with instance_create(x+cos(aim_angle*pi/180)*75,y+75-sin(aim_angle*pi/180)*75,obj_bullet)
{
speed=20
direction = obj_hero.aim_angle+random(6)-2;
}
}

obj_bullet
Code:

create
{
body = ep_body_create_dynamic(global.world,true);
shape1 = ep_shape_create_circle(global.world,body,0,-0.5,-0.5,0,1);
ep_shape_set_collision(global.world,body,shape1,collide1a,collide1b,0);
ep_shape_set_material(global.world,body,shape1,1,0,0,0);
ep_body_set_mass(global.world,body,100);
ep_body_set_damping(global.world,body,0.05,0.05);

physics_object_set(body);
}
step
{
image_angle = direction;
}
End step
{
physics_object_update(body);
}
Collisions avec la boite qui doit bouger au contact de la balle
{
ep_body_apply_impulse_relative(global.world,body,x,y,100,100,100,true,true)
}

le sprite de la balle est un rectangle 14*3
Revenir en haut Aller en bas
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 17:31

Finalement je commence a réussir a faire marcher le truc mais mes balles parte trop vite(il n'y aucun speed) je ne leur image_angle ne change pas

Si j'enlève la fonction physics_object_update(body) l'image angle est bonne mais les balles restes sur place

edit :j'ai mis dans le step speed=10 et sa marche sauf l'or de la collisions avec le bloc cela ne marche pas très bien donc si quelqu'un pouvait me débuggé le truc
2 fois sur 3 sa fait rien
1 fois sur 3 le bloc par en l'air
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 19:56

en fait, ca ne sert absolument a rien de mettre speed et imge_angle=direction avec ca :
Code:
body = ep_body_create_dynamic(global.world,true);
shape1 = ep_shape_create_circle(global.world,body,0,-0.5,-0.5,0,1);
ep_shape_set_collision(global.world,body,shape1,collide1a,collide1b,0);
ep_shape_set_material(global.world,body,shape1,1,0,0,0);
ep_body_set_mass(global.world,body,100);
ep_body_set_damping(global.world,body,0.05,0.05);
il faut par le biais des fonctions du moteur physique trouver l'angle et les coordonnées du body (je ne l'ai pas le moteur mais je suppose que c'est ep_body_get_angle() et ep_body_get_position() )
et dans hero :
Citation :
if mouse_check_button(mb_left)
{
with instance_create(x+cos(aim_angle*pi/180)*75,y+75-sin(aim_angle*pi/180)*75,obj_bullet)
{
speede=20
dir = obj_hero.aim_angle+random(6)-2;
}
}
et dans bullet, adapte la force avec ces variable (avec la fonction que ta passer mad_doc)
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire EmptyMer 18 Aoû 2010 - 20:24

Ah désolé j'ai oublié de dire que j'avais réussi je passerais mon code demain
Revenir en haut Aller en bas
Contenu sponsorisé





Extreme physics tire Empty
MessageSujet: Re: Extreme physics tire   Extreme physics tire Empty

Revenir en haut Aller en bas
 
Extreme physics tire
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» L'horizontal speed avec Extreme physics
» Extreme Copter v1.00
» Cliqueur Extrème
» TUTO extrème débutant
» physics particle

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: