duda,areas,cosas,etc... -
OTACON - 01.05.2014
buenas a todos, queria saber como se podria hacer para crear 'pichups,labels,objetos,lo que sea' dentro de una area mdependiendo de la posicion del area'.
osea quedando como muestro en la imagen siguiente.
(recuerden, todo dependiendo de la posicion del area)

desde ya muchas gracias.
saludos.
PD: estoy medio confuso, si me pueden ayudar se los agradezco.
Respuesta: duda,areas,cosas,etc... -
Parka - 01.05.2014
Fнjate en el cуdigo no lo hice completamente con funciones, pero usted tiene la capacidad de hacerlo lo importante aqui es como colocar dentro del бrea dicho pickup.
pawn Код:
enum aPickEnum
{
Float:ap_x,
Float:ap_y,
Float:ap_z
}
new AreaPickups[2][aPickEnum] =
{
{161.1872,-1447.1873,36.3099},
{161.1872,-1447.1873,36.3099}
};
//Ahora Creemos un Area
GangZoneCreate(AreaPickups[0][ap_x] - 100,AreaPickups[0][ap_y] - 100,AreaPickups[0][ap_x] + 100,AreaPickups[0][ap_x] + 100);
//Listo creamos un area ahora dentro de esa area Crearemos un pickup
CreatePickup(pickup,pickuptype,AreaPickups[0][ap_x]-50,AreaPickups[0][ap_y]+20,AreaPickups[0][ap_z],world);
//Relativamente puede que por montaсas el pickup salga flotando pero ya ese es otro asunto, lo que quiero que te des cuenta es que siempre y cuando sumes/restes en dicha posiciуn sin pasarte de 100(la suma/resta) el pickup va a aparecer dentro del бrea.
//ya que el limite de dicha бrea es de 100 metros.
Espero que este bien mi explicaciуn aunque si no comprendes yo intentare explicarme mejor, Saludos.
Respuesta: duda,areas,cosas,etc... -
xDarkuzSx - 01.05.2014
Con posiciones y random.
Respuesta: duda,areas,cosas,etc... -
OTACON - 01.05.2014
podrias explicar un poco mas, gracias.
Respuesta: duda,areas,cosas,etc... -
OTACON - 03.05.2014
revivo, alguien me ayuda? :S
Respuesta: duda,areas,cosas,etc... -
MugiwaraNoLuffy - 03.05.2014
No entiendo, їquerйs crear algo en una posiciуn al azar dentro de un бrea?
Respuesta: duda,areas,cosas,etc... -
OTACON - 03.05.2014
Quote:
Originally Posted by MugiwaraNoLuffy
No entiendo, їquerйs crear algo en una posiciуn al azar dentro de un бrea?
|
exacto, pero obtener las posiciones random mediante la posicion del area.
:/
Respuesta: duda,areas,cosas,etc... -
DesingMyCry - 05.05.2014
La siesta fue un poco larga...
Para hacer lo que necesitas, necesitaremos, como dice Parka, un par de operaciones matemбticas bбsicas...
Imagina que tenemos una GangZone en el mapa, esta GangZone tiene de coordenadas:- MinX: 100.0
- MinY: 400.0
- MaxX: 200.0
- MaxY: 500.0
Como hariamos para obtener las coordenadas Random X e Y? primero hagamos la X...
Primero, necesitamos saber la diferencia de posiciones, esto lo haremos restando MinX al MaxX, osea:
- MaxX - MinX
- 200.0 - 100.0
Esto es 100.0, entonces la diferencia es de 100.0... ahora, ya que tenemos la direrencia, como obtenemos una posiciуn random de acuerdo a las posiciones X? hacemos un random del resultado de la operaciуn anterior, y el resultado de este, se lo sumamos a MinX... de esta forma, obtendremos una posiciуn random entre MaxX y MinX.
Para la posiciуn random Y, es lo mismo.
pawn Код:
/*
Descripciуn
Obtener una posiciуn 2D random entre un area 2D
Parбmetros
Float:pos[2]
array -> 0
Variable donde se guardarб la posiciуn random X
array -> 1
Variable donde se guardarб la posiciуn random Y
Float:xy[4]
array -> 0
MinX del area
array -> 1
MinY del area
array -> 2
MaxX del area
array -> 3
MaxY del area
Retorno
Siempre 1.
*/
stock randomPos2D(Float:pos[2], Float:xy[4])
{
for(new i = 0; i < ((sizeof(xy))/(2)); i++) pos[i] = (random(floatround((Float:xy[i+2]-Float:xy[i])+Float:xy[i])));
return 1;
}
Y una pequeсa prueba:
pawn Код:
new Float:fin[2];
randomPos2D(fin, Float:{100.0, 400.0, 200.0, 500.0});
printf("FinX: %f\nFinY: %f", fin[0], fin[1]);
Respuesta: duda,areas,cosas,etc... -
MugiwaraNoLuffy - 05.05.2014
Me ganу de mano. Eso iba a poner.
Respuesta: duda,areas,cosas,etc... -
OTACON - 05.05.2014
gracias, ahora leo,testeo,y aviso cualquier cosa.
saludos.
.