KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: LUA:Mauer beschränken ?
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi...
wie kann ich machen,dass wenn ich auf ein Punkt komme, dass ein neues script oder ein bild erscheint ?

danke.
das ist ganz leicht also du komische katze im papkarton sei mal netter

so erst muss du kollusionen können dan eine if schleife also so


die kollusionen kenn ich ja nicht daher ersetze ich die mit einen prall


if 30 = prall then
dofile("ORDNER/ORNDER2/DATEI.lUA")
end

so ungefähr nur du muss kollusionen können
also auf deutsch wenn es zone 30 behrüht dann dofile also öffne datei blabal
zum vergleichen muss man bei LUA 2 mal = schreiben.

Code:
if position == 10 then
dofile("blubb.lua")
end


oder

Code:
if position == 10 then
screen:blit(posx,posy,bild,true)
end

Danke. Habs schon soweit verstanden,
Aber wieso position == 10 (oder 30) ????
Soll man hier nicht die Koordinaten angeben ?
Oder was ist damit gemeint ?
also kp aber das hat glaube was mit den pixel oder position zutun also

guck zu

dein mensch ist pos 100

xpos=0
ypos=100

mensch=x
ypos120=|

x |
soo nun wenn er bei 120 kommt soll es datei laden

x| nun ladet es verstanden?


srry wens falsch ist aber ich zeig dir nur wie es funktioniert also das ist nicht der code
Okay, aber ist dann mit position == 10 die X Achse oder die Y Achse gemeint ?
Wie mach ich dass dann, wenn meine Person irgendwo in der Mitte ist (also X=z.B.200 und Y=z.B.50) und dort ein neues LUA Script erscheinen soll ?
Ich hoffe ihr versteht mich.
danke

MoDz :
Okay, aber ist dann mit position == 10 die X Achse oder die Y Achse gemeint ?
Wie mach ich dass dann, wenn meine Person irgendwo in der Mitte ist (also X=z.B.200 und Y=z.B.50) und dort ein neues LUA Script erscheint ?
Ich hoffe ihr versteht mich.
danke

Code:
if player.x == 200 and player.y == 50 then
dofile("Beispiel.lua")
end

Du musst natürlich vorher player.x und player.y definieren!

so:
player.x = Eine Zahl,aber nicht 200
player.y = Eine Zahl,aber nicht 50

....
Das wars eigentlich...

Also das mit der Position war ein reines beispiel.
Nehmen wir an, du lässt eine Kugel vom linken Rand des Bildschirms nach rechts wandern.
Das machst du, indem du die X-Koordinate bei jedem Durchlauf der Hauptschleife um 1 erhöhst.
Du willst aber, dass wenn die Kugel 30 Pixel gewandert ist, die Kugel stehen bleibt ein Bild erscheint.

gekürzter code:

Code:
while true do

if posx < 30 then
posx = posx+1
end

if posx == 30 then
screen:blit(0,0,bild,true)
end

end

sorry wenn ein fehler drin ist aber ich habe mich schon lange nicht mehr mit lua beschäftigt.

ja was er damit meint ist x.player und y.player sind nur veriablen du kannst auch was ich immer mache nehmen das geht ungefähr so

xpos=170 --da startet meine figur
ypos=170 -- da auch x = links recht Y= oben unten
while true do
if xpos = 200 and ypos = 200 then
dofile("Data/sys/datei.lua")
end
end


so geht das also die figur startet auf dem punkt 170x170 wenn sie beim punkt 200x200 gelangen ist dan öffnet sich die datei.lua Wink ganz einfach
Danke an alle ..
Habs endlich verstanden !

^^
gut zu wissen hate auch ein paar problemme früher ^^
Jetzt wollte ich, ein Homebrew coden (da ich die Materie für das Spiel schon kenne) und habe schon das Menü fertig ...
Doch nur ein fehlercode erscheint :
6 [sig] luaplayer 3900 open_stackdumpfile : Dumping stack trace to luaplayer.exe.stackdump
...
Vielleicht könnt ihr damit was anfangen .

Code:
--Colours--
black=Color.new(0,0,0)
--Pics--
back=Image.load("back.png")

--Variable--
current=1
--A--
while true do
pad=Controls.read()
screen:clear()
screen:blit(0,0,back)
--B--
if current == 1 then
screen:clear()
screen:blit(0,0,back)
screen:print(55,55,"Play Game",black)
screen:print(55,75,"Help",black)
screen:print(55,95,"Credits",black)
screen:print(55,115,"Quit",black)
end
if current == 2 then
screen:clear()
screen:blit(0,0,back)
screen:print(55,55,"Play Game",black)
screen:print(55,75,"Help",black)
screen:print(55,95,"Credits",black)
screen:print(55,115,"Quit",black)
end
if current == 3 then
screen:clear()
screen:blit(0,0,back)
screen:print(55,55,"Play Game",black)
screen:print(55,75,"Help",black)
screen:print(55,95,"Credits",black)
screen:print(55,115,"Quit",black)
end
if current == 4 then
screen:clear()
screen:blit(0,0,back)
screen:print(55,55,"Play Game",black)
screen:print(55,75,"Help",black)
screen:print(55,95,"Credits",black)
screen:print(55,115,"Quit",black)
end
--Up-Down--
if pad:up() and oldpad:up() ~= pad:up() then
current = current - 1
end
if pad:down() and oldpad:down() ~= pad:down() then
current = current + 1
end
--Up-Down--
if current == 4 then
current = 1
end
if current == 0 then
current = 4
end
--Cross--
if pad:cross() and current == 1 then
dofile ("game.lua")
end
if pad:cross() and current == 2 then
dofile ("help.lua")
end
if pad:cross() and current == 3 then
dofile ("credits.lua")
end
if pad:cross() and current == 4 then
System.Quit()
end
--END--
screen.waitVblankStart()
screen.flip()
oldpad=pad
end


Danke.

EDIT// Die UNERSTRICHENEN (6 und 3900) WECHSELN NACH JEDEM START IMMER . (immer andere)

Haste es auf der PSP oder am PC getestet?
Teste es mal mit dem LUA HM Player7 auf der PSP...
Ich hab das auf dem PC getestet (IMMER!) ...
Wie krieg ich das auf der PSP mit dem LUAPLAYER usw. hin ?

danke.

EDIT : Den Player habe ich schon gefunden .
Seiten: 1 2 3 4
Referenz-URLs