![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
12/10/2011, 02:51
|
| | Fecha de Ingreso: febrero-2007
Mensajes: 58
Antigüedad: 18 años Puntos: 0 | |
Respuesta: Conversión desde Javascript no da lo mismo Espero que quede muy lioso y sobretodo que sirva de algo, gracias anticipadas
Codigo JS (he quitado valores inciales y accesorios) Bucles:
function work(){ // bucle1
tiempo+=1;
var x;
for(x in pesti){ // el que miro
var r;
for(r in pesti){
if(r!=x ){ // el otro
if (pesti[r].vida<1) {pesti[r].bando=0;};
var dx=pesti[r].x-pesti[x].x;
var dy=pesti[r].y-pesti[x].y;
var d=Math.sqrt(dx*dx+dy*dy);
if (d>0 && pesti[x].bando!==0 && pesti[r].bando!==0) {
if(pesti[r].bando==pesti[x].bando){
if(d<40){
pesti[x].vx+=velpez*(-dx/(d*d));
pesti[x].vy+=velpez*(-dy/(d*d));
}else if(d<100){
pesti[x].vx+=0.07*(dx/d);
pesti[x].vy+=0.07*(dy/d);
}
}
else { //huye de los otros
if(d<60){
pesti[x].vx-=(velpez/3)*(-dx/(d*d));
pesti[x].vy-=(velpez/3)*(-dy/(d*d));
}
};
if(d<70 && pesti[x].bando!==pesti[r].bando && pesti[r].bando!==0 ){
pesti[r].vida-=5;
}
};
}
}
};
Y mismo en PHP:
$c=0;
while ($c<$tiempofinal){ // ciclo principal
$c++;
$x=-1;
while ($x<$cantipez-1){ // ciclo mi pez
++$x;
//echo "($c) $xy $xvida<br>";
if ($nave[$x][6]<1) {$nave[$r][5]=0;};
$r=-1;
while ($r<$cantipez-1){ // ciclo otro pez r
++$r;
//echo "y $r <br>";
if($r!==$x ){ // no soy yo
if ($nave[$r][6]<1) {$nave[$r][5]=0;};
$dx=$nave[$r][1]-$nave[$x][1];
$dy=$nave[$r][2]-$nave[$x][2];
$d=sqrt($dx*$dx+$dy*$dy);
//dist=50;
if ($d>0 and $nave[$x][5]!==0 and $nave[$r][5]!==0) {
if($nave[$x]5]==$nave[$r][5]){
if($d<40){
$nave[$x][3]+=$velpez*(-$dx/($d*$d));
$nave[$x][4]+=$velpez*(-$dy/($d*$d));
}elseif($d<100){
$nave[$x][3]+=0.07*($dx/$d);
$nave[$x][4]+=0.07*($dy/$d);
};
}
else { //huye de los otros
if($d<60){
$nave[$x][3]-=($velpez/3)*(-$dx/($d*$d));
$nave[$r][4]-=($velpez/3)*(-$dy/($d*$d));
};
}; //fin comport 2
if($d<70 and $nave[$x][5]!==$nave[$r][5] and $nave[$r][5]!==0 )
{
$nave[$r][6]=$nave[$r][6]-5;
};
};
}; // fin no soy yo mismo
}; //fin otros y
// pestisor move x
if($nave[$x][3]>$velmax) {$nave[$x][3]=$velmax;};
if($nave[$x][3]<-1*$velmax) {$nave[$x][3]=-1*$velmax;};
if($nave[$x][4]>$velmax) {$nave[$x][4]=$velmax;};
if($nave[$x][4]<-1*$velmax) {$nave[$x][4]=-1*$velmax;};
$nave[$x][1]+=$nave[$x][3];
$nave[$x][2]+=$nave[$x][4];
$nave[$x][3]=$nave[$x][3]*0.9;
$nave[$x][4]=$nave[$x][4]*0.9;
//tendenci to go towards center;)
$nave[$x][1]=($nave[$x][1]*500+500)/501;
$nave[$x][2]=($nave[$x][2]*500+300)/501;
// guardando sus valores
//echo "($c) $x ($xvx,$xvy) ($xx,$xy)<br>";
$vx=$nave[$x][3];
$vy=$nave[$x][4];
$cx=(int) ($nave[$x][1]);
$cy=(int) ($nave[$x][2]);
echo "<br>($c) $d ($cx,$cy)";
}; ///fin yo x
}; |