| Et-il possible d'établir des collision pour des particules? | |
|
|
Auteur | Message |
---|
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Et-il possible d'établir des collision pour des particules? Jeu 31 Jan 2008 - 19:37 | |
| Bonjour, j'aimerais faire l'effet d'un bloc qui s'émiettent, il vas crée des particules dans sa zone mais j'aimerais pourvoir rajouter des collisions pour rendre plus réaliste . |
|
| |
Invité Invité
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Jeu 31 Jan 2008 - 19:43 | |
| biensur si tu utilise des instance au lieu de tout mettre dans draw |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Jeu 31 Jan 2008 - 20:15 | |
| C'est a dire avec des objets? ca aurait été bien d'avoir tous de meme des particules avec colision, avec des objet, je ne pourrai pas, vu le nombre de bloc qui font cassé a la minute, mon jeu va laggé trop vite. |
|
| |
Devil37 Utilisateur confirmé: Rang *****
Messages : 1815
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Jeu 31 Jan 2008 - 20:36 | |
| Utilise des déflecteurs, mais ce n'est pas mon rayon les particules donc je ne peux pas t'en dire plus ( va voir la Bible ou l'Aide comme tu veux ) |
|
| |
Randal Utilisateur confirmé: Rang **
Messages : 446
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Sam 15 Mai 2010 - 13:20 | |
| Bonjour,
Je remonte ce topic car je n'ai pas bien compris les réponses. J'aimerais pouvoir détruire une particule si elle est en contact avec un objet.
Create: rain1 = part_system_create() part_ etc...
Step: Si rain1 est en contact avec obj_machin { détruire rain1 }
Comment procéder ? Merci par avance. |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Dim 16 Mai 2010 - 0:35 | |
| - Randal a écrit:
- Bonjour,
Je remonte ce topic car je n'ai pas bien compris les réponses. J'aimerais pouvoir détruire une particule si elle est en contact avec un objet.
Create: rain1 = part_system_create() part_ etc...
Step: Si rain1 est en contact avec obj_machin { détruire rain1 }
Comment procéder ? Merci par avance. alors tu as deux facon, la plus utile est celle de creer des instances (objects) qui ont la forme de ta particule est de faire la collision (if collision {instance_destroy()} mais tu peux aussi programmer la date de fin de vie de ta particule avec la fonction part_type_life(ind, life_min, life_max), mais la c'est compliquée la meilleur solution est la premiere ! |
|
| |
Invité Invité
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Dim 16 Mai 2010 - 14:23 | |
| - shm31 a écrit:
biensur si tu utilise des instance au lieu de tout mettre dans draw juste pour corriger une information erronée de la part d'un noob : on peut définir des collisions autant pour le moteur native de gm (une fausse collision dans ce cas) que pour les instances et les draws : http://gmc.yoyogames.com/index.php?showtopic=138220il y a un exemple de collisions de particules de gm dans le game cave engine si je ne me trompe pas. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Dim 16 Mai 2010 - 23:06 | |
| Une autre solution, c'est de faire toi même tes particules, via des stacks, queues, ou quelquechose comme ça, selon qui t'(arrange... ls_x ls_y ls_hspeed ls_vspeed ls_etc...
Avec un ensemble de liste, tu peux reproduire facilement des particules, et du coup faire des collisions. (un exemple arrive) _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Dim 16 Mai 2010 - 23:38 | |
| Et voilà : http://www.lecbna.org/mad_doc/gmk/self_made_particles.gmkSi t'arrives pas à le lire (donc sans gm8) voilà le contenu : SCRIPT particles_create - Code:
-
repeat 50 { //on crée 50 particules en mouse_x,mouse_y avec un hspeed et vspeed variable //un rayon et une couleur variables... ds_list_add(ls_x,mouse_x) ds_list_add(ls_y,mouse_y) ds_list_add(ls_hspd,random(8)-4) ds_list_add(ls_vspd,random(8)-4) ds_list_add(ls_radius,random(45+15)) ds_list_add(ls_color,make_color_rgb(random(255),random(255),random(255))) }
SCRIPT particles_init - Code:
-
//initialisation du système de particules ls_x=ds_list_create() ls_y=ds_list_create() ls_hspd=ds_list_create() ls_vspd=ds_list_create() ls_radius=ds_list_create() ls_color=ds_list_create()
//ici, on fait des particules simples avec une position, une vitesse, un rayon et une couleur SCRIPT particles_step - Code:
-
//faire evoluer les particules
if ds_list_empty(ls_x) { exit }
_gravity=0.3
for(i=0;i<ds_list_size(ls_x);i+=1) {
//position de la particule n° i X=ds_list_find_value(ls_x,i) Y=ds_list_find_value(ls_y,i) R=ds_list_find_value(ls_radius,i) //si objet solid àa la position où se trouve la particule (ou si la particule hors de l'écran) if position_meeting(X,Y,obj_mur) or X>room_width+R or X<R*-1 or Y>room_height+R or Y<R*-1 {
//on supprime la particule ds_list_delete(ls_x,i) ds_list_delete(ls_y,i) ds_list_delete(ls_hspd,i) ds_list_delete(ls_vspd,i) ds_list_delete(ls_radius,i) ds_list_delete(ls_color,i) continue }
//x=x+hspd ds_list_replace(ls_x,i,X+ds_list_find_value(ls_hspd,i)) //y=y+vspd ds_list_replace(ls_y,i,Y+ds_list_find_value(ls_vspd,i)) //vspd=vspd+gravity ds_list_replace(ls_vspd,i,ds_list_find_value(ls_vspd,i)+_gravity)
} SCRIPT particles_draw - Code:
-
//on dessine les particules if ds_list_empty(ls_x) { exit } for(i=0;i<ds_list_size(ls_x);i+=1) { X=ds_list_find_value(ls_x,i) Y=ds_list_find_value(ls_y,i) R=ds_list_find_value(ls_radius,i) C=ds_list_find_value(ls_color,i) draw_set_blend_mode(bm_add) draw_circle_color(X,Y,R,C,c_black,false) draw_set_blend_mode(bm_normal) } Bon, t'as juste à faire un objet, à mettre le script INIT dans create, draw dans draw step dans step, et le script create... quand tu veux créer des particules (par exemple en cliquant avec la souris) Les particules se détruisent en sortant de la room ou en touchant un objet nommé obj_mur. _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Lun 17 Mai 2010 - 22:32 | |
| ça marche ou pas? _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Randal Utilisateur confirmé: Rang **
Messages : 446
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Mar 18 Mai 2010 - 15:28 | |
| Ca me fait un peu peur tout ces codes juste pour vérifier si une petite particule touche un objet. Je verrai si cela est nécessaire, mais merci pour l'aide, ça me rendra sûrement service ainsi qu'à d'autres. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Et-il possible d'établir des collision pour des particules? Mar 18 Mai 2010 - 16:05 | |
| bah, c'est long parce qu'on ne vérifie pas si les particules touchent... on fait un nouveau système de particules, il n'y a pas d'autre choix!! _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Contenu sponsorisé
| Sujet: Re: Et-il possible d'établir des collision pour des particules? | |
| |
|
| |
| Et-il possible d'établir des collision pour des particules? | |
|