|
Verfasser |
Nachricht |
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
LUA - hilfe beim coden benötigt
hey liebes Forum,
da ich immerwieder probleme beim coden hab und auch hilfe brauche schreibe ich immerwieder hier rein also bitte nicht closen Admins
mein problem ist folgendes:
wenn ich drücke wird nur beipunch = 1 ausgeführt. beipunch = 2 wird nicht ausgeführt und deshalb meine frage was ist das problem, was muss geändert werden.
math.randomseed(os.time())
beipunch = math.random(1,2)
.
.
.
if pad:cross() and oldpad:cross() ~= pad:cross() and beipunch == 1 then
HP2 = HP2 + schlag
elseif pad:cross() and beipunch == 1 then
player2 = defend2
else player2 = normal2
end
if pad:cross() and oldpad:cross() ~= pad:cross() and beipunch == 2 then
Player2[1].x = Player2[1].x + 40
player2 = backward2
end
liebe Grüße SIM sk
Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2012 10:01 von SIM sk.
|
|
31.01.2012 10:00 |
|
|
|
Byter
Halbprofi
Beiträge: 157
Gruppe: User
Registriert seit: Dec 2011
Status:
Offline
Danke erhalten: 154
|
RE: LUA - hilfe beim coden benötigt
hey liebes Forum,
da ich immerwieder probleme beim coden hab und auch hilfe brauche schreibe ich immerwieder hier rein also bitte nicht closen Admins
mein problem ist folgendes:
wenn ich drücke wird nur beipunch = 1 ausgeführt. beipunch = 2 wird nicht ausgeführt und deshalb meine frage was ist das problem, was muss geändert werden.
[quote]
math.randomseed(os.time())
beipunch = math.random(1,2)
.
.
.
if pad:cross() and oldpad:cross() ~= pad:cross() and beipunch == 1
end
if pad:cross() and oldpad:cross() ~= pad:cross() and beipunch == 2
Wie soll der das unterscheiden?
|
|
31.01.2012 14:40 |
|
|
|
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
RE: LUA - hilfe beim coden benötigt
du musst deine frage schon deutlicher stellen ich habe ya auch nicht nur geschrieben, dass ich nen problem habe ^^
|
|
31.01.2012 16:42 |
|
|
|
fkrone
*meow*
Beiträge: 3.421
Gruppe: Super Moderator
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 5342
|
RE: LUA - hilfe beim coden benötigt
Klar, dass es nicht ausgeführt wird. Ich habe mich nie mit Lua auseinandergesetzt, aber bei end wird das Programm logischerweise beendet. Das Programm läuft so:
math.randomseed(os.time())
beipunch = math.random(1,2)
if pad:cross() and oldpad:cross() ~= pad:cross() and beipunch == 1 then
HP2 = HP2 + schlag
elseif pad:cross() and beipunch == 1 then
player2 = defend2
else player2 = normal2
end
Oder anders ... er hat nicht mal die Möglichkeit, zum 2. Teil zu springen, daher wird dieser nicht ausgeführt.
*ok, stimmt nicht ganz, siehe Post darunter. Lua ist eben doch eine Fremdsprache*
Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2012 17:07 von fkrone.
|
|
31.01.2012 17:00 |
|
|
|
shaplayer
King
Beiträge: 2.821
Gruppe: User
Registriert seit: Sep 2010
Status:
Abwesend
Danke erhalten: 2753
|
RE: LUA - hilfe beim coden benötigt
Klar, dass es nicht ausgeführt wird. Ich habe mich nie mit Lua auseinandergesetzt, aber bei end wird das Programm logischerweise beendet. Das Programm läuft so:
math.randomseed(os.time())
beipunch = math.random(1,2)
if pad:cross() and oldpad:cross() ~= pad:cross() and beipunch == 1 then
HP2 = HP2 + schlag
elseif pad:cross() and beipunch == 1 then
player2 = defend2
else player2 = normal2
end
Oder anders ... er hat nicht mal die Möglichkeit, zum 2. Teil zu springen, daher wird dieser nicht ausgeführt.
in lua wird da durch nur die iF-Clause beendet, das heißt dannach ladet der einfach weiter ...
|
|
31.01.2012 17:04 |
|
Folgende User bedanken sich: |
|
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
RE: LUA - hilfe beim coden benötigt
also weiß einer vllt wies sein müsste?
|
|
31.01.2012 17:07 |
|
|
|
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
RE: LUA - hilfe beim coden benötigt
|
|
02.02.2012 22:38 |
|
|
|
Sparky
Profi
Beiträge: 337
Gruppe: User
Registriert seit: Dec 2010
Status:
Offline
Danke erhalten: 73
|
RE: LUA - hilfe beim coden benötigt
Du setzt beipunch nirgends auf 2, machts jetzt klick?
…
|
|
02.02.2012 22:53 |
|
|
|
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
RE: LUA - hilfe beim coden benötigt
Du setzt beipunch nirgends auf 2, machts jetzt klick?
hab ich doch:
if pad:cross() and oldpad:cross() ~= pad:cross() and beipunch == 2 then
Player2[1].x = Player2[1].x + 40
player2 = backward2
end
|
|
03.02.2012 07:47 |
|
|
|
dx3m
Manta
Beiträge: 490
Gruppe: Developer
Registriert seit: Aug 2010
Status:
Abwesend
Danke erhalten: 643
|
RE: LUA - hilfe beim coden benötigt
hab ich doch
Eben nicht!
Ich hab keine ahnung von LUA.. aber ich sags jetzt mal so.. der fehler liegt in der reinen Logik in math.random..
beipunch = math.random(1,2)
auf deutsch er erzeugt Zwischen der zahl 1 und 2 ein random.. -> es is immer 1..
Hier ein C code um zu verstehen:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(int argc, char *argv[])
{
srand(time(0));
int rnum, i;
for(i=0;i<0x20;i++)
{
rnum = rand() % 2;
printf("Random Number: %i\n", rnum);
}
return 0;
}
Der code macht nichts anderes.. Das Resultat ist das hier:
Random Number: 1
Random Number: 1
Random Number: 1
Random Number: 1
Random Number: 0
Random Number: 0
Random Number: 0
Random Number: 1
Random Number: 1
Random Number: 1
Random Number: 0
Random Number: 0
Random Number: 1
Random Number: 0
Random Number: 0
Random Number: 1
Random Number: 1
Random Number: 0
Random Number: 0
Random Number: 1
Random Number: 1
Random Number: 1
Random Number: 1
Random Number: 0
Random Number: 0
Random Number: 0
Random Number: 1
Random Number: 1
Random Number: 1
Random Number: 0
Random Number: 0
Random Number: 1
Mach mal aus der zahl 2 eine 3.. dann wird es höchstwarscheinlich funktionieren..
EDIT:
- math.random() generates pseudo-random numbers uniformly distributed. Supplying argument alters its behaviour:
- math.random() with no arguments generates a real number between 0 and 1.
- math.random(upper) generates integer numbers between 1 and upper.
- math.random(lower, upper) generates integer numbers between lower and upper.
> = math.random()
0.0012512588885159
> = math.random()
0.56358531449324
> = math.random(100)
20
> = math.random(100)
81
> = math.random(70,80)
76
> = math.random(70,80)
75
upper and lower must be integer. In other case Lua casts upper into an integer, sometimes giving math.floor(upper) and others math.ceil(upper), with unexpected results (the same for lower).
Ok hatte doch recht ;P
Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2012 20:04 von dx3m.
|
|
03.02.2012 13:31 |
|
Folgende User bedanken sich: |
|
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
RE: LUA - hilfe beim coden benötigt
hab aus der 2 eine 3 gemacht ging trotzdem nicht ...?
|
|
03.02.2012 23:03 |
|
|
|
dx3m
Manta
Beiträge: 490
Gruppe: Developer
Registriert seit: Aug 2010
Status:
Abwesend
Danke erhalten: 643
|
RE: LUA - hilfe beim coden benötigt
hab aus der 2 eine 3 gemacht ging trotzdem nicht ...?
Ja weil du ganze Zahlen ausgeben musst!
> = math.random()
0.0012512588885159
> = math.random()
0.56358531449324
Sieht man doch das da keine ganzen Zahlen ausgegeben werden..
Und so wirds auch bei dir sein!
>.>
|
|
04.02.2012 00:09 |
|
|
|
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
RE: LUA - hilfe beim coden benötigt
und wie kann ich das ändern?
|
|
04.02.2012 08:24 |
|
|
|
duLouser
Halbprofi
Beiträge: 138
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 49
|
RE: LUA - hilfe beim coden benötigt
Das Problem ist, dass du von Anfang an einen großen code hast. Am besten baust du dir den code stück für stück zusammen und testest die kleinen neuerungen.
Du solltest zuerst mal gucken welchen wert beipunsch nun wirklich hat. Hab den Code kurz zusammengeschmirt und könnte fehler enthalten
red=Color.new(255,0.0)
function neu()
beipunsch = math.random()
end
math.randomseed(os.time())
beipunsch = math.random()
while true do
if Controls.read():cross() and oldpad ~= Controls.read() then neu() end
oldpad=pad
screen:clear()
screen:print(0,0,"Beipunsch: " ..beipunsch,red)
screen.flip()
if Controls.read():start() then break end
end
Das Leben ist ein scheiß Spiel, aber die Grafik ist Geil!!!
Blade! 0.7
Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2012 09:17 von duLouser.
|
|
04.02.2012 09:05 |
|
Folgende User bedanken sich: |
|
SIM sk
Experte
Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011
Status:
Offline
Danke erhalten: 135
|
RE: LUA - hilfe beim coden benötigt
vielen dank das probiere mal wenn ich zeit habe ^^
EDIT: der code hilft nicht, da ich ya will, dass wenn 1 ist ... geschehen soll und wenn 2 ist ,,, geschehen soll!
Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2012 17:34 von SIM sk.
|
|
04.02.2012 15:55 |
|
|
|
|