Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 30, 2023 06:31:48

IPUIP
Зарегистрирован: 2023-08-30
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Игра на kivy python

Доброго дня. В целях самообучения пишу игрушку.
Использую pycharm на windows 10
Цель игры погасить кнопку на реакцию.
Проблема: после нескольких переключений поле заполняется и дальше нужно перезапускать.

Вот код:
from kivy.clock import Clock
from kivy.metrics import dp
from kivy.uix.button import Button
from random import randint
from kivymd.app import MDApp
from kivymd.uix.menu import MDDropdownMenu
from kivymd.uix.snackbar import Snackbar
from kivymd.uix.gridlayout import MDGridLayout
from kivymd.uix.toolbar import MDTopAppBar

class Catch(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.change_random_button = None

def build(self):
self.theme_cls.primary_palette = “Orange”
self.theme_cls.theme_style = “Light”

self.gl = MDGridLayout(rows=2)
self.tb = MDTopAppBar(title=“SPEED REACTION”, anchor_title=“left”, size_hint_y=None, height=.5, specific_text_color=“white”,
right_action_items=[])
self.menu_items = [
{
“viewclass”: “OneLineListItem”,
“text”: “Новая игра”,
“height”: dp(35),
“on_release”: self.file_manager_open,
},
{
“viewclass”: “OneLineListItem”,
“text”: “Продолжить”,
“height”: dp(35),
“on_release”: self.menu_seve,
},
{
“viewclass”: “OneLineListItem”,
“text”: “Настройки”,
“height”: dp(35),
“on_release”: self.menu_delet,
},
{
“viewclass”: “OneLineListItem”,
“text”: “Закрыть”,
“height”: dp(35),
“on_release”: self.on_menu_close,
}
]
self.menu = MDDropdownMenu(caller=self.tb, items=self.menu_items, width_mult=4)

self.buttons =
self.grid = MDGridLayout(cols=4, padding5, 10, 5, 5), spacing=2)

# Создание и добавление кнопок на сетку
for i in range(16):
button = Button(on_release=self.button_pressed)
self.grid.add_widget(button)
self.buttons.append(button)

# Загасить случайную кнопку
self.buttons.background_normal = ‘'
self.count = 0
Clock.schedule_interval(self.change_button, 0.5)

self.gl.add_widget(self.tb)
self.gl.add_widget(self.grid)

return self.gl

def callback(self, button):
self.menu.open()

def menu_callback(self, text_item):
self.menu.dismiss()
Snackbar(text=text_item).open()

def button_pressed(self, instance):
if instance.background_normal == ’':
instance.background_normal = ‘atlas/data/images/defaulttheme/button’
self.buttons.background_normal = ''

def change_button(self, dt):
self.buttons.background_normal = ‘'
for button in self.buttons:
if button.background_normal == ’':
button.background_normal = ‘atlas/data/images/defaulttheme/button’
self.count += 1
if self.count >= 3:
return
break

def file_manager_open(self):
print(“open”)

def menu_seve(self):
print(“Save as”)

def menu_delet(self):
print(“removal”)

def on_menu_close(self, *args):
self.stop()

Catch().run()
Буду благодарен за пинок в нужную сторону.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version