我最近开始玩Kivy,想做一个简单的射击游戏。在
这是我的代码:
import kivy
kivy.require('1.9.0')
from kivy.config import Config
Config.set('graphics', 'width', '800')
Config.set('graphics', 'height', '600')
from kivy.app import App
from kivy.clock import Clock
from kivy.core.text import LabelBase
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.graphics import Rectangle
from kivy.lang import Builder
from kivy.config import Config
import random, time
a = Builder.load_string('''
<BattleField>
BoxLayout:
orientation: 'vertical'
<Target>
canvas:
Rectangle:
pos: self.pos
size: self.size
source: 'target.jpg'
''')
class BattleField(Widget):
#to destroy target
def on_touch_down(self,touch):
#if self.collide_point(*touch.pos):
if self.collide_widget(self.target):
self.remove_widget(self.target)
def appear_target(self, *args):
random_pos = tuple([random.randint(0, 600) for i in range(2)])
self.target = Target()
self.target.pos = (random_pos)
self.add_widget(self.target)
class Target(Widget):
pass
class ClockApp(App):
def build(self):
g = BattleField()
Clock.schedule_interval(g.appear_target, 1)
return g
if __name__ == '__main__':
ClockApp().run()
所以现在它每1秒增加一个新目标。不过,我在这里有几个问题:
有人能帮我修好这个吗?谢谢!在
好了(对原来的帖子没有太多改动)。您应该看看官方文档上的this page
你试过吗self.parent.remove_小部件(自我目标)“而不是”self.remove_小工具(自我目标)"? 要删除一个widget,你的代码需要从widgets树的一个更高的位置开始操作(我想测试你的代码,但是我现在没有电脑)。在
相关问题 更多 >
编程相关推荐