Example #1
0
    def inner(mainloop):
        '''
        伴随函数
        mainloop : 接收主循环线程
        '''
        # 创建目录,生成文件名模板
        try:
            mkdir(folder_name)
        except:
            pass
        file_fm = join_path(folder_name, file_format)

        # 获取截图范围
        screen = Screen()
        canvas, root = screen.getcanvas(), screen._root

        # 截图
        print('screenshot begin.')
        index = 0
        while mainloop.is_alive():
            x = root.winfo_rootx() + canvas.winfo_x() + margin
            y = root.winfo_rooty() + canvas.winfo_y() + margin
            x1 = x + canvas.winfo_width() - margin
            y1 = y + canvas.winfo_height() - margin
            ImageGrab.grab().crop((x, y, x1, y1)).save(file_fm % index)
            sleep(timespan)
            index += 1
        ImageGrab.grab().crop((x, y, x1, y1)).save(file_fm % 9999)
        print('screenshot end.')
Example #2
0
def set_up_window():
    window = turtle.Screen()
    window.bgcolor("lightgreen")
    window.title("SHAPE PRESENTATION")

    # Show window in foreground.
    foreground = Screen()
    rootwindow = foreground.getcanvas().winfo_toplevel()
    rootwindow.call('wm', 'attributes', '.', '-topmost', '1')
    rootwindow.call('wm', 'attributes', '.', '-topmost', '0')
Example #3
0
def one_turtle_shot(file, margin=10):
    '''
    获取一张turtle界面截图
    file : jpg格式文件名
    margin : 窗口边界
    '''
    # 获取截图范围
    screen = Screen()
    canvas, root = screen.getcanvas(), screen._root

    # 截图
    x = root.winfo_rootx() + canvas.winfo_x() + margin
    y = root.winfo_rooty() + canvas.winfo_y() + margin
    x1 = x + canvas.winfo_width() - margin
    y1 = y + canvas.winfo_height() - margin
    ImageGrab.grab().crop((x, y, x1, y1)).save(file)
Example #4
0
def main():
    # Set the window size
    WIDTH, HEIGHT = 128, 128
    # Init the screen to be able to change default size
    screen = Screen()
    screen.setup(WIDTH, HEIGHT)
    # set the pointer position
    screen.setworldcoordinates(-64, -64, 64, 64)
    turtle = Turtle()
    # Hide the pointer to be able to draw quick
    turtle.hideturtle()
    face(64, turtle)
    twoEyes('white', 'black', 8, 4, turtle)
    nose(8, turtle)
    mouse(12, turtle)
    # screen.exitonclick()
    cv = screen.getcanvas()
    cv.postscript(file="test.ps", colormode='color')
Example #5
0
        for p in plist:
            p.forward(l)
            q = p.clone()
            p.left(a)
            q.right(a)
            lst.append(p)
            lst.append(q)
        for x in tree(lst, l * f, a, f):
            yield None


def maketree():
    p = Turtle()
    p.pencolor("green")
    p.setundobuffer(None)
    p.hideturtle()
    p.speed(0)
    p.tracer(30, 0)
    p.left(90)
    p.penup()
    p.forward(-210)
    p.pendown()
    t = tree([p], 200, 65, 0.6375)
    for x in t:
        pass


s = Screen()
maketree()
print s.getcanvas().postscript()
    canvas.xview_scroll(1, "units")
    turtle.setx(turtle.xcor() + MAGNIFICATION)

def move_up():
    canvas.yview_scroll(-1, "units")
    turtle.sety(turtle.ycor() + MAGNIFICATION)

def move_down():
    canvas.yview_scroll(1, "units")
    turtle.sety(turtle.ycor() - MAGNIFICATION)

screen = Screen()
width, height = screen.screensize()
screen.screensize(width * MAGNIFICATION, height * MAGNIFICATION)

canvas = screen.getcanvas()
canvas.config(xscrollincrement=str(MAGNIFICATION))
canvas.config(yscrollincrement=str(MAGNIFICATION))


turtle.width(MAGNIFICATION)
turtle.resizemode('auto')


screen.onkey(move_left, "Left")
screen.onkey(move_right, "Right")
screen.onkey(move_up, "Up")
screen.onkey(move_down, "Down")
screen.listen()

screen.mainloop()
    def setBackground(self):
        try:
            self.t = Turtle()
            self.t.shape("circle")
            self.t.speed(15)
            self.t.turtlesize(0.01)
            self.w = get_monitors()[0].width
            self.h = get_monitors()[0].height
            Screen().setup(self.w, self.h, startx=0, starty=0)
        except Exception as e:
            print(e)
            try:
                del self.t
            except:
                pass
            Screen().bye()
            Screen().exitonclick()

        self.t.screen.colormode(1.0)
        COLOR = (uniform(0, 1), uniform(0, 1), uniform(0, 1)
                 )  #(1,0,0)#(0.39, 0.57, 0.9258)
        TARGET = (uniform(0, 1), uniform(0, 1), uniform(0, 1)
                  )  #(1,1,0) #(0.5625, 0.9297, 0.5625)

        screen = Screen()
        screen.tracer(False)

        #print(screen.window_width(), screen.window_height())

        #screen.screensize(1980,1024)
        #screen.setup(width=1.0, height=1.0)
        canvas = screen.getcanvas()
        root = canvas.winfo_toplevel()
        root.overrideredirect(1)

        WIDTH, HEIGHT = get_monitors()[0].width, get_monitors(
        )[0].height  #screen.window_width(), screen.window_height()

        deltas = [(hue - COLOR[index]) / HEIGHT
                  for index, hue in enumerate(TARGET)]

        self.t.color(COLOR)

        self.t.penup()
        self.t.goto(-WIDTH / 2, HEIGHT / 2)
        self.t.pendown()

        direction = 1

        for distance, y in enumerate(range(HEIGHT // 2, -HEIGHT // 2, -1)):

            self.t.forward(WIDTH * direction)
            self.t.color([
                COLOR[i] + delta * distance for i, delta in enumerate(deltas)
            ])
            self.t.sety(y)

            direction *= -1

        screen.tracer(True)
        self.t.screen.colormode(255)
Example #8
0
        for p in plist:
            p.forward(l)
            q = p.clone()
            p.left(a)
            q.right(a)
            lst.append(p)
            lst.append(q)
        for x in tree(lst, l * f, a, f):
            yield None


def maketree():
    p = Turtle()
    p.pencolor("#697C82")
    p.setundobuffer(None)
    p.hideturtle()
    p.speed(0)
    p.tracer(30, 0)
    p.left(90)
    p.penup()
    p.forward(-210)
    p.pendown()
    t = tree([p], 200, 65, 0.6375)
    for x in t:
        pass


s = Screen()
maketree()
print s.getcanvas().postscript()
from turtle import Screen, Turtle
from tkinter import *
from math import sqrt
import hangmanmodel
from pynput import keyboard
from pynput.keyboard import Key
import turtle
import random
from alphabet import alphabet

canvas = Screen()
inp = simpledialog.askstring("Input",
                             "What is your word?",
                             parent=canvas.getcanvas())
hangmanmodel.start(inp)
canvas.setup(1000, 750, None, None)

myPen = turtle.Turtle()
myPen.hideturtle()
myPen.speed(0)
window = turtle.Screen()
window.bgcolor("#ffffff")
myPen.pensize(2)


def displayMessage(message, fontSize, color, x, y):
    myPen.color(color)
    message = message.upper()

    for character in message:
        if character in alphabet:
Example #10
0
class TurtlePaint():
    def __init__(self, settings):
        self.t1 = Turtle()  # main turtle
        self.t2 = Turtle()  # draws color bar
        self.t3 = Turtle()  # selects current color
        self.t4 = Turtle()  # draws tool bar border
        self.t5 = Turtle()  # makes shape stamps
        self.t6 = Turtle()  # selects current shape
        self.t7 = Turtle()  # refers to instructions
        self.t8 = Turtle()  # selects current fillcolor
        self.s = Screen()
        self.instructions = {
            "b": "begin filling",
            "c": "clear all",
            "e": "end filling",
            "f": "change fillcolor",
            "h": "turn left",
            "j": "go backward",
            "k": "go forward",
            "l": "turn right",
            "p": "pen up / pen down",
            "s": "save picture",
            "t": "change turtle shape",
            "u": "undo last drawing",
            "space": "change pencolor",
            "arrow_up": "increase pensize",
            "arrow_down": "decrease pensize"
        }
        self.v = VolumeBar(settings.get("start_volume_bar"),
                           settings.get("max_pensize"), self.s)
        self.toggler = StringToggler(settings.get("start_pendown"),
                                     settings.get("start_penup"), "pen down",
                                     "pen up", self.s)
        self.colors = [
            "green", "red", "yellow", "pink", "blue", "lightblue", "orange",
            "purple", "black", "white"
        ]
        self.fillcolors = [
            "green", "red", "yellow", "pink", "blue", "lightblue", "orange",
            "purple", "black", "white"
        ]
        self.shapes = [
            "turtle", "triangle", "circle", "square", "arrow", "classic"
        ]
        self.settings = settings

        self.setup()

    def setup(self):
        self.t1.speed(0)
        self.t1.resizemode("auto")  # turtlesize increases with pensize
        self.t2.hideturtle()
        self.t3.hideturtle()
        self.t4.hideturtle()
        self.t5.hideturtle()
        self.t6.hideturtle()
        self.t7.hideturtle()
        self.t8.hideturtle()
        self.s.screensize(
            settings.get("screen_dims")[0],
            settings.get("screen_dims")[1])  # space for turtle
        self.s.setup(
            settings.get("screen_dims")[0] * 1.1,
            settings.get("screen_dims")[1] * 1.1)  # actual screen size
        self.s.cv._rootwindow.resizable(False, False)
        self.s.title(self.settings.get("title"))
        self.draw_color()
        self.v.draw_volume_bar()
        self.draw_toolbar()
        self.draw_shapes()
        self.refer_to_instructions()
        self.v.fill_volume_bar(self.t1.pensize() /
                               self.settings.get("max_pensize"))
        self.register_callbacks()

    def register_callbacks(self):
        self.t1.onclick(self.t1.goto, 1)
        self.s.onkey(self.pen_change, "p")
        self.s.onkey(self.change_color, "space")
        self.s.onkey(self.increase_pensize, "Up")
        self.s.onkey(self.decrease_pensize, "Down")
        self.s.onscreenclick(self.go_to, 1)
        self.t1.ondrag(self.go_to, 1)
        self.s.onkey(self.screen_exit_handler, "Escape")
        self.s.onkey(self.screen_save_handler, "s")
        self.s.onkeypress(self.undo_drawings, "u")
        self.s.onkey(self.clear_all, "c")
        self.s.onkey(self.change_shape, "t")
        self.s.onkeypress(self.move_down, "j")
        self.s.onkey(self.show_instructions, "?")
        self.s.onkeypress(self.move_up, "k")
        self.s.onkeypress(self.turn_left, "h")
        self.s.onkeypress(self.turn_right, "l")
        self.s.onkey(self.t1.begin_fill, "b")
        self.s.onkey(self.t1.end_fill, "e")
        self.s.onkey(self.change_fillcolor, "f")
        self.s.listen()

    def screen_exit_handler(self):
        print("[debug] got ESC, quitting")
        exit(0)

    def screen_save_handler(self):
        print("[debug] trying to save canvas to a pdf file")
        name = self.s.textinput("Save a Screenshot to PDF",
                                "Please enter a filename (without .pdf): ")
        self.s.getcanvas().postscript(file="tmp.ps", colormode="color")
        if platform.system() == "Windows":
            cmd = r'c:\Program Files\Git\usr\bin\bash.exe'
            p = subprocess.Popen(
                [cmd, "ps2pdf", "tmp.ps", "{}.pdf".format(name)], shell=True)
        else:  # we're actually on a good OS here
            p = subprocess.Popen(["ps2pdf tmp.ps {}.pdf".format(name)],
                                 shell=True)
        ret = p.wait()
        if ret == 0:
            os.remove("tmp.ps")
        self.s.listen()  # required to re-focus onto turtle

    def show_instructions(self):
        win = Tk()

        row = 0
        column = 0
        for instruction in self.instructions:
            Label(win, text=instruction).grid(row=row,
                                              column=column,
                                              sticky="W",
                                              ipadx=10)
            column += 1
            Label(win,
                  text=self.instructions.get(instruction)).grid(row=row,
                                                                column=column,
                                                                sticky="W",
                                                                ipadx=10)
            row += 1
            column = 0

    def pen_change(self):
        if self.t1.isdown():
            self.t1.penup()
            self.toggler.toggle()
        else:
            self.t1.pendown()
            self.toggler.toggle()

    def draw_selector(self, turtle, pensize):
        turtle.clear()
        turtle.pensize(pensize)
        for _ in range(4):
            turtle.fd(30)
            turtle.left(90)

    def draw_color(self):
        self.s.tracer(False)
        x = -410
        pos = (x, 310)
        self.t2.penup()
        self.t3.penup()
        self.t8.penup()
        self.t2.goto(pos)
        self.t3.goto(-50, 310)
        self.t8.goto(-35, 295)
        self.t2.right(90)
        self.t3.right(90)
        self.t2.pendown()
        self.t3.pendown()
        self.t8.pendown()
        self.t2.pensize(1)
        for color in self.colors:
            # determine colors
            if color == "white":
                self.t2.pencolor("black")
                self.t2.fillcolor("white")
            else:
                self.t2.color(color)

            # draw square
            self.t2.begin_fill()
            for _ in range(4):
                self.t2.fd(30)
                self.t2.left(90)

            # pen up, go to next square, pen down
            self.t2.end_fill()
            self.t2.penup()
            x += 40
            self.t2.goto(x, 310)
            self.t2.pendown()
        self.s.tracer(True)

    def change_color(self):
        if self.t3.pos()[0] >= -50:
            x = -410
        else:
            x = self.t3.pos()[0] + 40

        color = self.colors.pop(0)
        self.t1.pencolor(color)
        self.colors.append(color)
        self.s.tracer(False)

        if color == "black":
            self.t3.pencolor("dim gray")
        else:
            self.t3.pencolor("black")

        self.t3.penup()
        self.t3.goto(x, 310)
        self.t3.pendown()
        self.draw_selector(self.t3, 4)
        self.s.tracer(True)

    def change_fillcolor(self):
        self.s.tracer(False)
        if self.t8.pos()[0] >= -36:
            x = -395
        else:
            x = self.t8.pos()[0] + 40

        fillcolor = self.fillcolors.pop(0)
        self.t1.fillcolor(fillcolor)
        self.fillcolors.append(fillcolor)

        if fillcolor == "black":
            self.t8.pencolor("dim gray")
        else:
            self.t8.pencolor("black")

        self.t8.penup()
        self.t8.goto(x, 295)
        self.t8.pendown()
        self.t8.clear()
        self.t8.dot(10)
        self.s.tracer(True)

    def increase_pensize(self):
        pensize = self.t1.pensize() + self.settings.get("pensize_stepsize")
        if pensize <= self.settings.get("max_pensize"):
            self.t1.pensize(pensize)
            self.v.fill_volume_bar(self.t1.pensize() /
                                   self.settings.get("max_pensize"))

    def decrease_pensize(self):
        pensize = self.t1.pensize() - self.settings.get("pensize_stepsize")
        if pensize >= 1:
            self.t1.pensize(pensize)
            self.v.fill_volume_bar(self.t1.pensize() /
                                   self.settings.get("max_pensize"))

    def draw_toolbar(self):
        self.s.tracer(False)
        self.t4.penup()
        self.t4.goto(-420, 260)
        self.t4.pensize(3)
        self.t4.pendown()
        self.t4.fd(840)
        self.t4.penup()
        self.t4.goto(-420, -300)
        self.t4.pendown()
        self.t4.fd(840)
        self.s.tracer(True)

    def draw_shapes(self):
        self.s.tracer(False)
        self.t5.penup()
        self.t5.resizemode("user")
        self.t5.shapesize(0.9, 0.9)
        x = 200
        self.t5.fillcolor("white")

        for shape in self.shapes:
            self.t5.shape("turtle")
            self.t5.goto(x, 295)
            self.t5.shape(shape)
            self.t5.stamp()
            x += 40

        self.t6.penup()
        self.t6.goto(389, 280)

        self.s.tracer(True)

    def change_shape(self):
        self.s.tracer(False)
        shape = self.shapes.pop(0)
        self.t1.shape(shape)
        self.shapes.append(shape)

        if self.t6.pos()[0] >= 380:
            x = 189
        elif shape == "circle":
            x = self.t6.pos()[0] + 38
        elif shape == "arrow":
            x = self.t6.pos()[0] + 43
        elif shape == "classic":
            x = self.t6.pos()[0] + 32
        elif shape == "triangle":
            x = self.t6.pos()[0] + 39
        else:
            x = self.t6.pos()[0] + 40

        self.t6.penup()
        self.t6.goto(x, 280)
        self.t6.pendown()
        self.t6.pencolor("green")
        self.draw_selector(self.t6, 2)
        self.s.tracer(True)

    def refer_to_instructions(self):
        self.s.tracer(False)
        self.t7.penup()
        self.t7.goto(-410, -320)
        self.t7.pendown()
        self.t7.write("press '?' for instructions")
        self.s.tracer(True)

    def move_up(self):
        self.t1.fd(10)

    def move_down(self):
        self.t1.backward(10)

    def turn_left(self):
        heading = self.t1.heading()
        if heading == 355:
            self.t1.setheading(0)
        else:
            heading += 5
            self.t1.setheading(heading)

    def turn_right(self):
        heading = self.t1.heading()
        if heading == 0:
            self.t1.setheading(355)
        else:
            heading -= 5
            self.t1.setheading(heading)

    def go_to(self, x, y):
        if y < 258 and y > -300:
            self.t1.goto(x, y)

    def undo_drawings(self):
        self.t1.undo()

    def clear_all(self):
        self.t1.clear()

    def mainloop(self):
        mainloop()
Example #11
0
from turtle import Screen
from snake import Snake
from score_board import ScoreBoard
from food import Food

import time

delay = 0.1

wn = Screen()
wn.title("Snake Game")
wn.bgcolor("black")
wn.setup(width=600, height=600)

#Accesses the X on the GUI
canvas = wn.getcanvas()
root = canvas.winfo_toplevel()
#Snake
snake = Snake()

#Food
food = Food()

#Score Board
scoreboard = ScoreBoard()

#Turn off the screen updates
wn.tracer(0)

#Keyboard bindings
wn.listen()
Example #12
0
from turtle import Turtle, Screen

bg_colour = input("Enter the desired background colour: ")

wn = Screen()

rootwindow = wn.getcanvas().winfo_toplevel()
rootwindow.call('wm', 'attributes', '.', '-topmost', '1')
rootwindow.call('wm', 'attributes', '.', '-topmost', '0')

wn.bgcolor(bg_colour)  # Set the window background color
wn.title("Hello, Tess!")  # Set the window title

tess = Turtle()
tess.color("blue")  # Tell tess to change her color
tess.pensize(3)  # Tell tess to set her pen width

tess.forward(50)
tess.left(120)
tess.forward(50)

wn.mainloop()
Example #13
0
class NCSimVisualizer:
    def __init__(self, cfg_os):
        # Create Screen Object
        self.screen = Screen()

        # Add app icon
        LOGO_PATH = "assets/favicon.ico"
        # do not forget "@" symbol and .xbm format for Ubuntu
        LOGO_LINUX_PATH = "@assets/favicon_linux.xbm"

        # Use the same Tk root with turtle:
        # noinspection PyProtectedMember
        # assert isinstance(self.screen._root, tk.Tk)  # True
        # noinspection PyProtectedMember
        self.root = self.screen.getcanvas().winfo_toplevel()
        self.root.title("Network Coding Simulator")

        if cfg_os.lower() == "linux":
            self.root.iconbitmap(LOGO_LINUX_PATH)
        else:
            self.root.iconbitmap(LOGO_PATH)

        # tkinter use same root
        self.controls = tk.Frame(self.root)

        # Create Screen Layout Cursor
        self.layout_cursor = Turtle()
        self.layout_cursor.ht()
        self.layout_cursor.penup()
        self.layout_cursor.pensize(3)
        self.layout_cursor.color("slate grey")

        # Create Screen Message Cursor
        self.msg_cursor = Turtle()
        self.msg_cursor.ht()
        self.msg_cursor.penup()
        self.msg_cursor.color("midnight blue")

        # Create Screen coverage Cursor
        self.coverage_cursor = Turtle()
        self.coverage_cursor.ht()
        self.coverage_cursor.penup()
        self.coverage_cursor.pensize(2)
        self.coverage_cursor.color("saddle brown")

        # Create Screen Send Packet Cursor
        self.snd_pckt = Turtle()
        self.snd_pckt.ht()
        self.snd_pckt.penup()
        self.snd_pckt.pensize(2)
        self.snd_pckt.color("saddle brown")

        # Call Screen Init Method
        self.screen_init()

    def screen_init(self):
        # Set Screen Dimensions and Coloring
        self.screen.setup(TOTAL_WIDTH, TOTAL_HEIGHT)
        self.screen.bgcolor(SCREEN_BGCOLOR)

        self.layout_cursor.color("slate grey")
        self.layout_cursor.setposition(-((TOTAL_WIDTH / 2) - SCREEN_MARGIN),
                                       -((TOTAL_HEIGHT / 2) - SCREEN_MARGIN))

        self.layout_cursor.speed(8)
        self.layout_cursor.pendown()
        self.layout_cursor.fd(SCREEN_WIDTH)
        self.layout_cursor.rt(-90)
        self.layout_cursor.fd(SCREEN_HEIGHT)
        self.layout_cursor.rt(-90)
        self.layout_cursor.fd(SCREEN_WIDTH)
        self.layout_cursor.rt(-90)
        self.layout_cursor.fd(SCREEN_HEIGHT)
        self.layout_cursor.setheading(90)
        self.layout_cursor.fd(MESSAGE_MARGIN)
        self.layout_cursor.setheading(0)
        self.layout_cursor.fd(SCREEN_WIDTH)

        self.layout_cursor.penup()
        self.layout_cursor.speed("fastest")
        self.layout_cursor.color("midnight blue")

        x_cor = 0
        y_cor = int((TOTAL_HEIGHT / 2) - (3 / 4 * HEAD_MARGIN))
        self.layout_cursor.setposition(x_cor, y_cor)
        self.layout_cursor.write(f"{SCREEN_HEADER}",
                                 align="Center",
                                 font=("Calibri", HEADER_FONT_SIZE, "bold"))

        x_cor = 20 - (int(SCREEN_WIDTH / 2))
        y_cor = (int(TOTAL_HEIGHT / 2)) - (HEAD_MARGIN + 40)
        self.layout_cursor.setposition(x_cor, y_cor)
        self.layout_cursor.write(f"Topology: {TOPOLOGY_TYPE.title()}",
                                 align="Left",
                                 font=("Calibri", TEXT_FONT_SIZE, "bold"))

        x_cor = (int(SCREEN_WIDTH / 2)) - 20
        y_cor = (int(TOTAL_HEIGHT / 2)) - (HEAD_MARGIN + 40)
        self.layout_cursor.setposition(x_cor, y_cor)
        self.layout_cursor.write(f"Nodes: {NUM_OF_NODES}",
                                 align="Right",
                                 font=("Calibri", TEXT_FONT_SIZE, "bold"))

        self.visual_output_msg("This where the text message appears")

        # Stop Auto-update Screen changes
        self.screen.tracer(0)

    def visual_output_msg(self, message):
        x_cor = 20 - (int(SCREEN_WIDTH / 2))
        y_cor = (SCREEN_MARGIN + 15) - (int(TOTAL_HEIGHT / 2))
        self.msg_cursor.setposition(x_cor, y_cor)
        self.msg_cursor.clear()
        self.msg_cursor.write(f"{message}",
                              align="Left",
                              font=("Calibri", TEXT_FONT_SIZE, "bold"))

    def visual_send_packet(self, tx_node, rx_nodes):
        # draw arrow for all neighbors
        for rx_node in rx_nodes:
            self.snd_pckt.setposition(tx_node.pos())
            self.snd_pckt.pendown()
            self.snd_pckt.setheading(self.snd_pckt.towards(rx_node.pos()))
            self.snd_pckt.setposition(rx_node.pos())
            self.snd_pckt.bk(11)

            # Drawing arrow head
            self.snd_pckt.left(45)
            self.snd_pckt.backward(10)
            self.snd_pckt.forward(10)
            self.snd_pckt.right(90)
            self.snd_pckt.backward(10)
            self.snd_pckt.penup()

    def clear_send_packets(self):
        self.snd_pckt.pd()
        self.snd_pckt.clear()
        self.snd_pckt.pu()

    def show_coverage(self, node):
        self.coverage_cursor.goto(node.xcor(), node.ycor() - node.coverage)
        self.coverage_cursor.pendown()
        self.coverage_cursor.circle(node.coverage)
        self.coverage_cursor.penup()
        self.coverage_cursor.goto(node.pos())

    def hide_coverage(self):
        self.coverage_cursor.pendown()
        self.coverage_cursor.clear()
        self.coverage_cursor.penup()

    def screen_refresh(self):
        self.screen.update()

    def mainloop(self):
        while True:
            try:
                self.root.update()
                self.root.update_idletasks()
            except Exception as exp:
                print(exp)
                print("bye")
                break
Example #14
0
score = Scoreboard()

# Game speed parameters
default_game_speed = 0.02
game_acceleration = 1.05

# Initialize settings
game_speed = default_game_speed
paddle_hit = False
game_is_on = True
s.update()
time.sleep(1)

# Keyboard input
s.listen()
s.getcanvas().bind("<Up>", r_paddle.move_up_true)
s.getcanvas().bind("<KeyRelease-Up>", r_paddle.move_up_false)
s.getcanvas().bind("<Down>", r_paddle.move_down_true)
s.getcanvas().bind("<KeyRelease-Down>", r_paddle.move_down_false)
s.getcanvas().bind("<z>", l_paddle.move_up_true)
s.getcanvas().bind("<KeyRelease-z>", l_paddle.move_up_false)
s.getcanvas().bind("<s>", l_paddle.move_down_true)
s.getcanvas().bind("<KeyRelease-s>", l_paddle.move_down_false)

while game_is_on:
    time.sleep(game_speed)
    r_paddle.move_up(r_paddle.ycor())
    l_paddle.move_up(l_paddle.ycor())
    r_paddle.move_down(r_paddle.ycor())
    l_paddle.move_down(l_paddle.ycor())
    ball.forward(5)