Пример #1
0
def backupIntervalContent():
    global blocks, ball, paddle_top, paddle_bottom, border_top, border_bottom, border_left, border_right
    global keyDowns, ballActive, blockHealth, blockHealthDownList
    # Paddle move on keys
    if not "Shift_L" in keyDowns:
        v = geo.Vector(0, 0)
        if "a" in keyDowns or "Left" in keyDowns:
            v -= geo.Vector(paddleSpeedOnKey, 0)
        if "d" in keyDowns or "Right" in keyDowns:
            v += geo.Vector(paddleSpeedOnKey, 0)
        paddle_top.setv(v)
        paddle_bottom.setv(v)
        paddle_top.move()
        paddle_bottom.move()
        if paddle_top.particle.pos.x < windowDm[0] / 2 - borderOffsetLeftRight:
            paddle_top.setp(
                geo.Point(windowDm[0] / 2 - borderOffsetLeftRight,
                          paddle_top.particle.pos.y))
        if paddle_top.particle.pos.x > windowDm[0] / 2 + borderOffsetLeftRight:
            paddle_top.setp(
                geo.Point(windowDm[0] / 2 + borderOffsetLeftRight,
                          paddle_top.particle.pos.y))
        if paddle_bottom.particle.pos.x < windowDm[
                0] / 2 - borderOffsetLeftRight:
            paddle_bottom.setp(
                geo.Point(windowDm[0] / 2 - borderOffsetLeftRight,
                          paddle_bottom.particle.pos.y))
        if paddle_bottom.particle.pos.x > windowDm[
                0] / 2 + borderOffsetLeftRight:
            paddle_bottom.setp(
                geo.Point(windowDm[0] / 2 + borderOffsetLeftRight,
                          paddle_bottom.particle.pos.y))
    else:
        paddle_top.stop()
        paddle_bottom.stop()
    # Ball collisions
    f_pt = paddle_top.helpColli(ball)
    f_pb = paddle_bottom.helpColli(ball)
    f_bt = border_top.helpColli(ball)
    f_bb = border_bottom.helpColli(ball)
    border_left.helpColli(ball)
    border_right.helpColli(ball)
    for i in range(len(blocks)):
        if blockHealth[i] == 0:
            continue
        f_tmp = blocks[i].helpColli(ball)
        if ballActive and f_tmp:
            blockHealth[i] -= 1
            if not i in blockHealthDownList:
                blockHealthDownList.append(i)
    ball.resolveColli()
    ball.move()
    if f_bt or f_bb:
        ballActive = 2
    if f_pt or f_pb:
        ballActive = 3
    pass
 def __init__(self, canv, centerX, centerY, width, height):
     self.rect = canv.create_rectangle(centerX - width / 2, centerY - height / 2, centerX + width / 2, centerY + height / 2, state = "hidden")
     self.cornerPoints = [\
         geo.Point(centerX - width / 2, centerY - height / 2), \
         geo.Point(centerX + width / 2, centerY - height / 2), \
         geo.Point(centerX + width / 2, centerY + height / 2), \
         geo.Point(centerX - width / 2, centerY + height / 2)\
     ]
     self.sideSegments = [\
         geo.LineSegment(self.cornerPoints[0], self.cornerPoints[1]), \
         geo.LineSegment(self.cornerPoints[1], self.cornerPoints[2]), \
         geo.LineSegment(self.cornerPoints[2], self.cornerPoints[3]), \
         geo.LineSegment(self.cornerPoints[3], self.cornerPoints[0])\
     ]
     self.canv = canv
Пример #3
0
def startGame(event):
    global interval, wnd, canv
    global ball
    ball.setv(
        (geo.Point(event.x, event.y) - ball.particle.pos).unit() * ballSpeed)
    # print(ball.particle.vel)
    interval.start()
    pass
 def __init__(self, canv, centerX, centerY, radius):
     self.particle = phys.Particle(pos = geo.Point(centerX, centerY))
     self.circle = canv.create_oval(centerX - radius, centerY - radius, centerX + radius, centerY + radius, state = "hidden")
     self.filledCircle = geo.FilledCircle(self.particle.pos.copy(), radius)
     self.canv = canv
     self.on = False
     self.colliPoints = []
     self.touching = []
Пример #5
0
def movePaddlesToCursorX(x):
    global paddle_top, paddle_bottom, keyDowns
    if not "Shift_L" in keyDowns:
        return
    paddle_top.setp(geo.Point(x, paddle_top.particle.pos.y))
    paddle_bottom.setp(geo.Point(x, paddle_bottom.particle.pos.y))
Пример #6
0
 def __init__(self, pos=geo.Point(0, 0), vel=geo.Vector(0, 0)):
     self.pos = pos.copy()
     self.vel = vel.copy()
     self.playing = False
Пример #7
0
 def setPos(self, pos=geo.Point(0, 0)):
     self.pos = pos.copy()