05.07.2012, 00:32
Jб passou 24 horas desde meu ъltimo post.
Usando floatsin, floatcos e uns cбlculos matemбticos bбsicos.
Funзгo:
Porque 6.28? Porque й o dobro do PI oras! PI й a principal relaзгo numйrica com cнrculos, para manipulaзгo deles torna-se obrigatуrio o uso de PI
Porque 10.0? Porque й o tamanho de cada GZ unitбria, para formar o circulo.
Isto pode ser adaptado a text draws, tornando MUITOO ъtil este calculo para quem deseja fazer desenhos e coisas do tipo Eu usei um trecho de cуdigo parecido para fazer um circulo de fogo ao redor do jogador (estilo filme). Mas vocк pode achar outras utilidades Tambйm jб fiz um coraзгo usando 2 bolas e uma linha reta
Exemplo:
Para checar se o cara estб dentro do circulo basta usar:
IsPlayerInRangeOfPoint(playerid, 100.0, 0.1, 0.1, 0.1);
0.1 й as coordenadas que coloquei na funзгo. 100.0 й o nosso radius que й o centro do circulo.
Por Bruno da Silva
Gang Zonas Circulares
Imagem:Usando floatsin, floatcos e uns cбlculos matemбticos bбsicos.
Funзгo:
pawn Код:
stock GangZoneRedonda(Float:raio, Float:x , Float:y, color, gzs = 20) {
static
Float:gz_X,
Float:gz_Y,
gzIndenti;
for(new i; i < gzs; i++){
gz_X = floatcos(i/(float(gzs))*6.28, radian) * raio + x ;
gz_Y = floatsin(i/(float(gzs))*6.28, radian) * raio + y ;
gzIndenti = GangZoneCreate(gz_X-(10.0), gz_Y-10.0, gz_X+10.0, gz_Y+10.0);
GangZoneShowForAll(gzIndenti, color);
}
return gzIndenti;
}
Porque 10.0? Porque й o tamanho de cada GZ unitбria, para formar o circulo.
Isto pode ser adaptado a text draws, tornando MUITOO ъtil este calculo para quem deseja fazer desenhos e coisas do tipo Eu usei um trecho de cуdigo parecido para fazer um circulo de fogo ao redor do jogador (estilo filme). Mas vocк pode achar outras utilidades Tambйm jб fiz um coraзгo usando 2 bolas e uma linha reta
Exemplo:
pawn Код:
GangZoneRedonda(100.0, 0.1,0.1, 0xFF0000FF,200);
IsPlayerInRangeOfPoint(playerid, 100.0, 0.1, 0.1, 0.1);
0.1 й as coordenadas que coloquei na funзгo. 100.0 й o nosso radius que й o centro do circulo.
Por Bruno da Silva