Pagina 1 di 1
Problema buco nero
Inviato: 13/10/2015, 19:02
da Kami_Ender
Buonasera ragazzi. Ho un problema: il player che viene attratto da questo buco nero, a volte viene sbalzato fuori e attraversa i muri. Ci sono i check per la collisione (quella base, del platform) ma se vengo sbalzato fuori dal buco nero attraversa lo stesso i muri. Come risolvere?
Codice: Seleziona tutto
// obj sarebbe il buco nero
if(point_distance(x,y,obj.x,obj.y) <= 170)
{
// Disabilita le variabili dei powerup
global.powerup = false ;
global.activate = true ;
global.teleport = false ;
global.pow = false ;
// Setta gravity e gravity_direction
gravity = 15 ;
gravity_direction = point_direction(x,y,obj.x,obj.y) ;
if(place_meeting(x,y,obj))
{
// Scala la vita e grazie codice del player poi verrà distrutto
life -= 10 ;
}
}
Re: Problema buco nero
Inviato: 13/10/2015, 21:03
da Vallo92
Puoi postare la parte di codice riguardante la collisione con i muri?
Re: Problema buco nero
Inviato: 14/10/2015, 16:42
da Kami_Ender
Fin troppo classica xD
Codice: Seleziona tutto
//Horizontal Collision
if (place_meeting(x+hsp,y,obj_wall))
{
while(!place_meeting(x+sign(hsp),y,obj_wall))
{
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
//Vertical Collision
if (place_meeting(x,y+vsp,obj_wall))
{
while(!place_meeting(x,y+sign(vsp),obj_wall))
{
y += sign(vsp);
}
vsp = 0;
}
y += vsp;
Re: Problema buco nero
Inviato: 14/10/2015, 17:47
da Wolfrost
Perchè usi gravity_direction e gravity quando si vede che stai usando il codice di Shaun Spalding? Il suo codice prevede l'uso di variabili personali sulla gestione della posizione x ed y del player, di conseguenza usando gravity e robe simili crei un bel po' di disordine
Re: Problema buco nero
Inviato: 14/10/2015, 20:47
da Kami_Ender
Grazie ragazzi. Ma quindi come devo fare?
Re: Problema buco nero
Inviato: 15/10/2015, 19:42
da Wolfrost
Beh non sappiamo come hai strutturato il gioco sinceramente... è un platform? Se sì come funziona il buco nero? o.O Riesco ad immaginarmelo meglio in un contesto più top-down 2D, non so se sono chiaro... perchè in quel caso basterebbe un check per il raggio (point_distance) e poi usare move_towards_point() o meglio qualche funzione personalizzata per muovere il pg al centro del buco ma tenere attivi i movimenti.
Re: Problema buco nero
Inviato: 16/10/2015, 20:53
da Kami_Ender
Si è un Platform.
Ho modificato lo step event così:
Codice: Seleziona tutto
/////////////////////////////////////////////
if(point_distance(x,y,obj_blhol.x,obj_blhol.y) <= 170)
{
global.powerup = false ;
global.activate = true ;
global.teleport = false ;
global.pow = false ;
move_towards_point(obj_blhol.x,obj_blhol.x,6) ;
if(place_meeting(x,y,obj_blhol))
{
life -= 10 ;
}
}
Obj_blhol(buco nero)
DRAW EVENT
Re: Problema buco nero
Inviato: 16/10/2015, 20:54
da Kami_Ender
Ma comunque se entro nel raggio d'azione del black hole, move_towards_point mi porta da tutt'altra parte.
xD
Re: Problema buco nero
Inviato: 17/10/2015, 9:42
da Solid Snake
Il codice di prima andava bene, semplicemente non devi usare le variabili built-in "gravity" e "gravity_direction", devi fartele tu...
Re: Problema buco nero
Inviato: 17/10/2015, 9:57
da Kami_Ender
Grazie