Beispiel #1
0
 def __init__(self, pallot):
     super(Biljardipeli, self).__init__()
     self.pelaajat = Pelaajat()
     self.lisaakiihtyvyydet = LisaaKiihtyvyydet()
     self.nopeusVerlet = VelocityVerlet(LautaData.dt)
     self.seina = Seina()
     self.reiat = Reiat()
     self.keppi = Keppi()
     self.pallot = pallot
     #self.piirtoalusta = PiirtoAlusta();
     #self.piirtoalusta.set_peli(self.biljardipeli)
     self.jatka = True
     self.pallotliikkuu = True
Beispiel #2
0
 def __init__(self, **kwargs):
     super(E8ballGame,self).__init__(**kwargs)
     self.pallot = Pallot()
     self.pelilauta = Pelilauta()
     for pallo in self.pallot.getPallotArray():
         print "ADDING BALL-WIDGET"
         self.add_widget(pallo)
     self.keppi = Keppi()
     self.pelaajat = Pelaajat();
     self.lisaakiihtyvyydet = LisaaKiihtyvyydet();
     self.nopeusVerlet= VelocityVerlet(LautaData.dt);
     self.seina = Seina();
     self.reiat = Reiat();        
     self.jatka = False
     self.pallotliikkuu = True;        
     self.x1=0
     self.y1=0        
     self.x2=0
     self.y2=0
Beispiel #3
0
class Biljardipeli(Widget):
    def __init__(self, pallot):
        super(Biljardipeli, self).__init__()
        self.pelaajat = Pelaajat()
        self.lisaakiihtyvyydet = LisaaKiihtyvyydet()
        self.nopeusVerlet = VelocityVerlet(LautaData.dt)
        self.seina = Seina()
        self.reiat = Reiat()
        self.keppi = Keppi()
        self.pallot = pallot
        #self.piirtoalusta = PiirtoAlusta();
        #self.piirtoalusta.set_peli(self.biljardipeli)
        self.jatka = True
        self.pallotliikkuu = True
        #self.piirtoalusta.piirra_keppi()

    def juokse(self):

        while (self.jatka):
            # ammutaan lyöntipallo
            #setDelay(1);
            print "jatketaan...", self.nopeusVerlet.getMaxSiirtyma(
            ), self.pallot.suurinNopeus()
            self.reiat.resetoiReiat()

            while (self.pallotliikkuu and self.jatka):
                #self.pallot.update_child()
                #print "loopissa...",self.nopeusVerlet.getMaxSiirtyma(),self.pallot.suurinNopeus(), self.pallot.suurinKiihtyvyys(), self.pallot.getPallotArray()[2].x
                self.pallot.nollaaKiihtyvyydet()
                print "before", self.pallot.getPallotArray(
                )[0].x, self.pallot.getPallotArray()[0].y
                #self.lisaakiihtyvyydet.lisaaCoulombKiihtyvyydetBiljardiPallot(
                #    self.pallot);
                self.lisaakiihtyvyydet.lisaaHardCoreKiihtyvyydet(self.pallot)
                #self.lisaakiihtyvyydet.lisaaKitka(self.pallot);
                self.nopeusVerlet.PaivitaVelocityVerlet(self.pallot)
                print "after", self.pallot.getPallotArray(
                )[0].x, self.pallot.getPallotArray()[0].y
                self.seina.VaihdaLiikemaara(self.pallot)
                self.reiat.setEkanaReiassa(self.pallot)
                self.reiat.lisaaReikiinMenneet(self.pallot)
                self.pelaajat.alkaakoYrittaaMustaa(self.reiat)
                self.reiat.tapaNormiPallot(self.pallot)

                self.jatka = self.reiat.tarkastaPallo(
                    self.pallot.getMustaPallo())

                if (not (self.reiat.tarkastaPallo(
                        self.pallot.getLyontiPallo()))):
                    self.pallot.arvoLyontiPallonPaikka(0, 0,
                                                       LautaData.MaxLautaX,
                                                       LautaData.MaxLautaY,
                                                       0.20)
                    self.pallotliikkuu = False
                    self.pallot.nollaaNopeudet()
                    # tutkitaan mitä tapahtui
                    self.jatka = self.pelaajat.tarkastaTilanne(
                        self.reiat, self.pallot)
                elif ((self.nopeusVerlet.getMaxSiirtyma() <
                       LautaData.maxSiirtyma)
                      and (self.pallot.suurinNopeus() < LautaData.maxNopeus)):
                    self.pallotliikkuu = False
                    self.pallot.nollaaNopeudet()
                    self.nopeusVerlet.setMaxSiirtyma(1.0)
                    # tutkitaan mitä tapahtui
                    self.jatka = self.pelaajat.tarkastaTilanne(
                        self.reiat, self.pallot)
                #sys.exit()
        # nollataan reikien tilanne uutta lyöntiä varten
        self.jatka = self.pelaajat.tarkastaTilanne(self.reiat, self.pallot)

    def getPallot(self):
        return self.pallot

    def getPelaajat(self):
        return self.pelaajat

    def getKeppi(self):
        return self.keppi

    def getReiat(self):
        return self.reiat

    def getPallotLiikkuu(self):
        return self.pallotliikkuu

    def setPallotLiikkuu(self, pallotliikkuu):
        self.pallotliikkuu = pallotliikkuu

    def getJatka(self):
        return self.jatka

    def setPaivitettava(self, paivitettava):
        self.paivitettava = paivitettava
Beispiel #4
0
class E8ballGame(FloatLayout):
    lauta = ObjectProperty(None)
    #pallo = ObjectProperty(None)
    #pallo = ObjectProperty(None)
    #keppi = ObjectProperty(None)
    #kuuntelija = ObjectProperty(None)
    x1 = NumericProperty()
    y1 = NumericProperty()
    x2 = NumericProperty()
    y2 = NumericProperty()

    def __init__(self, **kwargs):
        super(E8ballGame,self).__init__(**kwargs)
        self.pallot = Pallot()
        self.pelilauta = Pelilauta()
        for pallo in self.pallot.getPallotArray():
            print "ADDING BALL-WIDGET"
            self.add_widget(pallo)
        self.keppi = Keppi()
        self.pelaajat = Pelaajat();
        self.lisaakiihtyvyydet = LisaaKiihtyvyydet();
        self.nopeusVerlet= VelocityVerlet(LautaData.dt);
        self.seina = Seina();
        self.reiat = Reiat();        
        self.jatka = False
        self.pallotliikkuu = True;        
        self.x1=0
        self.y1=0        
        self.x2=0
        self.y2=0

#    def do_layout(self, *args):
#        print "LAYOUT"
#        for child in self.children:
#            child.height = self.height
#            child.width = self.width
#        if (self.jatka):
#            self.juokse()
            
    def on_size(self, *args):
        pass


    def on_pos(self, *args):
        pass
        #self.do_lay()

    def on_touch_up(self, touch):
        """ Ammutaan pallo liikkeelle """
        self.keppi.setPoikkeama(self.x1, self.y1, self.x2, self.y2)
        self.keppi.setPoikkeama_x(self.x1, self.x2)
        self.keppi.setPoikkeama_y(self.y1, self.y2)                
        self.x1=0
        self.y1=0        
        self.x2=0
        self.y2=0
        self.keppi.iske(self.pallot.getLyontiPallo())
        print "SHOT"
        self.reiat.resetoiReiat()
        self.jatka = True
        self.do_layout()
        #self.do_layout()
        

    def on_touch_move(self, touch):
        touch.ud['x1'] = self.pallot.getLyontiPallo().getPalloX()*self.width
        touch.ud['y1'] = self.pallot.getLyontiPallo().getPalloY()*self.height
        self.x1 = touch.ud['x1']
        self.y1 = touch.ud['y1']
        touch.ud['x2'] = touch.x
        touch.ud['y2'] = touch.y
        self.x2 = touch.ud['x2']
        self.y2 = touch.ud['y2']

    def do_layout(self, *args):
        for child in self.children:
            child.height = self.height
            child.width = self.width        
        count = 0
        if self.jatka:
            self.pallot.nollaaKiihtyvyydet();
            #self.lisaakiihtyvyydet.lisaaCoulombKiihtyvyydetBiljardiPallot(
            #    self.pallot);
            #self.lisaakiihtyvyydet.lisaaHardCoreKiihtyvyydet(self.pallot);
            self.lisaakiihtyvyydet.lisaaTormays(self.pallot);
            self.lisaakiihtyvyydet.lisaaKitkaNopeuteen(self.pallot);
            self.nopeusVerlet.PaivitaVelocityVerlet(self.pallot);
            self.seina.VaihdaLiikemaara(self.pallot);
            self.reiat.setEkanaReiassa(self.pallot);
            self.reiat.lisaaReikiinMenneet(self.pallot);            
            self.pelaajat.alkaakoYrittaaMustaa(self.reiat);
            self.reiat.tapaNormiPallot(self.pallot);

            self.jatka = self.reiat.tarkastaPallo(self.pallot.getMustaPallo());

            #self.do_layout()

            if (not(self.reiat.tarkastaPallo(self.pallot.getLyontiPallo()
            ))):
                self.pallot.arvoLyontiPallonPaikka(\
                    0, 0, 
                    LautaData.maxLautaX,LautaData.maxLautaY, 
                    0.20)
                self.pallotliikkuu = False;
                self.pallot.nollaaNopeudet();
                # tutkitaan mitä tapahtui
                self.jatka = self.pelaajat.tarkastaTilanne(
                    self.reiat, self.pallot);                
            elif ((self.nopeusVerlet.getMaxSiirtyma() < LautaData.maxSiirtyma) 
                  and (self.pallot.suurinNopeus() < LautaData.maxNopeus)):
                self.pallotliikkuu = False
                self.pallot.nollaaNopeudet()
                self.nopeusVerlet.setMaxSiirtyma(1.0)
                # tutkitaan mitä tapahtui
                self.jatka = self.pelaajat.tarkastaTilanne(
                    self.reiat, self.pallot)
                #sys.exit()
            # nollataan reikien tilanne uutta lyöntiä varten
            self.jatka = self.pelaajat.tarkastaTilanne(self.reiat, self.pallot);