Hallo alle,
was macht inputBinding.hasEvent bzw inputBinding.isPressed?
was ist der unterschied von beiden?
mit freundlichen Grüßen
schlüter55v
Hallo alle,
was macht inputBinding.hasEvent bzw inputBinding.isPressed?
was ist der unterschied von beiden?
mit freundlichen Grüßen
schlüter55v
Ich bin mir nicht sicher, aber ich könnte mir vorstellen, dass...
...inputBinding.isPressed eine Taste/Binding wie z.B. W,A,S,D ist. Die Taste muss man auch gedrückt halten um zu fahren.
...inputBinding.hasEvent könnte dann eine Aktionstaste sein, die durch einmaliges drücken aktiviert wird. Z.B. bei den Standardgeräten die Taste X zum ausklappen.
Ist nur ne Vermutung, kann auch sein, dass ich total daneben liege
.hasEvent = Taste wurde einmal gedrückt
.isPressed = Taste wird gedrückt gehalten
So stimmt es richtig.
MfG
ok ich habe ein Problem in einem Script.
[lua]ballenwagen = {};
function ballenwagen.prerequisitesPresent(specializations)
return SpecializationUtil.hasSpecialization(Attachable, specializations);
end;
function ballenwagen:load(xmlFile)
self.schiebena = false
self.klappea = false
end;
function ballenwagen:readStream(streamId, connection)
end;
function ballenwagen:writeStream(streamId, connection)
end;
function ballenwagen:update(dt)
end;
function ballenwagen:updateTick(dt)
if self:getIsActiveForInput() then
if InputBinding.hasEvent(InputBinding.klappeoffnen) then
self.klappea = true;
end;
if InputBinding.hasEvent(InputBinding.entladen) then
if self.balesAttached == false and self.klappea == true then
self.schiebena = true;
else
self.schiebena = false;
renderText(0.5, 0.5, 0.05, "Ballen zum entladen loesen");
end;
end;
end;
end;
function ballenwagen:draw()
renderText(0.55, 0.08, 0.04, tostring(self.klappea));
renderText(0.55, 0.08, 0.04, tostring(self.schiebena));
end;
function ballenwagen:onDetach()
end;
function ballenwagen:delete()
end;
function ballenwagen:mouseEvent(posX, posY, isDown, isUp, button)
end;
function ballenwagen:keyEvent(unicode, sym, modifier, isDown)
end;
[/lua]
ich arbeite mit toggleanimatedparts (listenTo)
es funktioniert nur nicht ganz.
wenn ich ingame nun die taste für InputBinding.klappeoffnen drücke, öffnet sich auch die klappe, nur beim erneutem drücken geht sie nicht wieder zu??
an was liegt das?
Mit freundlichen Grüßen
schlüter55v
da steht nur was davon, bei welchen bedingungen die klappe öffnen soll. Nicht wann sie wieder zugehn soll.
ok was ich aber auch nicht verstehe ist folgendes.
Ich drück die Taste für
InputBinding.klappeoffnen
welchen wert erhält denn nun das inputbinding?
ich will es quassi auf die weise machen.
[lua]if InputBinding.hasEvent(InputBinding.klappeoffnen) then
x = x + 1;
if x == 2 then
x = 0
end;
end;
if x > 0 then
self.klappea = true;
else
self.klappea = false;
end;
[/lua]
ich hab aber mal nen Thread gesehen, in dem geschrieben wurde, das dass mit den Zahlen umständlicher ist.
Es muss doch auch anders gehen.
Weil in manchen scripten, die auf der selben taste öffnen und schließen, ist auch nichts mit x = x +1?
Wisst ihr was ich meine?
geht am einfachsten so:
[lua]
if InputBinding.hasEvent(InputBinding.klappeoffnen) then
self.klappea = not self.klappea;
end;
[/lua]
self.klappea muss im load bereich definiert werden und true oder false haben. beim drücken der taste wird der wert umgekehrt, aus true wird false und false - true.
in deinem letzten beispiel mit den zahlen verwendet man eigentlich nur wenn man nacheinander aktionen aufrufen will.
Danke Heady,
jetzt funktioniert das mit dem InputBinding,
aber irgendwie fährt die animation nicht zurück, wenn der wert von self.klappea wieder false ist?
wieso eigentlich nicht?
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!