Compare commits
No commits in common. "a9f5335edc9cf0908289d9b09f29a55a9b614a37" and "aea443cdb4b193804a5802fd164fc5b84b9a280c" have entirely different histories.
a9f5335edc
...
aea443cdb4
47 changed files with 15 additions and 117 deletions
39
READ.ME
39
READ.ME
|
|
@ -1,39 +0,0 @@
|
||||||
Brief Explanation of all files and classes and pygame
|
|
||||||
|
|
||||||
|
|
||||||
Button CLass:
|
|
||||||
Button(position_x, position_y, width, height, font key phrase/word (see dictionary), the function which should be executed, and if the function should be executed while holding the button or only once per press)
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
'medieval': 'medieval.ttf',
|
|
||||||
'minecraft': 'Minecraft Evenings.otf',
|
|
||||||
'3dpixel': '3D-Pixel.ttf',
|
|
||||||
'8bit': '8bitlim.ttf',
|
|
||||||
'8bito': '8blimro.ttf',
|
|
||||||
'arcade': 'ARCADECLASSIC.ttf',
|
|
||||||
'modern_game': 'astron boy video.otf',
|
|
||||||
'modern': 'astron boy.otf',
|
|
||||||
'wonder': 'Beyond Wonderland.ttf',
|
|
||||||
'curved': 'Digitag.ttf',
|
|
||||||
'simple': 'DisposableDroidBB.ttf',
|
|
||||||
'rounded': 'dpcomic.ttf',
|
|
||||||
'playfull': 'Endalian Script.ttf',
|
|
||||||
'blocky': 'FREAKSOFNATURE.ttf',
|
|
||||||
'catchy': 'Future TimeSplitters.otf',
|
|
||||||
'simple_wide': 'Halo3.ttf',
|
|
||||||
'simple_fat': 'INVASION2000.ttf',
|
|
||||||
'very_gamy': 'ka1.ttf',
|
|
||||||
'simple_round': 'Karma Suture.otf',
|
|
||||||
'mono': 'manaspc.ttf',
|
|
||||||
'damaged': 'Merchant Copy.ttf',
|
|
||||||
'big_natural': 'MorialCitadel.TTF',
|
|
||||||
'spacy': 'nasalization-rg.otf',
|
|
||||||
'sci-fi': 'neuropol.otf',
|
|
||||||
'hollow_big_edge': 'papercut.ttf',
|
|
||||||
'space_shuttle': 'pdark.ttf',
|
|
||||||
'thin': 'PixelFJVerdana12pt.ttf',
|
|
||||||
'random': 'Seattle Avenue.ttf',
|
|
||||||
'pixel': 'yoster.ttf'
|
|
||||||
}
|
|
||||||
|
|
||||||
Pygame window: (0, 0) is in the top left corner, the height and width are stored in HEIGHT and WIDTH
|
|
||||||
BIN
art/textbox.png
BIN
art/textbox.png
Binary file not shown.
|
Before Width: | Height: | Size: 644 B After Width: | Height: | Size: 607 B |
68
classes.py
68
classes.py
|
|
@ -1,41 +1,9 @@
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
pygame.font.init()
|
font = pygame.font.SysFont('Arial', 40)
|
||||||
fonts = {
|
|
||||||
'medieval': 'medieval.ttf',
|
|
||||||
'minecraft': 'Minecraft Evenings.otf',
|
|
||||||
'3dpixel': '3D-Pixel.ttf',
|
|
||||||
'8bit': '8bitlim.ttf',
|
|
||||||
'8bito': '8blimro.ttf',
|
|
||||||
'arcade': 'ARCADECLASSIC.ttf',
|
|
||||||
'modern_game': 'astron boy video.otf',
|
|
||||||
'modern': 'astron boy.otf',
|
|
||||||
'wonder': 'Beyond Wonderland.ttf',
|
|
||||||
'curved': 'Digitag.ttf',
|
|
||||||
'simple': 'DisposableDroidBB.ttf',
|
|
||||||
'rounded': 'dpcomic.ttf',
|
|
||||||
'playfull': 'Endalian Script.ttf',
|
|
||||||
'blocky': 'FREAKSOFNATURE.ttf',
|
|
||||||
'catchy': 'Future TimeSplitters.otf',
|
|
||||||
'simple_wide': 'Halo3.ttf',
|
|
||||||
'simple_fat': 'INVASION2000.ttf',
|
|
||||||
'very_gamy': 'ka1.ttf',
|
|
||||||
'simple_round': 'Karma Suture.otf',
|
|
||||||
'mono': 'manaspc.ttf',
|
|
||||||
'damaged': 'Merchant Copy.ttf',
|
|
||||||
'big_natural': 'MorialCitadel.TTF',
|
|
||||||
'spacy': 'nasalization-rg.otf',
|
|
||||||
'sci-fi': 'neuropol.otf',
|
|
||||||
'hollow_big_edge': 'papercut.ttf',
|
|
||||||
'space_shuttle': 'pdark.ttf',
|
|
||||||
'thin': 'PixelFJVerdana12pt.ttf',
|
|
||||||
'random': 'Seattle Avenue.ttf',
|
|
||||||
'pixel': 'yoster.ttf'
|
|
||||||
}
|
|
||||||
|
|
||||||
class Button():
|
class Button():
|
||||||
def __init__(self, x, y, width, height, font, buttonText='Button', onclickFunction=None, onePress=False):
|
def __init__(self, x, y, width, height, buttonText='Button', onclickFunction=None, onePress=False):
|
||||||
font = pygame.font.Font(f'fonts/{fonts[font]}', 48)
|
|
||||||
self.x = x
|
self.x = x
|
||||||
self.y = y
|
self.y = y
|
||||||
self.width = width
|
self.width = width
|
||||||
|
|
@ -44,30 +12,14 @@ class Button():
|
||||||
self.onePress = onePress
|
self.onePress = onePress
|
||||||
self.alreadyPressed = False
|
self.alreadyPressed = False
|
||||||
|
|
||||||
with open('art/textbox.png', 'r') as tb:
|
self.fillColors = {
|
||||||
self.box = pygame.image.load(tb)
|
'normal': '#ffffff',
|
||||||
self.box = pygame.transform.scale(self.box, (width, height))
|
'hover': '#666666',
|
||||||
|
'pressed': '#333333',
|
||||||
|
}
|
||||||
|
|
||||||
|
self.buttonSurface = pygame.Surface((self.width, self.height))
|
||||||
self.buttonRect = pygame.Rect(self.x, self.y, self.width, self.height)
|
self.buttonRect = pygame.Rect(self.x, self.y, self.width, self.height)
|
||||||
|
|
||||||
self.buttonSurf = font.render(buttonText, True, '#baab80')
|
self.buttonSurf = font.render(buttonText, True, (20, 20, 20))
|
||||||
|
return self
|
||||||
def process(self, screen):
|
|
||||||
mousePos = pygame.mouse.get_pos()
|
|
||||||
if self.buttonRect.collidepoint(mousePos):
|
|
||||||
#self.buttonSurface.fill(self.fillColors['hover'])
|
|
||||||
if pygame.mouse.get_pressed(num_buttons=3)[0]:
|
|
||||||
#self.buttonSurface.fill(self.fillColors['pressed'])
|
|
||||||
if self.onePress:
|
|
||||||
self.onclickFunction()
|
|
||||||
elif not self.alreadyPressed:
|
|
||||||
self.onclickFunction()
|
|
||||||
self.alreadyPressed = True
|
|
||||||
else:
|
|
||||||
self.alreadyPressed = False
|
|
||||||
self.box.blit(self.buttonSurf, [
|
|
||||||
self.buttonRect.width/2 - self.buttonSurf.get_rect().width/2,
|
|
||||||
self.buttonRect.height/2 - self.buttonSurf.get_rect().height/2
|
|
||||||
])
|
|
||||||
screen.blit(self.box, self.buttonRect)
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
fonts/Halo3.ttf
BIN
fonts/Halo3.ttf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
fonts/ka1.ttf
BIN
fonts/ka1.ttf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
fonts/pdark.ttf
BIN
fonts/pdark.ttf
Binary file not shown.
BIN
fonts/yoster.ttf
BIN
fonts/yoster.ttf
Binary file not shown.
25
main.py
25
main.py
|
|
@ -2,7 +2,6 @@ import pygame
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
from classes import *
|
|
||||||
|
|
||||||
def setUp(config):
|
def setUp(config):
|
||||||
pygame.init()
|
pygame.init()
|
||||||
|
|
@ -11,30 +10,18 @@ def setUp(config):
|
||||||
else:
|
else:
|
||||||
screen = pygame.display.set_mode(config["res"])
|
screen = pygame.display.set_mode(config["res"])
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
|
with open('art/textbox.png', 'r') as tb:
|
||||||
return screen, clock, True, True, "start.png", []
|
box = pygame.image.load(tb)
|
||||||
|
return screen, clock, True, True, "start.png", box
|
||||||
|
|
||||||
def readConfig():
|
def readConfig():
|
||||||
with open('config.json', 'r') as c:
|
with open('config.json', 'r') as c:
|
||||||
json_data = c.read()
|
json_data = c.read()
|
||||||
return json.loads(json_data)
|
return json.loads(json_data)
|
||||||
|
|
||||||
def quitGame():
|
|
||||||
#save progress somehow, if needed
|
|
||||||
pygame.quit()
|
|
||||||
sys.exit()
|
|
||||||
|
|
||||||
def uwu():
|
|
||||||
print('uwu')
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
config = readConfig()
|
config = readConfig()
|
||||||
screen, clock, running, isblack, background, objects = setUp(config["screen"])
|
screen, clock, running, background, isblack, box = setUp(config["screen"])
|
||||||
WIDTH, HEIGHT = screen.get_size()
|
|
||||||
objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 + 72, 160, 64, 'medieval', "Exit game", quitGame))
|
|
||||||
objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2, 160, 64, 'medieval', "Options", uwu))
|
|
||||||
objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 - 72, 160, 64, 'medieval', "Play", uwu))
|
|
||||||
print(objects)
|
|
||||||
|
|
||||||
while running:
|
while running:
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
|
|
@ -44,7 +31,7 @@ def main():
|
||||||
if not isblack:
|
if not isblack:
|
||||||
with open(background, 'r') as i:
|
with open(background, 'r') as i:
|
||||||
bg = pygame.image.load(i)
|
bg = pygame.image.load(i)
|
||||||
bg = pygame.transform.scale(bg, (WIDTH, HEIGHT))
|
bg = pygame.transform.scale(bg, screen.get_size())
|
||||||
# fill the screen with a color to wipe away anything from last frame
|
# fill the screen with a color to wipe away anything from last frame
|
||||||
screen.blit(bg, (0, 0))
|
screen.blit(bg, (0, 0))
|
||||||
|
|
||||||
|
|
@ -52,8 +39,6 @@ def main():
|
||||||
|
|
||||||
else:
|
else:
|
||||||
screen.fill('#000000')
|
screen.fill('#000000')
|
||||||
for obj in objects:
|
|
||||||
obj.process(screen)
|
|
||||||
# flip() the display to put your work on screen
|
# flip() the display to put your work on screen
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue