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

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())

===============>>#1 票数:3 已采纳

我对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)

  ask by Gilgamesch translate from so

未解决问题?本站智能推荐:

1回复

Buildozer错误,CalledProcessError(Kivy)

我在运行buildozer android debug deploy run以下错误(VirtualBox上的Ubuntu 64 14.04): 尽管我已经找到了 ,并且说它已经关闭。 我也是Linux的新手。
1回复

Kivy启动器不适用于numpy

我已经使用Kivy编写了Python代码,但是其中包含一个numpy模块。 该代码在Linux和Windows上都能很好地运行。 一旦我将其传输到我的Android手机(使用kivy Launcher应用),它就会崩溃。 在删除numpy然后在Android手机上运行正常。 是否可以
1回复

在kivy上仅运行一次gif动画

我想制作一个运行gif animation的kivy app 。 gif animation应该在application启动后运行一次之后停止,但是gif animation又一次又一次地运行,我不知道如何停止它。 这是代码(重要的部分):
1回复

在Android Kivy应用程序上保存当前URL

我的代码: 该应用程序运行良好但我希望在on_pause事件触发时保存当前URL,然后当on_resume事件我想要返回到该URL时。 我没弄明白该怎么做。 建议?
1回复

Kivy:向我的应用添加工具栏

我正在尝试实现一个简单的工具栏。 现在,我坚持基础知识。 我目前的目标: 位于应用程序侧面的工具栏,允许用户将小部件添加到主gui。 我目前的进度: 位于正确位置的白色矩形。 添加正确小部件的按钮。 我需要正确放置按钮。 理想情况下,看起来我想使用某种布局(框
2回复

Kivy-屏幕快照[screenshot()]在Android上保存在哪里?

我遇到了一个大问题,当我在Android手机上使用screenshot()时,我不知道截图在哪里结束。 我已经查看了/ storage / emulated / 0 / Android / data但没有找到任何东西。 我的应用程序甚至都没有文件夹。 另外,有没有办法设置屏幕快照的保存
1回复

如何在Android上优雅地关闭一个kivy应用程序?

我有一个内容的kivy应用程序: 这很好用。 但不幸的是,当应用程序在Android上执行时,应用程序停止但不优雅,因为Android对话框打开,表示应用程序已关闭。 这不是正常结局的预期行为。 所以我的问题是:如何在Android上优雅地关闭一个kivy应用程序,以便看不到这
1回复

用kivy编写的android应用在Android手机上崩溃

我尝试使用kivy,buildozer在python中制作简单的Android应用 码 代码来源 我使用buildozer -v android debug命令制作apk,在使用adb install <app name>命令在android设备上adb inst
1回复

Kivy:使用Python函数时如何解决崩溃的应用程序

我正在尝试将Kivy的GUI功能与我编写的Python函数结合起来。 但每当我将该函数调用到我的一个Screen类时,整个应用程序崩溃并消耗我的内存和CPU使用率。 基本上,我要做的是从比较fn_compare函数获取global where变量,该函数涉及两个csv文件。 然后,我打
1回复

如何使用os模块将jpeg保存到cretin路径-使用Kivy屏幕截图()

有没有一种方法可以使用Python中的OS模块保存由Kivy中的screenshot()函数创建的jpeg? 我在Android上,因此我想找到一种方法来使screenshot()保存在/ sdcard / Pictures中。 如果我不必使用OS模块,该怎么办? 请使用示例并添加