Antwort schreiben  Thema schreiben 
Seiten (2): « Erste [1] 2 Nächste > Letzte »
Verfasser Nachricht
luaprogrammer
Durchstarter
**


Beiträge: 53
Gruppe: User
Registriert seit: Jun 2012

Status: Offline
Danke erhalten: 9
Beitrag: #1
Exclamation  Lua, warten und springen

Hi, heute hab ich gleich 2 Fragen:

1: Gibt es in Lua eine möglichkeit zu warten also "tue das, dann warte
2 sekunden, dann tue das" <-- jaaaa... so ungefähr halt Big Grin

2: Wie könnte mann in einem kleinem 2d spiel (super-mario sicht) einem charackter das springen beibringen? also das der typ sich hoch und wieder runter bewegt. wenn ich dass so ungefähr mache:

Code:
if pad:up() then
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y + 1
Player.y = Player.y + 1
Player.y = Player.y + 1
Player.y = Player.y + 1
Player.y = Player.y + 1
end


hab auch andere sachcen durchprobiert, nix hat geklappt Sad

und jetzt bitte ich um hilfe xD

~Manu





07.07.2012 08:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
SIM sk
Experte
****


Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 135
Beitrag: #2
RE: Lua, warten und springen

zum erstem: Was hatte er gemacht und wann soll er denn warten?

Zum zweitem: probiere ich später wenn ich Zeit haben sollte

07.07.2012 09:45
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
luaprogrammer
Durchstarter
**


Beiträge: 53
Gruppe: User
Registriert seit: Jun 2012

Status: Offline
Danke erhalten: 9
Beitrag: #3
xPSP  RE: Lua, warten und springen

Zum ersten:
für alle möglichen sachen z.b diese hier:

Code:
function ccz(object)
if (Player.x + 16 &gt; object.x) and (Player.x &lt; object.x + 16) and (Player.y + 16 &gt; object.y) and (Player.y &lt; object.y + 16) then
screen:fontPrint(fonta,210,136,"Sieg",white)
--warte 5 sekunden--
--starte das spiel neu--
end
end


also wenn der spieler so einigermaßen "im block drinne ist" soll das programm das spiel neustarten.

zum zweiten: ok danke Big Grin





07.07.2012 10:22
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #4
xPSP  RE: Lua, warten und springen

Code:
if pad:up() then
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y - 1
Player.y = Player.y + 1
Player.y = Player.y + 1
Player.y = Player.y + 1
Player.y = Player.y + 1
Player.y = Player.y + 1
end


Wenn Sie das so machen wird das nie was, Sie verniedrigst und erhöhen den Wert ja nur im selben moment, bevor es der Player überhaupt auffassen kann.
Versuchen Sie vielleicht einen Umweg zu machen zum Beispiel:

(ich kann kein Lua also wird wahrscheinlich auch was falsch geschrieben sein ^^)

Code:
if pad:up() and playerJump &lt; 1 then
   playerJump = 1
end

if playerJump == 1 then
   Player.y = Player.y - 1
   if Player.y == 10 then
      playerJump = 2
   end
end
if playerJump == 2 then
   Player.y = Player.y + 1
   if Player.y == 20 then
      playerJump = 0
   end
end

Bild ausgabe...

(&lt; ist gleich < wird nur von der Codebox anders dargestellt)

Also so ungefähr, denken Sie sich einfach einen Umweg

Spoiler: (anzeigen)


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 07.07.2012 11:01 von dark-awesome.

07.07.2012 10:40
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
luaprogrammer (Jul-7-2012)
duLouser
Halbprofi
***


Beiträge: 138
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 49
Beitrag: #5
xPSP  RE: Lua, warten und springen

wie dark-awesome schon schön sagt, darfst du nicht alle rechenschritte in einer sekunde ausführen lassen:

dark-awesome :
Code:
if pad:up() then
playerJump = 1
end

if playerJump == 1 then
Player.y = Player.y - 1
if Player.y == 10 then
playerJump = 2
end
end
if playerJump == 2 then
Player.y = Player.y + 1
if Player.y == 20 then
playerJump = 0
end
end

Bild ausgabe...


ich persöhnlich würde aber, wenns wie bei mario sein soll, auch nur einmal abspringen:


if pad:up() and Player.y == 272 then
Player.yspeed = Player.yspeed + 5
end
Player.y = Player.y - Player.yspeed
if Player.y > 272 then
Player.y = 272
end
if Player.y < 272 then
Player.yspeed = Player.yspeed - 0.03
end




Ich hab einfach mal 272 als unterste grenze genommen, kannst du ja abwandeln. Außerdem hab ich eine weitere Variable hinzugefügt, die für die Geschwindigkeit auf der y-achse zuständig ist.


Und wenn du den Bildschirm warten lassen willst, benutz

screen.waitVblankStart()

die zahl in der Klammer gibt die anzahl der miisekunden, die gewartet werden soll, an. Bei 5 sekunden wären das 5000 milisekunden:

screen.waitVblankStart(5000)


Das Leben ist ein scheiß Spiel, aber die Grafik ist Geil!!!


Blade! 0.7
07.07.2012 11:01
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
luaprogrammer (Jul-7-2012), dark-awesome (Jul-7-2012)
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #6
xPSP  RE: Lua, warten und springen

duLouser :
ich persöhnlich würde aber, wenns wie bei mario sein soll, auch nur einmal abspringen:


if pad:up() and Player.y == 272 then
Player.yspeed = Player.yspeed + 5
end
Player.y = Player.y - Player.yspeed
if Player.y > 272 then
Player.y = 272
end
if Player.y < 272 then
Player.yspeed = Player.yspeed - 0.03
end


Am besten nehmen Sie diese Methode, meine sollte eher als Denkanstoß wirken und war eher schnell getipp, weil ich essen musste ^^

Edit:
Mein Lösungsvorschlag ist eher zum genauen Springen. Der sprung wird immer die selbe höhe haben und immer die selbe Dauer.


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 07.07.2012 11:09 von dark-awesome.

07.07.2012 11:06
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
luaprogrammer (Jul-7-2012)
luaprogrammer
Durchstarter
**


Beiträge: 53
Gruppe: User
Registriert seit: Jun 2012

Status: Offline
Danke erhalten: 9
Beitrag: #7
RE: Lua, warten und springen

Jo, danke, klingt gut, ich werde es gleich ausprobieren.

aber eine frage, wenn mann den befehl "scren.waitVblankStart()"
benutzt müsste ja der bildschrim warten, also dass in der zeit überhaupt garnichts mehr passiert/gemachtwerden kann. oder irre ich mich.

aber trotzdem danke, ich werde es probieren, wen ishc probleme ergeben melde ich mich nocheinemal.





07.07.2012 11:11
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
luaprogrammer
Durchstarter
**


Beiträge: 53
Gruppe: User
Registriert seit: Jun 2012

Status: Offline
Danke erhalten: 9
Beitrag: #8
xPSP  RE: Lua, warten und springen

Ok, habs mit beidem mal ausprobiert, mit dem ersten hats wie gesagt zwar funktioniert, aber wenn der spieler mal auf einer anderen höhe seien solte funktioniert dies natürlich nicht mehr.
aber trotzdem danke Big Grin

zum zweiten, gibt es wenig zu sagen: er funkitoniert nicht.

ich habe ihn ein bisschen abgeändert dass er dann so aussah:

Code:
Player.yspeed = 0
if pad:up() and Player.y == 235 then
Player.yspeed = Player.yspeed + 5
end
Player.y = Player.y - Player.yspeed
if Player.y &gt; 235 then
Player.y = 235
end
if Player.y &lt; 235 then
Player.yspeed = Player.yspeed - 0.03
end
end


ich habe nur die zahlen etwas geändert also, die ganzen 272'iger in 235'iger umgewandelt und oben den string

Code:
Player.yspeed = 0


hingesetzt, ohne den startete das spiel garnicht. aber nun bewegt sich wenn ich oben drücke der spieler nur um 5y hoch und bleibt dort stehen?!?! ich kapier es nicht mehr, und für mich sieht der code ja auch richtig aus!

habst du/ihr noch ideen? Noidea





07.07.2012 12:21
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #9
xPSP  RE: Lua, warten und springen

luaprogrammer :
Ok, habs mit beidem mal ausprobiert, mit dem ersten hats wie gesagt zwar funktioniert, aber wenn der spieler mal auf einer anderen höhe seien solte funktioniert dies natürlich nicht mehr.
aber trotzdem danke Big Grin


Höhen können Sie ja nach belieben ändern.
Einfacher Denkanstoß: Man macht eine Grundhöhe die ist immer die höhe des Spielers somit sollte man immer gleich hoch springen. Der rest hängt von den gemachten Colisionen ab.

Beispiel:
grundhoehe = player.y

Wenn Sie es damit nicht hinbekommen werde ich nachher mal ein Beispiel machen. Ich muss jetzt aber noch sehr viel erledigen.

Edit:
Sie sollten auch noch eine allgemeine Gravitation machen.
Beispiel:
gravitation = 5
player.y = player.y - gravitation


Dies ist dafür da, falls der Player mal von einer hohen Position zu einer niedrigeren springen soll. Der Rest wird wie gesagt durch die Kollisionen geregelt.


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 07.07.2012 12:50 von dark-awesome.

07.07.2012 12:44
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
luaprogrammer (Jul-7-2012)
luaprogrammer
Durchstarter
**


Beiträge: 53
Gruppe: User
Registriert seit: Jun 2012

Status: Offline
Danke erhalten: 9
Beitrag: #10
RE: Lua, warten und springen

ok, danke Big Grin





07.07.2012 16:20
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
secret
Experte
****


Beiträge: 569
Gruppe: User
Registriert seit: Jul 2011

Status: Offline
Danke erhalten: 210
Beitrag: #11
xPSP  RE: Lua, warten und springen

Ich bin mir nicht sicher aber für springen brauchst du glaube ich die gravitation Formel....

oder so ähnlich ich hab davon nicht viel Ahnung Big Grin


Quelle: http://de.wikipedia.org/wiki/Gravitationskonstante


Dieser Beitrag wurde zuletzt bearbeitet: 07.07.2012 17:52 von secret.

07.07.2012 17:50
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
luaprogrammer
Durchstarter
**


Beiträge: 53
Gruppe: User
Registriert seit: Jun 2012

Status: Offline
Danke erhalten: 9
Beitrag: #12
RE: Lua, warten und springen

:D klaaar =)

verlange aber kein danke von mir Tongue

Big Grin





07.07.2012 19:49
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
SIM sk
Experte
****


Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 135
Beitrag: #13
xPSP  RE: Lua, warten und springen

sieh dir mal diesen Code auf Evilmana an.
Versuche ihn zu verstehen und ihn so umzuändern, dass er zu deinem Code passt Smile

Dieser Beitrag wurde zuletzt bearbeitet: 08.07.2012 08:13 von SIM sk.

08.07.2012 08:13
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #14
xPSP  RE: Lua, warten und springen

secret :
Ich bin mir nicht sicher aber für springen brauchst du glaube ich die gravitation Formel....

oder so ähnlich ich hab davon nicht viel Ahnung Big Grin


Quelle: http://de.wikipedia.org/wiki/Gravitationskonstante


Die Gravitationskonstate wird benutzt um die anziehungskraft zwischen zwei Punktförmigen massen zu berechnen (z.b. die zwischen 2 planeten)

Wenn er Physikalisch korrekt da ran gehen will, sollte we viel mehr nur mit der Erdgravitation (etwa 9,81 m/s²) arbeiten. nenn wir sie mal sinngemäß a (a für acceleration -> Beschleunigung)

jetzt brauch er nurnoch beim sprung einmal den vy-wert auf z.b. -3 m/s setzten (hier muss er testen bei welchem wert die sprunghöhe am besten fürs gameplay ist)

und jetzt in der hauptschleife einfach immer diesen code ausführen:

Code:
Player.y = Player.y + Player.vy
Player.vy = Player.vy + g



im gesamten sähe das dann so aus:

Code:
a = 2 //Das ist die stärke der gravitation im spiel, 9,81 dürfte dafürs gameplay zu stark sein, musste ausprobieren welcher wert gut ist
vs = -4 //das ist die Geschwindigkeit auf die der player beim sprung gesetzt wird. je weiter die zahl ins negative geht, desto höher der Sprung

while true do //halt die normale haupt-schleife

... //hier halt irgend ein code von dir

if pad:up() then //hier wird der sprung gestartet
Player.vy = vs //indem die y-geschwindigkeit auf dei vorher festgelegte "sprungstärke" gesetzt wird
end


if Player.y &lt; 235 or Player.y == 235 and Player.vy ~= 0 Then //überprüfen ob der player grade springt
Player.y = Player.y + Player.vy //spieler bewegt sich nach oben bzw. ab der sprunghälfte nach unten
Player.vy = Player.vy + a //hier passiert die magie, denn die geschwindigkeit wird mit der gravitationsbeschleunigung angepasst, so dass es aussieht wie ein echter sprung
else //wenn der spieler nicht im sprung ist, dann ...
Player.y = 235 //... soll er auf der höhe 235 sein
Player.vy = 0 //und nicht beschleunigt sein
end

... //hier weiterer code von dir, inklusive dem code fürs anzeigen vom player

end //ende der hauptschleife


und für die lesbarkeit nochmal, aber ohne kommentare:

Code:
a = 2
vs = -4

while true do

...

if pad:up() then
Player.vy = vs
end

if Player.y &lt; 235 or Player.y == 235 and Player.vy ~= 0 Then
Player.y = Player.y + Player.vy
Player.vy = Player.vy + a
else
Player.y = 235
Player.vy = 0
end

...

end


der code ist komplett ungetestet, aber mit etwas glück habe ich keine fehler reingebaut, wenn doch, ist er am ehesten in der if bedingung zu suchen, in der geprüft wird ob der player grade springt





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)

Dieser Beitrag wurde zuletzt bearbeitet: 08.07.2012 11:42 von Neutrosider.

08.07.2012 11:40
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
luaprogrammer
Durchstarter
**


Beiträge: 53
Gruppe: User
Registriert seit: Jun 2012

Status: Offline
Danke erhalten: 9
Beitrag: #15
RE: Lua, warten und springen

o.O ok danke! und eismal wirklich Big Grin

mal gucken ob der funktioniert, der von evilmana hat nur halb funktioniert, er hatte ein paar... bugs Big Grin





08.07.2012 13:16
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Seiten (2): « Erste [1] 2 Nächste > Letzte »
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP Csharp an bestimmte stelle springen lassen davdda 6 2.489 23.06.2011 21:11
Letzter Beitrag: davdda

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang