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...
Could you post a source. Me and my freind are trying to make an awesome zombie game, and we cant figure out how to make the zombies follow you. We only how to make them shoot around the map.
2010/9/29
2010/9/29
2010/12/12
2010/12/12
2012/1/6
2012/1/7
2012/1/9