[Tutorial] Camara En Movimiento
#1

Hola Amigos Vengo Con Un Tuto De La Camara En Movimiento Que Tiene Inquietos A Algunos Que no Saben Como Hacerlo A Continuacion La Explicacion Paso a Paso

1 Definimos Las Posiciones Que va a Tomar La Camara
pawn Код:
#define Pos_x 2178.4922// estas son las posiciones
#define Pos_y 1285.8121
#define Pos_z 42.2499
#define Pos_angle 270.0764
#define camara_x 2961.4202
#define camara_y -1875.7118
#define camara_z 9.7813
#define Velocidad 50//esta la velocidad de la camara, recomiendo dejarala asi

forward SetupPlayerForClassSelection(playerid);//los forwards
forward MoverCamara(playerid);

enum pInfo //y los enum que vamos a usar
{
Float:SpawnAngle,
bool:SpawnRotate,
SpawnTimer,
};

new PlayerInfo[MAX_PLAYERS][pInfo];
2 Lo que haremos ahora es colocar los codigos correspondientes para que al conectarse el player empieze a escoger el skin y y la rotacion de la camara

pawn Код:
// En OnPlayerRequestClass
SetupPlayerForClassSelection(playerid);// para que le digamos al sistema que al conectarse el jugador escoga los skins

// En OnPlayerConnect Agregas
PlayerInfo[playerid][SpawnRotate] = true;// le decimos al sistema que al conectarse el jugador empieze a rotar la camara alrededor de el

public OnPlayerDisconnect(playerid, reason)
{
  KillTimer(PlayerInfo[playerid][SpawnTimer]);// y esto en OnPlayerDisconnect
  return 1;
}
3 Haremos las modificaciones al momento de que el jugador se conecte empieze la camara a rotar y hacer la funcion que queremos lograr

pawn Код:
//esto es lo que ira en la callback SetupPlayerForClassSelection
public SetupPlayerForClassSelection(playerid)
{
   SetPlayerPos(playerid, Pos_x,Pos_y,Pos_z);//aqui estan las posiciones en donde la camara se movera alrededor las pueden cambiar en los defines o simplemente colocar sus posiciones y eliminar los defines  
   SetPlayerCameraPos(playerid, camara_x,camara_y,camara_z);//aqui la posicion donde la camara se va a fijar tambien se puede cambiar la posicion igual que en lo primero que dije  
    SetPlayerCameraLookAt(playerid, Pos_x,Pos_y,Pos_z);//aqui se coloca como la camara se posiciona sobre el jugador
    if (PlayerInfo[playerid][SpawnRotate]) PlayerInfo[playerid][SpawnTimer] = SetTimerEx("MoverCamara", Velocidad, true, "i", playerid);//y aqui le decimos al sistema la funcion que queremos hacer que es llamar a la callback que forwdeamos anteriormente para que empieze a mover la camara
   PlayerInfo[playerid][SpawnRotate] = false;
   return 1;
}
5 por ultimo colocamos la funcion de la rotacion de la camara en el jugador, esta funcion va en el forward que hicimos al principio de todo

pawn Код:
public MoverCamara(playerid)
{
    SetPlayerCameraPos(playerid, Pos_x - 2 * floatsin(-PlayerInfo[playerid][SpawnAngle], degrees), Pos_y - 10 *
floatcos(-PlayerInfo[playerid][SpawnAngle], degrees), Pos_z + 3);//lo unico que hacemos aqui es aumentar los valores para que la camara rote
    SetPlayerCameraLookAt(playerid, Pos_x, Pos_y, Pos_z + 0.5);// hacemos la misma funcion que arriba pero en la posicion en la que va a mirar la camara
    PlayerInfo[playerid][SpawnAngle] += 0.5;// y el angulo en que se posicionara la camara, esto se puede cambiar

    if (PlayerInfo[playerid][SpawnAngle] >= 360.0)
    PlayerInfo[playerid][SpawnAngle] = 0.0;// los angulos donde colocamos la sentencia que si el angulo llegue a 360 grados se repita el movimiento de nuevo
    return 1;
}

// y en OnPlayerSpawn se agrega
PlayerInfo[playerid][SpawnAngle] = 0.0;
KillTimer(PlayerInfo[playerid][SpawnTimer]);
SetCameraBehindPlayer(playerid);
Espero que le sirva el tuto

Quote:

PD: Espero que les sirva y recuerden que los valores de las posiciones y los angulos varian e la posicion en la que se encuentra el jugador

Quote:

PD: Los creditos no son mios simplemente quiero explicar como funciona y para lo que no lo encuentran facilmente, solo quiero ayudar y nada mas , si ya esta posteado perdon no lo sabia este codigo lo encontre en pawnscript es solo una ayuda para quien lo necesita

Edit: Arreglados unos pequeсos bugs y un pequeсo error encontrado, Gracias a josta por decirmelo cualquier otro problema solo informelo gracias
Reply


Messages In This Thread
Camara En Movimiento - by davidxxx - 19.10.2011, 20:55
Respuesta: Camara En Movimiento - by [J]ulian - 19.10.2011, 20:57
Re: Camara En Movimiento - by FireCat - 19.10.2011, 20:59
Re: Respuesta: Camara En Movimiento - by dis77urbio - 19.10.2011, 21:30
Respuesta: Camara En Movimiento - by davidxxx - 19.10.2011, 22:17
Respuesta: Camara En Movimiento - by [J]ulian - 19.10.2011, 22:18
Respuesta: Camara En Movimiento - by Zafiro - 19.10.2011, 22:42
Respuesta: Camara En Movimiento - by Jovanny - 19.10.2011, 23:23
Respuesta: Camara En Movimiento - by davidxxx - 20.10.2011, 00:27
Re: Camara En Movimiento - by ZeQualX - 20.10.2011, 02:40

Forum Jump:


Users browsing this thread: 1 Guest(s)