示例#1
0
文件: objekty.py 项目: sim1234/czolgi
 def jezdz(self, dane):
     if self.ti%self.freq==0:
         k=kula(self.nx+self.px,self.ny+self.py,self.nvx,self.nvy, self.klt)
         dane.nab.append(k)
         dane.sounds["shot"].play()
     self.ti+=1
示例#2
0
文件: player.py 项目: sim1234/czolgi
    def jezdz(self, dane):
        self.v = 0.5
        if self.wytrzymalosc > 2 and dane.boardkeys[self.k_speed]:
            self.v = 1
            self.wytrzymalosc -= 3
        if self.v <= 0.5 and self.wytrzymalosc < 1000:
            self.wytrzymalosc += 2
        ml = 1
        mr = 1
        md = 1
        mu = 1
        x = 0
        xlen = len(dane.gracze)
        while x < xlen:  # miedzy sobą
            if dane.gracze[x].name != self.name:
                if (
                    int(dane.gracze[x].pozx + dane.gracze[x].w) == int(self.pozx)
                    and dane.gracze[x].pozy + dane.gracze[x].h > self.pozy
                    and dane.gracze[x].pozy < self.pozy + self.h
                ):
                    ml = 0
                if (
                    int(dane.gracze[x].pozx) == int(self.pozx + self.w)
                    and dane.gracze[x].pozy + dane.gracze[x].h > self.pozy
                    and dane.gracze[x].pozy < self.pozy + self.h
                ):
                    mr = 0
                if (
                    int(dane.gracze[x].pozy + dane.gracze[x].h) == int(self.pozy)
                    and dane.gracze[x].pozx + dane.gracze[x].w > self.pozx
                    and dane.gracze[x].pozx < self.pozx + self.w
                ):
                    mu = 0
                if (
                    int(dane.gracze[x].pozy) == int(self.pozy + self.h)
                    and dane.gracze[x].pozx + dane.gracze[x].w > self.pozx
                    and dane.gracze[x].pozx < self.pozx + self.w
                ):
                    md = 0
            x += 1

        x = 0
        while x < self.h:  # o scianki
            if dane.boardkeys[self.k_left] and self.pozx >= 1 and self.pozy < dane.map.h - x:
                if dane.map.dobije(dane.map.bm.get_at((int(self.pozx - 1), int(self.pozy + x)))):
                    ml = 0
            if dane.boardkeys[self.k_right] and self.pozx < dane.map.w - self.w and self.pozy < dane.map.h - x:
                if dane.map.dobije(dane.map.bm.get_at((int(self.pozx + self.w), int(self.pozy + x)))):
                    mr = 0
            x += 1
        x = 0
        while x < self.w:
            if dane.boardkeys[self.k_up] and self.pozx < dane.map.w - x and self.pozy >= 1:
                if dane.map.dobije(dane.map.bm.get_at((int(self.pozx + x), int(self.pozy - 1)))):
                    mu = 0
            if dane.boardkeys[self.k_down] and self.pozx < dane.map.w - x and self.pozy < dane.map.h - self.h:
                if dane.map.dobije(dane.map.bm.get_at((int(self.pozx + x), int(self.pozy + self.h)))):
                    md = 0
            x += 1

        if self.pozx <= 0:
            ml = 0
        if self.pozx + 1 >= dane.e_w - self.w:
            mr = 0
        if self.pozy <= 0:
            mu = 0
        if self.pozy >= dane.e_h - self.h:
            md = 0

        if (
            dane.boardkeys[self.k_left] and not dane.boardkeys[self.k_up] and not dane.boardkeys[self.k_down]
        ):  # ruch pion / poziom
            if ml:
                self.pozx -= self.v
            self.kier = 7
        if dane.boardkeys[self.k_right] and not dane.boardkeys[self.k_up] and not dane.boardkeys[self.k_down]:
            if mr:
                self.pozx += self.v
            self.kier = 3
        if dane.boardkeys[self.k_up] and not dane.boardkeys[self.k_left] and not dane.boardkeys[self.k_right]:
            if mu:
                self.pozy -= self.v
            self.kier = 1
        if dane.boardkeys[self.k_down] and not dane.boardkeys[self.k_left] and not dane.boardkeys[self.k_right]:
            if md:
                self.pozy += self.v
            self.kier = 5

        if dane.boardkeys[self.k_left] and dane.boardkeys[self.k_up]:  # ruch skos
            if ml:
                self.pozx -= 0.7 * self.v
            if mu:
                self.pozy -= 0.7 * self.v
            self.kier = 8
        if dane.boardkeys[self.k_left] and dane.boardkeys[self.k_down]:
            if ml:
                self.pozx -= 0.7 * self.v
            if md:
                self.pozy += 0.7 * self.v
            self.kier = 6
        if dane.boardkeys[self.k_right] and dane.boardkeys[self.k_up]:
            if mr:
                self.pozx += 0.7 * self.v
            if mu:
                self.pozy -= 0.7 * self.v
            self.kier = 2
        if dane.boardkeys[self.k_right] and dane.boardkeys[self.k_down]:
            if mr:
                self.pozx += 0.7 * self.v
            if md:
                self.pozy += 0.7 * self.v
            self.kier = 4

        if self.pozx < 0:
            self.pozx = 0
        if self.pozx > dane.e_w - self.w:
            self.pozx = dane.e_w - self.w
        if self.pozy < 0:
            self.pozy = 0
        if self.pozy > dane.e_h - self.h:
            self.pozy = dane.e_h - self.h

        if dane.boardkeys[self.k_shoot] and self.loaded:
            # 8 1 2
            # 7 - 3
            # 6 5 4
            done = 0
            if self.kier == 1 and self.pozx < dane.map.w - self.w / 2 and self.pozy >= 1:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx + self.w / 2), int(self.pozy - 1)))):
                    t = kula(self.pozx + self.w / 2, self.pozy - 1, 0, -2 - self.v)
                    done = 1
            if self.kier == 3 and self.pozx < dane.map.w - self.w and self.pozy < dane.map.h - self.h / 2:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx + self.w), int(self.pozy + self.h / 2)))):
                    t = kula(self.pozx + self.w + 1, self.pozy + self.h / 2, 2 + self.v, 0)
                    done = 1
            if self.kier == 5 and self.pozx < dane.map.w - self.w / 2 and self.pozy < dane.map.h - self.h:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx + self.w / 2), int(self.pozy + self.h)))):
                    t = kula(self.pozx + self.w / 2, self.pozy + self.h + 1, 0, 2 + self.v)
                    done = 1
            if self.kier == 7 and self.pozx >= 1 and self.pozy < dane.map.h - self.h / 2:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx - 1), int(self.pozy + self.h / 2)))):
                    t = kula(self.pozx - 1, self.pozy + self.h / 2, -2 - self.v, 0)
                    done = 1
            if self.kier == 2 and self.pozx < dane.map.w - self.w - 1 and self.pozy >= 1:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx + self.w + 1), int(self.pozy - 1)))):
                    t = kula(self.pozx + self.w + 1, self.pozy - 1, 2 + self.v, -2 - self.v)
                    done = 1
            if self.kier == 4 and self.pozx < dane.map.w - self.w - 1 and self.pozy < dane.map.h - self.h - 1:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx + self.w + 1), int(self.pozy + self.h + 1)))):
                    t = kula(self.pozx + self.w + 1, self.pozy + self.h + 1, 2 + self.v, 2 + self.v)
                    done = 1
            if self.kier == 6 and self.pozx >= 1 and self.pozy < dane.map.h - self.h - 1:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx - 1), int(self.pozy + self.h + 1)))):
                    t = kula(self.pozx - 1, self.pozy + self.h + 1, -2 - self.v, 2 + self.v)
                    done = 1
            if self.kier == 8 and self.pozx >= 1 and self.pozy >= 1:
                if not dane.map.odbije(dane.map.bm.get_at((int(self.pozx - 1), int(self.pozy - 1)))):
                    t = kula(self.pozx - 1, self.pozy - 1, -2 - self.v, -2 - self.v)
                    done = 1
            if done:
                dane.sounds["shot"].play()
                dane.nab.append(t)
                self.loaded = 0
                self.l_tmp = 50
        if self.l_tmp:
            self.l_tmp -= 1
        else:
            self.loaded = 1