Uso la siguiente funcion para saber si el jugador esta tocando algun objeto:
private boolean canSee(Class clss)
{
Actor actor = getOneObjectAtOffset(0, 0, clss);
return actor != null;
}
En esta funcion segun el tipo de objeto que esta tocando simplemente lo elimino y le asigno vida o balas al jugador y escudo a la base.
private void eat()
{
//SI PUEDE VER UN PAQUETE DE SANGRE
if(canSee(HealthPack.class))
{
//OBTIENE EL PAQUETE DE SANGRE
HealthPack h=(HealthPack)getOneIntersectingObject(HealthPack.class);
//SE FIJA SI ES PEQUEÑO O GRANDE
switch(h.getType())
{
//SI ES PEQUEÑO AUMENTA 10 PUNTOS
case 0:if((hp+10)>100)
hp=100;
else
hp+=10;
//SI ES GRANDE AUMENTA 30 PUNTOS
case 1:if((hp+30)>100)
hp=100;
else
hp+=30;
}
//ELIMINA EL PAQUETE DE SANGRE
getWorld().removeObject(h);
}
//SI ESTA TOCANDO UNA ESCOPETA
if(canSee(ShotgunAmmo.class))
{
//AUMENTA LAS BALAS DE LA ESCOPETA
s.addItem();
//OBTIENE EL OBJETO Y LO ELIMINA
ShotgunAmmo sa=(ShotgunAmmo)getOneIntersectingObject(ShotgunAmmo.class);
getWorld().removeObject(sa);
}
//LO MISMO ES PARA LOS DEMAS ITEMS
if(canSee(MinigunAmmo.class))
{
m.addItem();
MinigunAmmo ma=(MinigunAmmo)getOneIntersectingObject(MinigunAmmo.class);
getWorld().removeObject(ma);
}
if(canSee(BaseArmor.class))
{
BaseArmor ba=(BaseArmor)getOneIntersectingObject(BaseArmor.class);
Base b=(Base)getWorld().getObjects( Base.class ).get(0);
b.addItem();
getWorld().removeObject(ba);
}
//AQUI SE ACTUALIZAN LAS ETIQUETAS
switch(actual)
{
case 1:s.updateLabels();
break;
case 2:m.updateLabels();
break;
}
}
CUALQUIER DUDA PUEDES BAJAR EL CODIGO COMPLETO, Y SOBRE UNA SEGUNDA PARTE LA NETA QUE HUEVA.
ORITA ESTOY MUY ATARIADO CON LOS PROYECTOS DE LA UNIVERSIDAD, SALUDOS...
Recent Comments | Show All
2012/1/7
Zombie Rampage
2010/12/12
Zombie Rampage