|
| la caméra traverse les murs (jeu 3D à la 3è personne) | |
| | Auteur | Message |
---|
Giggs Débutant
Messages : 14
| Sujet: la caméra traverse les murs (jeu 3D à la 3è personne) Mar 5 Mai 2009 - 17:56 | |
| Bonjour! Comment fait-on pour qu'une caméra d'un jeu 3D à la 3è personne ne traverse pas les murs lorsqu'elle s'en approche un peu trop près? J'ai essayé - Citation :
- Obj_camera :: BEGIN STEP
//distance_camera = la distance entre le personnage et la camera distance_camera=min(64,distance_camera); distance_camera=max(distance_camera,0);
direction=obj_personnage.direction; x=obj_personnage.x - distance_camera*cos(-degtorad(direction)); y=obj_personnage.y - distance_camera*sin(-degtorad(direction));
if collision_line(x,y,obj_personnage.x,obj_personnage.y,obj_mur,false,false) then {distance_camera-=1;} else {distance_camera+=1;} mais le résultat n'est pas terrible... Merci! |
| | | 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: la caméra traverse les murs (jeu 3D à la 3è personne) Mar 5 Mai 2009 - 18:24 | |
| je vois ce que tu veux faire mais pour moi c'est un peu dur je te propose que dès qu'il dépasse la wall il se met en transparent ou moitié transparent (a toi de choisir) : - moi j' a écrit:
- if collision_line(x,y,obj_personnage.x,obj_personnage.y,obj_mur,false,false)
{instance_nearlest(x,y,obj_mur).transparence/*image_alpha au pire*/=0.3} |
| | | Giggs Débutant
Messages : 14
| Sujet: Re: la caméra traverse les murs (jeu 3D à la 3è personne) Mer 6 Mai 2009 - 11:41 | |
| En fait pour faire des murs, je crée des petites portions de murs (obj_mur) que je met bout à bout, donc si je fais obj_mur.image_alpha=0.3, il y aurait qu'une petite portion du mur de translucide, donc ça marche pas... J'ai essayé un truc du genre - Citation :
- mur_camera = collision_line(x,y,obj_personnage.x,obj_personnage.y,obj_mur,false,false); //ça retourne l'ID du mur qui fait obstacle à la caméra
if !collision_line(x,y,obj_personnage.x,obj_personnage.y,obj_mur,false,false) then {distance_camera=64;} else {x=mur_camera.x; y=mur_camera.y;} mais c'est pareil, ça marche pas très bien... En fait je pense qu'il faudrait trouver une commande qui retourne le point de collision d'un objet se trouvant sur un segment. les commandes collision_line.x et collision_line.y retournent l'origine de l'objet, qui n'est pas forcément le point de collision... |
| | | Chulien Utilisateur confirmé: Rang *****
Messages : 2232
| Sujet: Re: la caméra traverse les murs (jeu 3D à la 3è personne) Mer 6 Mai 2009 - 12:04 | |
| moi j'ai réussi dans un jeu de voitures 3D, et ça marche bien http://www.megaupload.com/?d=BEW35OLMje crois que j'ai fait une boucle, on part du point du perso, on recule, et dès qu'on rencontre un mur (par exemple avec !place_free ou place_meeting) on arrête de reculer et on place la caméra. à la limite, vaut mieux l'avancer un ptit peu desfois que la caméra passe un peu dedans tout ça faut le faire avec des cos, sin, en tout cas c'est cque jai fait |
| | | 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: la caméra traverse les murs (jeu 3D à la 3è personne) Mer 6 Mai 2009 - 12:27 | |
| c'est une très bonne idée et puis en plus elle pas compliquée j'ai compris que si la caméra est trop loin de la camera (if point_distance(x,y,truc.x,truc.y)>64 )la camerase rapproche de la camera c'est une bonne idée |
| | | Chulien Utilisateur confirmé: Rang *****
Messages : 2232
| Sujet: Re: la caméra traverse les murs (jeu 3D à la 3è personne) Mer 6 Mai 2009 - 13:01 | |
| euh c'est pas vraiment ça
en fait, prenons par exemple une caméra qui par défaut est minimum à 10 (pour pas rentrer dans le perso) et maximum à 60 du personnage (pour qu'on le voie encore bien)
for( i=60 ; i>10 ; i-=1) { <placer la camera à i "mètres" derriere le personnage> if(place_free(Le point ou se trouve la caméra)) break; }
on place la caméra à 60m derriere le perso si c'est libre, c'est ok on arrête
si ça l'est pas on recommence un peu plus près
donc en général, si le jeu se passe en extérieur on aura la camera à 60 |
| | | 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: la caméra traverse les murs (jeu 3D à la 3è personne) Mer 6 Mai 2009 - 14:13 | |
| je viens de voir ton projet de voiture, je le trouve sympa (juste pour le volant, ca a l'air...relatif ) franchement, ce qui manque dans game maker, c'est un anticrénage, le genre de truc qu'il n'y a que dans la PS3, trackmania, blender... le système de camera a l'air bizarre, mais elle fonctionne et c'est ca l'important faudrait qu'un jour quelqu'un se penche sur la camera de GTA (particulièrement le IV) qui a un mouvement encore plus bizarre |
| | | Contenu sponsorisé
| Sujet: Re: la caméra traverse les murs (jeu 3D à la 3è personne) | |
| |
| | | | la caméra traverse les murs (jeu 3D à la 3è personne) | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |