WIP > STRIKE WAR 8BITS


Shoot'EM UP with Copter
made by DcyD3 + IA (I learn XD)
uploaded by DcyD3
added:
updated:
download cartridge
- CLICK TO PLAY -

2


V2.0 some new gx ! (boat texture not correct for me) + intro + explode (to sprite update). Problem with collision between mget and sprite (not working) ??? I try to understand why where because when who !
If someone know please light me (in easy way please). It's your game !!!!! Enjoy +++ to do add scoring & life + (sound + music > here i don't understand how that work sorry)

Comments


yoconoob

me gusto el juego por cierto el helicóptero tiene vida porque ya me chocaron como 100 y tantos aviones que ni muero por lo menos es una gran ventaja jeje

yoconoob

me lo explico una ia como funciona no se si te sirva de algo:En Lua estándar no existen las funciones mget() ni spr() de forma nativa (suelen ser del motor que utilices), pero la lógica para resolver la colisión y la textura/sprite funciona exactamente igual.

Aquí tienes cómo solucionar tu problema en Lua:

1. El problema con mget en Lua
Si tu función mget(x, y) consulta una tabla/matriz del mapa, el error común suele ser uno de estos tres:

A) Pasar píxeles en lugar de índices del mapa
Si tu barco está en la posición x = 100, y = 50 en la pantalla, pero tu mapa es una cuadrícula donde cada casilla mide 16x16 píxeles, debes convertir la posición antes de llamar a mget:

Lua
-- Suponiendo que cada casilla mide 16 píxeles
local tamano_casilla = 16

-- Math.floor redondea hacia abajo para obtener el índice del mapa
local tile_x = math.floor(jugador.x / tamano_casilla) + 1
local tile_y = math.floor(jugador.y / tamano_casilla) + 1

if mget(tile_x, tile_y) ~= 0 then
-- ¡Hay colisión!
end
(Nota: En Lua las tablas/arrays empiezan en el índice 1, no en 0, a menos que la librería que uses use indexación desde 0).

B) Revisar solo un punto (el centro o la esquina)
Si solo revisas el punto superior izquierdo de tu barco, el resto del barco atravesará las paredes. Revisa las 4 esquinas de la caja del barco:

Lua
function hay_colision(x, y, ancho, alto)
local x1 = math.floor(x / 16) + 1
local y1 = math.floor(y / 16) + 1
local x2 = math.floor((x + ancho - 1) / 16) + 1
local y2 = math.floor((y + alto - 1) / 16) + 1

-- Si alguna de las 4 esquinas toca una casilla sólida (por ej. tile tipo 1)
if mget(x1, y1) == 1 or mget(x2, y1) == 1 or
mget(x1, y2) == 1 or mget(x2, y2) == 1 then
return true
end
return false
end
2. Textura/Sprite del barco no correcta
Si la textura o el sprite de tu barco no se ve bien, suele ser por dos motivos en Lua:

Cuadrante o Quad incorrecto: Si estás usando una hoja de sprites (spritesheet), asegúrate de que las coordenadas x, y, ancho, alto que cortan la imagen del barco sean las correctas.

Punto de origen (Center/Pivot): Si el barco rota pero se deforma o gira sobre la esquina en lugar del centro, necesitas ajustar el punto de origen de dibujado al centro del sprite (ancho/2, alto/2).

3. Puntuación, Vidas y Efectos
Para llevar el control básico de tu juego en Lua:

Lua
-- Variables del jugador
local jugador = {
x = 100,
y = 100,
vidas = 3,
puntos = 0
}

function sumar_puntos(cantidad)
jugador.puntos = jugador.puntos + cantidad
end

function recibir_daño()
jugador.vidas = jugador.vidas - 1
if jugador.vidas <= 0 then
-- ¡Explosión / Game Over!
end
end

yoconoob

es lo maxcimo que explico porque yo busco la informacion por ia no se si ya lo isistes pero es lo minimo que puedo aser solo se de spr cordenadas y movimientos vasicos el resto de mi trabajo es utilizando solo en codigo la ia no es que sea lo mas grandioso pero es lo unico que puedo aser ademas maximo los sprites los ago tampoco quiero que todo mi trabajo sea ia

yoconoob

abeses debes buscar la informacion para lograrlo

yoconoob

bueno es todo lo que puedo ayudar

yoconoob

de nada

yoconoob

de paso si esta informacion no lo entendistes mejor usa gemini ese si ayuda por lo menos mas que chat gpt o copilot xd

yoconoob

xdxdxdxdxdxdxdxdxdxdxdxdxdxd


Post comment