OBJ_botas.javaEsta clase hereda de superObjeto. Su función principal es cargar la imagen del asset y definir el nombre identificador para el sistema de colisiones.
Archivo: src/objetos/OBJ_botas.java
package objetos;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* Objeto coleccionable que modifica el atributo de velocidad del jugador.
*/
public class OBJ_botas extends superObjeto {
public OBJ_botas() {
nombre = "botas";
try {
// Carga del recurso visual desde la carpeta res
imagen = ImageIO.read(getClass().getResourceAsStream("/objetos/zapato.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
AssetSetterPara que el objeto aparezca en el mundo, debemos instanciarlo y asignarle coordenadas dentro del array de objetos.
PanelJuego.java, asegúrate de que el array objs tenga espacio suficiente (ej. new superObjeto[15]).AssetSetter.java, añade el siguiente código:// Importar la nueva clase
import objetos.OBJ_botas;
public void setObjetct() {
// ... otros objetos ...
// Configuración de las Botas de Velocidad
pj.objs[10] = new OBJ_botas();
pj.objs[10].worldX = 25 * pj.tamanioTile; // Posición X en tiles
pj.objs[10].worldY = 15 * pj.tamanioTile; // Posición Y en tiles
}
Jugador.javaDebemos definir qué ocurre cuando el jugador colisiona con este objeto. Buscamos el método recogerObjeto.
Archivo: src/entidad/Jugador.java
public void recogerObjeto(int index) {
if (index != 999) { // 999 significa que no hay colisión
String nombreObjeto = pj.objs[index].nombre;
switch (nombreObjeto) {
case "botas":
vel += 2; // Incremento permanente de velocidad
pj.objs[index] = null; // Elimina el objeto del mapa
System.out.println("¡Power-Up! Velocidad actual: " + vel);
break;
// ... otros casos (llave, puerta, etc.) ...
}
}
}