LazyFalcon / InputHandler

0 stars 0 forks source link

Pomysły again #2

Open LazyFalcon opened 7 years ago

LazyFalcon commented 7 years ago

klawisze mogą włączać przecież stany w obiekcie, klawisze mogą te stany włączać, a reszta akcji może mieć do nich dostęp. Tylko teraz modyfikatory wszystko mi psują, bo przysłaniają właściwe mappingi. Rozwiązaniem jest to żeby modyfikatory nie były brane pod uwagę, a jedynie ustawiały stan w klasie usera. Można im też dać stan repeat.

onKey("shift", [this]{ this->preciseMovement=true; }, [this]{ this->preciseMovement=false; });
onKey("w", [this]{
   velocity=50;
   if(this->preciseMovement) velocity*=0.1;
});

Ma to więcej sensu, i jest trochę prostsze, z resztą można dać możliwość właczenia takiego zachowania. Można zrobić też tak że sprawdzamy czy jest taka funkcja z modyfikatorem a jeśli nie to odpalamy, tą bez.

A konteksty mogłyby konsumować input, można je wtedy poukładać w stos i dać opcję dziedziczenia bindingów i wielokrotne bindingi pod klawisz.

LazyFalcon commented 7 years ago

I w ogóle trzeba to zrefaktoryzować.