Citat:
Ursprungligen postat av
Trollfeeder
Om TS vill börja enkelt kan han skita i flertrådat, men då måste han se till att det inte blir jättemånga cykler mellan varje repaint. Men mest då för att få se något röra sig. Man gör inga seriösa spel på det sättet. Ska man göra något annat än ett jättesimpelt spel så måste man såklart ha mer än en tråd.
Ja självklart går det att få saker att "fungera" med diverse fullösningar och brister. Jag tolkade dock att TS mål i första hand var att lära sig saker och om det stämmer så är detta definitivt ingen bra väg framåt.
Citat:
Ursprungligen postat av
Adgo
Till en början hade jag en separat class(tråd), i samma fil som koden jag visade, som bestod av keylistener. Man kunde spela två spelare och slå och sparka varandra. Det är nu i efterhand som jag vela ersätta den med någon sorts automation. Keylistener fanns det mycket att läsa om. Det var ganska enkelt att implementera men att ersätta den har varit svårt och det är det jag behöver hjälp med
Alltså, de missförstånd du visar (runt ex trådning) här gör att jag verkligen tycker att du skall vänta med Swing ett tag till. Du är inte redo för det helt enkelt. Precis som Trollfeeder också frågar så tycker jag du skall fundera på vad du vill uppnå först och främst. Om det är att lära dig Java så ta en sak i taget. Blanda inte in Swing i detta just nu.
Om du exempelvis skulle vara nöjd med att få din spellogik att fungera så skulle du kunna hålla ned detta till en enkel command line-applikation som simulerar fighten och läser dina inputs (snytingarna) från System.in och skriver ut vad som händer på System.out. Sannolikt tråkigare än du tänkt dig detta, men antagligen något som du kommer ta dig framåt bättre med. Allt blir enkeltrådat här varvid du slipper fundera på det i nuläget.
På längre sikt när du lärt dig mer så kanske du är redo att göra om den här koden till en logikmotor att köra i egen tråd. I det läget har du en bra grund att bygga en Swing-app ovanpå och få en prydlig lösning där enbart UI-updates körs på eventtråden medans all din spellogik rullar i sin egna separata tråd.