Posto qui il problema anche se credo che in 2D sia lo stesso..
Io ho scritto due script, uno per trovare la variabile "point" e uno per la variabile "angle", qui posto solo quelli relativi ad un solo tipo di oggetto, ma ne ho fatti di simili per ogni oggetto da applicare.
Codice: Seleziona tutto
//SCRIPT: MARMITTE_FIND_POINT
// argument0: car_index, che è la variabile che contiene l' object_index dell'oggetto interessato al quale applicare l'altro
// argument1: car_index.x
// argument2: car_index.y
// argument3: x
// argument4: y
// argument5: object_index, serve a capire se è la marmitta di destra o quella di sinistra
if argument5=obj_marmitta{
if argument0=obj_car_corvette point = point_distance(argument1+20,argument2-1.8,argument3,argument4);
}
else if argument5=obj_marmitta1{
if argument0=obj_car_corvette point = point_distance(argument1+20,argument2+2.2,argument3,argument4);
}
return point;
Codice: Seleziona tutto
// SCRIPT: MARMITTE_FIND_ANGLE
// argument0: car_index, che è la variabile che contiene l' object_index dell'oggetto interessato al quale applicare l'altro
// argument1: car_index.x
// argument2: car_index.y
// argument3: x
// argument4: y
// argument5: object_index, serve a capire se è la marmitta di destra o quella di sinistra
if argument5=obj_marmitta{
if argument0=obj_car_corvette angle = point_direction(argument1+20,argument2-1.8,argument3,argument4);
}
else if argument5=obj_marmitta1{
if argument0=obj_car_corvette angle = point_direction(argument1+20,argument2+2.2,argument3,argument4);
}
return (angle);
In begin step metto questo:
Codice: Seleziona tutto
x=global.car_index.x+lengthdir_x(point,angle+global.car_index.roty);
y=global.car_index.y+lengthdir_y(point,angle+global.car_index.roty);
Codice: Seleziona tutto
if global.block_rot=-1 roty=global.car_index.roty;
Nel momento in cui l'oggetto è fermo gli oggetti da attaccare vanno correttamente nelle loro posizioni...
Ma quando è in movimento le posizioni degli oggetti attaccati sembrano cambiare leggermente all'aumentare della velocità dei cambi di direzione ed accelerazione...
Vi spiego meglio: l'oggetto interessato, una macchina, ha degli oggetti "attaccati" quali marmitte, alettoni, prese d'aria, ruote ecc...
Supponiamo che l'auto stia accelerando: le ruote piano piano sembrano andare più lente della macchina e quindi scivolano indietro, per poi recuperare la loro posizione iniziale non appena l'auto si ferma. Ho ovviato a questo semplicemente mettendo il seguente codice in begin step invece che in step.
Codice: Seleziona tutto
x=global.car_index.x+lengthdir_x(point,angle+global.car_index.roty);
y=global.car_index.y+lengthdir_y(point,angle+global.car_index.roty);