04.07.2011, 21:34
Hallo
ich habe angefangen Lua zu programmieren.
Jetzt wollte mich mit meinenm ersten Spiel anfangen.
Es soll ein kleines Labyrinth für meinen 4 jährigen Cousin werden.
Es soll in etwa so aussehen:
a=Image.load("Boden.JPG")
b=Image.load("Wand.JPG")
c=Image.load("Ziel.JPG")
Spieler=Image.load("Spieler.JPG")
Spieler_x = 64
Spieler_y = 224
map={
{b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
{b,a,a,a,a,a,b,b,b,b,b,b,b,b,b},
{b,a,b,b,b,a,b,b,b,b,b,b,b,b,b},
{b,a,b,b,b,a,b,b,b,b,a,a,a,a,b},
{b,a,b,b,b,a,a,a,b,b,a,b,b,a,b},
{b,a,b,b,b,b,b,a,b,b,a,b,b,a,b},
{b,a,b,b,b,b,b,a,a,a,a,b,b,c,b},
{b,b,b,b,b,b,b,b,b,b,b,b,b,b,b}
}
while true do
for c=1,8 do
for d=1,15 do
screen:blit(d*32,c*32,map[c][d],false)
end
end
pad = Controls.read()
dx = pad:analogX()
dy = pad:analogY()
if dx > 30 then
Spieler_x = Spieler_x + (math.abs(pad:analogX())/64)
end
if dx < -30 then
Spieler_x = Spieler_x - (math.abs(pad:analogX())/64)
end
if dy > 30 then
Spieler_y = Spieler_y + (math.abs(pad:analogY())/64)
end
if dy < -30 then
Spieler_y = Spieler_y - (math.abs(pad:analogY())/64)
end
screen:blit(Spieler_x, Spieler_y, Spieler, true)
screen.flip()
screen.waitVblankStart()
end
Meine Fragen:
1. Wieso ist die Map leicht nach rechts unten versetzt?!
2. Wie bekomme ich die Kollison zwischen Spieler und Wand hin?
Danke im vorraus
Lukas
PS: Ziel des Spiels soll es werden, dass man wie in kinderzeitschriften den richtigen weg findne muss
ich habe angefangen Lua zu programmieren.
Jetzt wollte mich mit meinenm ersten Spiel anfangen.
Es soll ein kleines Labyrinth für meinen 4 jährigen Cousin werden.
Es soll in etwa so aussehen:
a=Image.load("Boden.JPG")
b=Image.load("Wand.JPG")
c=Image.load("Ziel.JPG")
Spieler=Image.load("Spieler.JPG")
Spieler_x = 64
Spieler_y = 224
map={
{b,b,b,b,b,b,b,b,b,b,b,b,b,b,b},
{b,a,a,a,a,a,b,b,b,b,b,b,b,b,b},
{b,a,b,b,b,a,b,b,b,b,b,b,b,b,b},
{b,a,b,b,b,a,b,b,b,b,a,a,a,a,b},
{b,a,b,b,b,a,a,a,b,b,a,b,b,a,b},
{b,a,b,b,b,b,b,a,b,b,a,b,b,a,b},
{b,a,b,b,b,b,b,a,a,a,a,b,b,c,b},
{b,b,b,b,b,b,b,b,b,b,b,b,b,b,b}
}
while true do
for c=1,8 do
for d=1,15 do
screen:blit(d*32,c*32,map[c][d],false)
end
end
pad = Controls.read()
dx = pad:analogX()
dy = pad:analogY()
if dx > 30 then
Spieler_x = Spieler_x + (math.abs(pad:analogX())/64)
end
if dx < -30 then
Spieler_x = Spieler_x - (math.abs(pad:analogX())/64)
end
if dy > 30 then
Spieler_y = Spieler_y + (math.abs(pad:analogY())/64)
end
if dy < -30 then
Spieler_y = Spieler_y - (math.abs(pad:analogY())/64)
end
screen:blit(Spieler_x, Spieler_y, Spieler, true)
screen.flip()
screen.waitVblankStart()
end
Meine Fragen:
1. Wieso ist die Map leicht nach rechts unten versetzt?!
2. Wie bekomme ich die Kollison zwischen Spieler und Wand hin?
Danke im vorraus
Lukas
PS: Ziel des Spiels soll es werden, dass man wie in kinderzeitschriften den richtigen weg findne muss