mirror of
https://github.com/csd4ni3l/aim-trainer.git
synced 2026-01-01 04:03:42 +01:00
Fix credits and settings dropdowns, add high score, fps counter
This commit is contained in:
@@ -46,14 +46,21 @@ class Main():
|
||||
self.pypresence_client = FakePyPresence()
|
||||
self.pypresence_client.start_time = time.time()
|
||||
|
||||
if os.path.exists("data.json"):
|
||||
with open("data.json", "r") as file:
|
||||
self.high_score = json.load(file)["high_score"]
|
||||
else:
|
||||
self.high_score = 0
|
||||
|
||||
self.pypresence_client.update(state='In Main Menu', details='In Main Menu')
|
||||
|
||||
button_spacing = .075 * 1.25
|
||||
base_y = -2
|
||||
|
||||
self.menu_parent = Entity(parent=camera.ui, y=.15)
|
||||
self.main_menu = Entity(parent=self.menu_parent)
|
||||
|
||||
self.title_label = Text("Aim Trainer", parent=self.main_menu, y=-0.25 * button_spacing, scale=3, x=-.2)
|
||||
self.title_label = Text("Aim Trainer", parent=self.main_menu, y=-0.01 * button_spacing, scale=3, x=-.2)
|
||||
self.high_score_label = Text(f"High Score: {self.high_score}", parent=self.main_menu, scale=1.25, y=-1 * button_spacing, x=-.12)
|
||||
self.play_button = MenuButton('Play', on_click=Func(self.play), parent=self.main_menu, y=-2 * button_spacing)
|
||||
self.settings_button = MenuButton('Settings', on_click=Func(self.settings), parent=self.main_menu, y=-3 * button_spacing)
|
||||
self.quit_button = MenuButton('Quit', on_click=Sequence(Wait(.01), Func(application.quit)), parent=self.main_menu, y=-4 * button_spacing)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
from ursina import *
|
||||
from ursina.prefabs.slider import ThinSlider
|
||||
from ursina.prefabs.dropdown_menu import DropdownMenu, DropdownMenuButton
|
||||
from ursina.prefabs.dropdown_menu import DropdownMenuButton
|
||||
from ursina.prefabs.button_group import ButtonGroup
|
||||
import pypresence, json, copy
|
||||
from utils.utils import FakePyPresence
|
||||
from utils.utils import FakePyPresence, Dropdown
|
||||
from utils.constants import discord_presence_id, settings, settings_start_category
|
||||
from utils.preload import music_sound
|
||||
|
||||
@@ -58,20 +58,29 @@ class Settings:
|
||||
self.ui.append(slider)
|
||||
|
||||
else:
|
||||
items = []
|
||||
menu_buttons = []
|
||||
for opt in info['options']:
|
||||
b = DropdownMenuButton(opt)
|
||||
b.on_click = lambda btn, n=name: self.update(n, btn.text)
|
||||
items.append(b)
|
||||
dm = DropdownMenu(val, buttons=tuple(items))
|
||||
dm.position = (.2, y)
|
||||
self.ui.append(dm)
|
||||
menu_button = DropdownMenuButton(opt)
|
||||
menu_buttons.append(menu_button)
|
||||
|
||||
dropdown_menu = Dropdown(val, buttons=tuple(menu_buttons))
|
||||
|
||||
for menu_button in menu_buttons:
|
||||
menu_button.on_click = lambda dropdown_menu=dropdown_menu, btn=menu_button, n=name: self.dropdown_update(n, dropdown_menu, btn)
|
||||
|
||||
dropdown_menu.position = (.2, y)
|
||||
self.ui.append(dropdown_menu)
|
||||
|
||||
y -= .08
|
||||
|
||||
self.apply_button = Button('Apply', parent=camera.ui, color=color.green, scale=(.15, .08), position=(.6, -.4), on_click=self.apply_changes)
|
||||
self.ui.append(self.apply_button)
|
||||
|
||||
def dropdown_update(self, n, dropdown_menu, btn):
|
||||
dropdown_menu.text = btn.text
|
||||
|
||||
self.update(n, btn.text)
|
||||
|
||||
def update(self, name, value):
|
||||
self.edits[settings[self.category][name]['config_key']] = value
|
||||
|
||||
@@ -146,15 +155,15 @@ class Settings:
|
||||
text = file.read()
|
||||
|
||||
if window.size.x >= 3840:
|
||||
font_size = 2.4
|
||||
font_size = 2.3
|
||||
elif window.size.x >= 2560:
|
||||
font_size = 1.9
|
||||
font_size = 1.8
|
||||
elif window.size.x >= 1920:
|
||||
font_size = 1.6
|
||||
font_size = 1.5
|
||||
elif window.size.x >= 1440:
|
||||
font_size = 1.3
|
||||
font_size = 1.2
|
||||
else:
|
||||
font_size = 1.1
|
||||
font_size = 1.0
|
||||
|
||||
self.credits_label = Text(text=text, parent=camera.ui, position=(0, 0), origin=(0, 0), scale=font_size, color=color.white)
|
||||
self.credits_label.type = 'credits_text'
|
||||
|
||||
Reference in New Issue
Block a user