示例#1
0
    def selected(self, pos, *tools):
        if self.rect.collidepoint(pos) and self.select is False:
            for tool in tools:
                tool.select = False
                tool.unselect()
            self.surf = pygame.image.load(
                openfile("assets/icons/eraser_selected.png")).convert_alpha()

            self.select = True
        elif self.rect.collidepoint(pos) and self.select is True:
            self.surf = pygame.image.load(
                openfile("assets/icons/eraser.png")).convert_alpha()
            self.select = False
示例#2
0
def display_themes(_index):
    themes = display_themes_util()
    font_theme = pygame.font.Font(openfile('assets/fonts/koliko-Regular.ttf'),
                                  60)
    try:
        _theme = themes[_index]
        screen.blit(font_theme.render(_theme[0], True, (255, 255, 255)),
                    ((480 - font_theme.size(_theme[0])[0]) // 2, 395))
        screen.blit(
            pygame.transform.scale(pygame.image.load(openfile(_theme[1])),
                                   (int(120 * 0.75), int(200 * 0.75))),
            (195, 189))
    except IndexError:
        pass
示例#3
0
def gen_profile_data(user):
    img = Image.new('RGBA', (480, 640), (0, 0, 0, 0))
    draw = ImageDraw.Draw(img)
    font_level = ImageFont.truetype(openfile("assets/fonts/koliko-Regular.ttf"), 18)
    font_score = ImageFont.truetype(openfile("assets/fonts/koliko-Regular.ttf"), 26)
    font_name = ImageFont.truetype(openfile("assets/fonts/koliko-Regular.ttf"), 35)

    bg = Image.open(openfile('assets/menu/stats.png'))
    img.paste(bg, (0, 0), mask=bg)

    level = Image.open(openfile('assets/menu/banner.png'))

    if user[0]["profile_pic"] is True:
        main = Image.open(openfile('assets/menu/main_menu_bk.png'))
        mask = Image.new('L', (35, 35), 0)
        small = Image.open(openfile(f"data/small{user[0]['extention']}"))
        draw_m = ImageDraw.Draw(mask)
        draw_m.ellipse((0, 0) + (35, 35), fill=255)
        small = ImageOps.fit(small, mask.size, centering=(0.5, 0.5))
        small.putalpha(mask)
        main.paste(small, (14, 17), mask=small)
        main.save(openfile('assets/menu/main_menu.png'))
        mask = Image.new('L', (89, 89), 0)
        large = Image.open(openfile(f"data/large{user[0]['extention']}"))
        draw_m = ImageDraw.Draw(mask)
        draw_m.ellipse((0, 0) + (89, 89), fill=255)
        large = ImageOps.fit(large, mask.size, centering=(0.5, 0.5))
        large.putalpha(mask)
        img.paste(large, (195, 128), mask=large)

    img.paste(level, (218, 210), mask=level)

    draw.text(((258 - font_level.getsize(str(user[0]['level']))[0]) / 2 + (230 / 2),  -420 + 640),
              str(user[0]['level']), font=font_level, fill=(255, 255, 255))

    draw.text(((411 - font_level.getsize(str(user[0]['username']))[0]) / 2 + (65 / 2), 640 - 394),
              str(user[0]['username']), font=font_score, fill=(0, 0, 0))

    draw.text(((246 - font_level.getsize(str(user[0]['high_score']))[0]) / 2 + (101 / 2), 640 - 331),
              str(user[0]['high_score']), font=font_name, fill=(0, 0, 0))

    draw.text(((392 - font_level.getsize(str(user[0]['last_score']))[0]) / 2 + (246 / 2), 640 - 331),
              str(user[0]['last_score']), font=font_name, fill=(0, 0, 0))

    name = f"menu_{datetime.datetime.now().strftime('%H%M%S%d%m%Y')}"
    img.save(openfile(f"assets/menu/{name}.png"))

    return f"assets/menu/{name}.png"
示例#4
0
 def __init__(self):
     self.surf = pygame.image.load(
         openfile("assets/icons/hand.png")).convert_alpha()
     self.rect = self.surf.get_rect(top=3 * 32)
     self.initial = [0, 0]
     self.new_pos = [0, 0]
     self.select = False
示例#5
0
 def __init__(self):
     self.surf = pygame.image.load(
         openfile("assets/icons/marquee.png")).convert_alpha()
     self.rect = self.surf.get_rect(top=2 * 32)
     self.initial = [0, 0]
     self.rect_select = [0, 0, 0, 0]
     self.diff = [0, 0]
     self.select = False
     self.selection = [0, 0, 0, 0]
示例#6
0
def gen_profile_photos(path):
    extention = os.path.splitext(path)[1]
    shutil.copy(path, openfile(f"data/photo{extention}"))
    small = Image.open(openfile(f"data/photo{extention}"))
    small = small.resize((35, 35), Image.ANTIALIAS)
    small.save(openfile(openfile(f"data/small{extention}")), quality=200)

    large = Image.open(openfile(f"data/photo{extention}"))
    large = large.resize((89, 89), Image.ANTIALIAS)
    large.save(openfile(openfile(f"data/large{extention}")), quality=200)
示例#7
0
def display_themes_util():
    available_themes = os.listdir(openfile('assets/textures/'))
    available_themes_ = [
        available_themes[i].split('_') for i in range(0, len(available_themes))
    ]
    themes = []
    for _index, _theme in enumerate(available_themes_):
        __theme__ = ""
        for __theme in _theme:
            __theme__ += __theme.capitalize() + " "
        themes.append([
            __theme__.strip(),
            'assets/textures/' + available_themes[_index] + '/pack.png',
            'assets/textures/' + available_themes[_index]
        ])
    return themes
示例#8
0
from cryptography.fernet import Fernet
from scripts import openfile

with open(openfile('data/56f3db44e25e3057caa2b78751fa212c'), 'rb') as file:
    key = Fernet(file.read())


def encrypt():
    with open(openfile('data/users.json'), 'rb') as f:
        encrypted = f.read()

    with open(openfile('data/users.json'), 'wb') as f:
        f.write(key.encrypt(encrypted))


def decrypt():
    with open(openfile('data/users.json'), 'rb') as f:
        encrypted = f.read()

    with open(openfile('data/users.json'), 'wb') as f:
        f.write(key.decrypt(encrypted))


def generate_key():
    global key
    with open(openfile('data/56f3db44e25e3057caa2b78751fa212c'), 'wb') as f:
        key = Fernet.generate_key()
        f.write(key)
示例#9
0
import time
import scripts.tetris.board as board
import math
from itertools import permutations
from scripts import users

pygame.init()
pygame.mixer.init()

user = users.load_user()

# pygame.mixer.music.load(openfile("assets/music/Tetris.mp3"))
# pygame.mixer.music.set_volume(0.25)
# pygame.mixer.music.play(loops=-1)

path = openfile(f"assets/textures/{user[0]['theme']}")

CURRENT = None
gap = 40
font = pygame.font.Font(openfile('assets/fonts/Square.ttf'), 40)
ROWS, COLS = 20, 10
WIDTH, HEIGHT = (gap * 10) + (gap * 5 + 10), gap * 20
os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % ((1920 - WIDTH) // 2, (1080 - HEIGHT) // 2)
running = True
clock = pygame.time.Clock()
TETRIMINOS = []
choices = list(permutations(range(0, 7)))
next_piece_surf = pygame.Surface((gap * 5 + 10, HEIGHT))
state = board.Board(gap, path, ROWS, COLS)
HELD = None
line = 0
示例#10
0
import random
import os
import tkinter
from tkinter.filedialog import askopenfile
from scripts import users, openfile, show_stats

pygame.font.init()
pygame.init()
os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % ((1920 - 480) // 2,
                                                (1080 - 640) // 2)

screen = pygame.display.set_mode((480, 640), pygame.NOFRAME)

user = users.load_user()

THEME_SELECTOR = pygame.image.load(openfile('assets/menu/theme_selector.png'))
PROFILE_CREATE = pygame.image.load(openfile('assets/menu/create_profile.png'))
MAIN = pygame.image.load(openfile("assets/menu/main_menu.png"))
current_page = 0

pygame.display.set_caption('Play Tetris!')
img = MAIN
date_font = pygame.font.Font(openfile('assets/fonts/koliko-Regular.ttf'), 19)
token = -1
running = True
solo = pygame.rect.Rect([108, 251, 263, 91])
multiplayer = pygame.Rect([108, 376, 263, 90])
theme_creator = pygame.Rect([108, 500, 263, 91])
theme_select = pygame.Rect([105, 494, 275, 70])
theme = pygame.Rect([287, 12, 49, 50])
profile = pygame.Rect([10, 16, 175, 35])
示例#11
0
def save_user(user):
    with open(openfile('data/users.json'), 'w') as f:
        json.dump(user, f, indent=6)
    encrypt.encrypt()
示例#12
0
 def unselect(self):
     if self.select is False:
         self.surf = pygame.image.load(
             openfile("assets/icons/pencil.png")).convert_alpha()
示例#13
0
 def __init__(self):
     self.surf = pygame.image.load(
         openfile("assets/icons/pencil_selected.png")).convert_alpha()
     self.rect = self.surf.get_rect()
     self.select = True
示例#14
0
def textbox(_text):
    font = pygame.font.Font(openfile('assets/fonts/koliko-Regular.ttf'), 25)
    screen.blit(font.render(_text, True, (0, 0, 0)), (94, 290))
示例#15
0
def generate_key():
    global key
    with open(openfile('data/56f3db44e25e3057caa2b78751fa212c'), 'wb') as f:
        key = Fernet.generate_key()
        f.write(key)
示例#16
0
 def select_(self):
     if self.select is True:
         self.surf = pygame.image.load(
             openfile("assets/icons/pencil_selected.png")).convert_alpha()
示例#17
0
def encrypt():
    with open(openfile('data/users.json'), 'rb') as f:
        encrypted = f.read()

    with open(openfile('data/users.json'), 'wb') as f:
        f.write(key.encrypt(encrypted))
示例#18
0
 def __init__(self):
     self.surf = pygame.image.load(
         openfile("assets/icons/eraser.png")).convert_alpha()
     self.rect = self.surf.get_rect(top=32)
     self.select = False
示例#19
0
def load_user():
    encrypt.decrypt()
    with open((openfile('data/users.json')), 'r+') as f:
        user = json.load(f)
    encrypt.encrypt()
    return user
示例#20
0
from itertools import permutations
from random import choice

import pygame

from scripts.multiplayer import board, tetriminos
from scripts import openfile
from scripts import users
from scripts.multiplayer import network

pygame.init()
pygame.mixer.init()

user = users.load_user()

pygame.mixer.music.load(openfile("assets/music/Tetris.mp3"))
pygame.mixer.music.set_volume(0.25)
pygame.mixer.music.play(loops=-1)

path = openfile(f"assets/textures/{user[0]['theme']}")

CURRENT = None
gap = 40
font = pygame.font.Font(openfile('assets/fonts/Square.ttf'), 40)
ROWS, COLS = 20, 10
WIDTH, HEIGHT = (gap * 10) + (gap * 5 + 10), gap * 20
os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % ((1920 - WIDTH) // 2,
                                                (1080 - HEIGHT) // 2)
running = True
clock = pygame.time.Clock()
TETRIMINOS = []