gpt4 book ai didi

android - 如何让kivy小部件暂停

转载 作者:行者123 更新时间:2023-11-29 17:36:30 25 4
gpt4 key购买 nike

我想制作一个带有两个小部件的小程序来学习一些关于使用 kivy 开发游戏的知识。一个 Widget 应该在屏幕上随机运行,另一个则静止不动。现在我想找到一种方法来实现一个“暂停按钮”,它应该创建一个“暂停模式”,如果玩家想要休息一下,游戏的所有小部件都会停止做任何事情。我试图谷歌它,但我没有找到任何东西。所以我想问问是否有人知道这样的功能?这是我的代码:

from kivy.base import runTouchApp
from kivy.lang import Builder

from random import random

from kivy.uix.widget import Widget

from kivy.clock import Clock
from kivy.animation import Animation

from kivy.properties import ListProperty
from kivy.core.window import Window
Builder.load_string('''
<Root>:
ClockRect:
pos: 300, 300
AnimRect:
pos: 500, 300

<ClockRect>:
canvas:
Color:
rgba: 10, 0, 0, 1
Rectangle:
pos: self.pos
size: self.size
<AnimRect>:
canvas:
Color:
rgba:0, 20, 0, 1
Rectangle:
pos: self.pos
size: self.size
''')

class Root(Widget):
pass

class ClockRect(Widget):

velocity = ListProperty([10, 15])
def __init__(self, **kwargs):
super(ClockRect, self).__init__(**kwargs)
Clock.schedule_interval(self.Update, 1/60.)

def Update(self, *args):
self.x += self.velocity[0]
self.y += self.velocity[1]

if self.x < 0 or (self.x + self.width) > Window.width:
self.velocity[0] *= -1
if self.y < 0 or (self.y + self.height) > Window.height:
self.velocity[1] *= -1
def on_touch_down(self, touch):
if self.collide_point(*touch.pos):
print 'es geht'

class AnimRect(Widget):


def on_touch_down(self, touch):
if self.collide_point(*touch.pos):
pass#if this funktion is executed, I want to pause the game

runTouchApp(Root())

最佳答案

总的来说,我对 Kivy 和图形编程还很陌生,但我设法让它停止了。希望你能更进一步:

我替换了你的行:

Clock.schedule_interval(self.Update, 1/60.)

用这两行:

self.My_Clock = Clock
self.My_Clock.schedule_interval(self.Update, 1/60.)

然后我将以下行添加到“def on_touch_down”方法的顶部:

self.My_Clock.unschedule(self.Update)

关于android - 如何让kivy小部件暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30279969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com