2015-07-07 6 views
-1

Я опытный программист на питоне, но проблема с документацией Kivy заключается не только в том, что он подходит для новичков Kivy, у него нет простых, полных, рабочих примеров кода, так как он объясняет API.Kivy: создание эффекта панорамирования экрана?

Я использовал свои собственные соображения и обнаружил, как создать спрайт, центрировать начало/ось графики/текстуры, анимировать спрайт, переместить его и создать фон.

Для моей следующей тренировочной сессии я хотел сделать кастрюлю/прокрутку экрана, и все, что оставалось сосредоточенным на моем спрайте.

Опять же, действительно нет рабочего кода в документе ScrollView от Kivy.

Может ли кто-нибудь предоставить мне простейший вид рабочего кода, который достигает того, что я ищу?

Опять же, держите это просто, потому что я просто пытаюсь понять, как функции/методы используются в коде.

-------- обновление --------------

Whoot !!!! Это ... и никаких полос прокрутки! Есть еще одна проблема, и это изменчивое движение экрана. Я не боюсь этого, потому что считаю, что это связано с изменчивым движением моего спрайта.

Моя теория состоит в том, когда я изменил движение к контролю Interval часов в сочетании с плавным движением анимации ... что зыбь уйдет. Если моя теория верна, я отправлю код. В противном случае, я не думаю, что кто-то будет интересоваться сломанным кодом, lol.

Я сделаю это завтра; устал прямо сейчас, потому что я был в Kivy весь день, и у девушки есть один жесткий «бобра». PS ... Я вижу, что у Kivy 1.9.1 будет вызов Scoll_To (widget).

--------- обновление 4:00 утра ----------

Я видел быстрое решение перед сном, и теперь порывистый движение ушло. Whoot !!!! Похищение прикладом Киви! Эм ... э ... не обижай меня, киви ... Лол.

Сейчас я просто пытаюсь узнать, как закодировать всю базовую логику, необходимую для игрового дизайна, стиля Киви.

Итак, теперь я могу создать игровой мир, установить фон, создать актер, переместить этот актер с клавиатуры (до сих пор), оживить актера и теперь полностью панорамировать вид.

Завтра (технически, сегодня) Я отправлю код в качестве ответа на вопрос .... надеюсь, что я помню.

+0

Для хорошего и довольно полное введение в kivy, серия учебник сделано @inclement очень полезны IMO: http://inclem.net/pages/kivy-crash-course/ И вы получили в в частности раздел про прокручиваемую метку (или другую вещь ...): https://www.youtube.com/watch?v=WdcUg_rX2fM – ThePhi

ответ

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

Я действительно следовал примеру scrollview и получил ошибку «Недопустимое свойство - minimum_height». Может иметь какое-то отношение к тому, что у меня есть класс фона и класс спрайтов. Класс gameworld добавляет к нему все. Наверное, я пытаюсь использовать базовую логику установки, которая работает с некоторыми игровыми механизмами, но, очевидно, с Kivy, все будет не так просто. – Cotownsend78

+0

@ Cotownsend78, обновите свой вопрос и добавьте свой код и ошибку, которую вы получите –

-1

Так как я решил эту проблему, я получил лучшее понимание того, что происходит. Настройка ScrollView в Kivy эквивалентна установке ViewPort в некоторых игровых движках.

С учетом сказанного, GameWorld действительно является GameWindow, так как к нему применяется «Вид».

Ох ... полоски прокрутки все еще показывают ... их просто так трудно увидеть. Я не беспокоюсь о том, чтобы прятать их прямо сейчас.

Сегодня я думаю, что напишу код, который одновременно обрабатывает клавиши. Мне нравится давать 2D-акторам 8 направленное движение.

После этого я напишу код обнаружения столкновения, и я напишу 2D-код глубины на основе теории «y-».

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 
Смежные вопросы