我是一名经验丰富的python程序员,但Kivy的文档问题不仅仅是Kivy初学者的问题,它没有简单,完整,有效的代码示例。 API。
我使用了自己的智慧,并发现了如何创建精灵,使图形/纹理原点/轴居中,为精灵设置动画,移动它并创建背景。
对于我的下一次练习,我想让屏幕平移/滚动,所有为什么要集中注意力于我的精灵。
同样,在Kivy的ScrollView文档中确实没有工作代码。
任何人都可以向我提供最简单的工作代码形式,以实现我所寻找的目标吗?
再一次,保持简单,因为我只是想看看代码中如何使用函数/方法。
--------更新--------------
Whoot !!!!它没有...而且没有滚动条!还有一个问题需要解决,那就是不稳定的屏幕运动。我并不担心,因为我相信它与我精灵的波涛汹涌的运动有关。
我的理论是,当我改变移动到时钟间隔控制并结合平滑的动画运动时......那些不稳定会消失。如果我的理论是正确的,我会发布代码。否则,我不认为任何人会对破碎的代码感兴趣,哈哈。
我明天会这样做;现在已经累了,因为我整天都在Kivy,而且这个女孩有一个强壮的海狸。" PS ...我看到Kivy 1.9.1将有一个Scoll_To(小部件)调用。---------更新凌晨4:00 ----------
我在床前看到了一个快速修复,现在波涛汹涌的动作消失了。 Whoot !!!!踢Kivy的屁股!呃......呃......不要伤害我kivy ......哈哈。
现在我只是想学习如何编写游戏设计所需的所有基本逻辑,Kivy风格。
所以现在我可以创建游戏世界,设置背景,创建一个Actor,通过键盘移动该actor(到目前为止),为actor设置动画,然后完美地平移视图。
明天(技术上,今天)我将发布代码作为问题的答案....希望我记得。
答案 0 :(得分:1)
kivy here有一个示例列表。您可以查看scrollview example:
import kivy
kivy.require('1.0.8')
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.uix.gridlayout import GridLayout
class ScrollViewApp(App):
def build(self):
# create a default grid layout with custom width/height
layout = GridLayout(cols=1, padding=10, spacing=10,
size_hint=(None, None), width=500)
# when we add children to the grid layout, its size doesn't change at
# all. we need to ensure that the height will be the minimum required to
# contain all the childs. (otherwise, we'll child outside the bounding
# box of the childs)
layout.bind(minimum_height=layout.setter('height'))
# add button into that grid
for i in range(30):
btn = Button(text=str(i), size=(480, 40),
size_hint=(None, None))
layout.add_widget(btn)
# create a scroll view, with a size < size of the grid
root = ScrollView(size_hint=(None, None), size=(500, 320),
pos_hint={'center_x': .5, 'center_y': .5}, do_scroll_x=False)
root.add_widget(layout)
return root
if __name__ == '__main__':
ScrollViewApp().run()
答案 1 :(得分:-1)
由于我解决了这个问题,我对正在发生的事情有了更好的理解。在Kivy中设置ScrollView相当于在某些游戏引擎中设置ViewPort。
话虽如此,GameWorld本身就是GameWindow,因为&#34; View&#34;适用于它。
哦......滚动条仍然显示......它们很难看到。我现在不担心隐藏它们。
今天我想我会编写处理同时按下键的代码。我喜欢给2D Actors一个8方向的运动。
之后,我会写一些碰撞检测代码,然后我会根据&#34; y - &#34;写出2D深度代码。理论
class Actor(Widget):
...
class Background(Widget):
...
class GWindow(Widget):
...
self.size_hint = (None,None)
class TestApp(App):
def Build(self):
self.GW = GWindow
self.SV = ScrollView(size_hint=(None,None), size=(800,600))
self.SV.add_widget(self.GW)
return self.SV