【发布时间】:2016-07-09 01:29:07
【问题描述】:
我想做一个小游戏,但我需要一些帮助...
我是 python 和 kivy 的新手。我正在使用 python 3.4 和 kivy 1.8.0。
游戏将包含一些可拖动和/或消失的绘制元素:
- 如果你点击一个点,你可以拖动它
- 如果你点击任何地方,一个点就会消失
我试图让它消失的部分,但我卡住了。
我在画布上制作了一个带有一些点的虚拟代码,您可以在其中看到我想如何解决问题:
--> 画一些点
--> 删除/重新定位点之一
--> 清除画布
--> 重绘
不知怎的,我无法重绘它。但我设法清理了画布......
你能帮我吗?
另外我想获得帮助/想法如何使它可拖动......
谢谢,这是我的代码:
from kivy.app import App
from kivy.graphics import Ellipse
from kivy.uix.boxlayout import BoxLayout
import random
class CustomLayout(BoxLayout):
def __init__(self, **kwargs):
super(CustomLayout, self).__init__(**kwargs)
self.a = []
self.points_pos()
with self.canvas.after:
self.draw_points()
def points_pos(self):
i=0
x = random.sample(range(800), 10)
y = random.sample(range(640), 10)
for i in range(10):
pos = [0,0]
pos[0]=x[i]
pos[1]=y[i]
self.a.append(pos)
print(self.a)
def draw_points(self):
i = 0
for i in range(len(self.a)):
self.circle = Ellipse(
size = (25,25),
pos = (self.a[i][0],self.a[i][1])
)
def random_remove(self):
point = self.a[random.randint(0,len(self.a)-1)]
self.a.remove(point)
def update(self):
self.parent.canvas.clear()
with self.canvas:
self.draw_points()
def on_touch_down(self, touch):
self.random_remove()
self.update()
class MainApp(App):
def build(self):
root = CustomLayout()
return root
if __name__ == '__main__':
MainApp().run()
【问题讨论】:
-
在您的
random_remove方法之外,我没有看到任何对edge的引用。 -
你说得对,我重新编辑了代码。现在它会随机抽取一些点。