Trådning i python

  • Författare
  • Meddelande

simonwallin89

css-hackare

  • Inlägg: 21
  • Blev medlem: 08 sep 2014, 13:01

Trådning i python

Inlägg11 nov 2014, 22:22

Hej jag håller på och gör ett tennisspel för uppgiften "game2" och jag insåg att det skulle bli absolut bäst resultat om jag kunde tråda en timer till bollen. Jag har letat lite men hittar inget jätte bra exempel online (jag förstår inte riktigt hur det fungerar). Det jag tänker mig är något liknande en class man kan starta timern och sedan kontrollera om timern är färdig. Jag skulle verkligen uppskata några exempel eller tips!
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10921
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Trådning i python

Inlägg12 nov 2014, 13:45

Jag tror det du söker finns i exempelprogrammet curses/bouncing-ball.py och curses/move-pad.py.

Det är en enkel variant av en "klassisk" game-loop.

Du behöver inte blanda in trådning i uppgiften.

Men berätta gärna hur du tänkte lösa det. Så kan vi se.
...
..:
.... /mos

simonwallin89

css-hackare

  • Inlägg: 21
  • Blev medlem: 08 sep 2014, 13:01

Re: Trådning i python

Inlägg14 nov 2014, 10:16

Jag kollade på dina program och jag har löst bollförflyttningen på ett liknande sätt. dok är problemet att om man använder sleep() så kommer hela programmet att stanna den tiden och jag tänkte att det skulle vara bättre om man kunde flytta sin spelarmarkör oberoende av bollen. Jag gjorde en "fullösning" där jag bara flyttade bollen var 3000e spel-loop men då blir spelet istället datorberoende (typ warcraft 2 syndromet).
det jag hade tänkt var typ något liknande:
Kod: Markera allt
class backgroundTimer():
    """
    A timer for the Ball
    """
    def __init__(self, status):
        self.done = status
    def timer(self, start):
        self.done = False
        if start == 1:
            time.sleep(1)
        self.done = True

och sedan kan man kolla om den är klar (done==True). Problemet var bara att när jag startade en tråd så hamnade den nya tråden "överst" så den gjorde allt den skulle men curser ritade inte ut något.

Jag är inte säker på om jag har förklarat så bra så om det är oklart så kan ni strunta i det eftersom jag hittat en ok lösning.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10921
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Trådning i python

Inlägg14 nov 2014, 20:54

Apropå gameloopar så är här ett exempel på hur man hanterar datorer som går olika fort, man inför en variabel timediff.
https://stackoverflow.com/questions/163 ... 8#16301978

I det svaret länkas också till denna artikeln som ger lite mer utförlig beskrivning av en gameloop, generellt sett.
http://www.koonsolo.com/news/dewitters-gameloop/

Vill man sen ta nästa steget i "spelprogrammering" med python så är det inte dumt att kika på pygame.
http://www.pygame.org/news.html

Här är en artikel som går igneom grunderna med att skriva ett spel i pygame.
http://openbookproject.net/thinkcs/pyth ... ygame.html
...
..:
.... /mos

simonwallin89

css-hackare

  • Inlägg: 21
  • Blev medlem: 08 sep 2014, 13:01

Re: Trådning i python

Inlägg19 nov 2014, 10:23

Tack för alla tipsen!

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 3 gäster