資源簡介
kivy 官方 開發 demo,適合初學者,全面了解kivy。涉及空間、圖片、動畫、3D等。

代碼片段和文件信息
‘‘‘
Shuffled?Camera?Feed?Puzzle
===========================
This?demonstrates?using?Scatter?widgets?with?a?live?camera.
You?should?see?a?shuffled?grid?of?rectangles?that?make?up?the
camera?feed.?You?can?drag?the?squares?around?to?see?the
unscrambled?camera?feed?or?double?click?to?scramble?the?grid
again.
‘‘‘
from?kivy.app?import?App
from?kivy.uix.camera?import?Camera
from?kivy.uix.widget?import?Widget
from?kivy.uix.slider?import?Slider
from?kivy.uix.scatter?import?Scatter
from?kivy.animation?import?Animation
from?kivy.graphics?import?Color?Rectangle
from?kivy.properties?import?NumericProperty
from?random?import?randint?random
from?functools?import?partial
class?Puzzle(Camera):
????blocksize?=?NumericProperty(100)
????def?on_texture_size(self?instance?value):
????????self.build()
????def?on_blocksize(self?instance?value):
????????self.build()
????def?build(self):
????????self.clear_widgets()
????????texture?=?self.texture
????????if?not?texture:
????????????return
????????bs?=?self.blocksize
????????tw?th?=?self.texture_size
????????for?x?in?range(int(tw?/?bs)):
????????????for?y?in?range(int(th?/?bs)):
????????????????bx?=?x?*?bs
????????????????by?=?y?*?bs
????????????????subtexture?=?texture.get_region(bx?by?bs?bs)
????????????????#?node?=?PuzzleNode(texture=subtexture
????????????????#??????????????????size=(bs?bs)?pos=(bx?by))
????????????????node?=?Scatter(pos=(bx?by)?size=(bs?bs))
????????????????with?node.canvas:
????????????????????Color(1?1?1)
????????????????????Rectangle(size=node.size?texture=subtexture)
????????????????self.add_widget(node)
????????self.shuffle()
????def?shuffle(self):
????????texture?=?self.texture
????????bs?=?self.blocksize
????????tw?th?=?self.texture_size
????????count?=?int(tw?/?bs)?*?int(th?/?bs)
????????indices?=?list(range(count))
????????childindex?=?0
????????while?indices:
????????????index?=?indices.pop(randint(0?len(indices)?-?1))
????????????x?=?bs?*?(index?%?int(tw?/?bs))
????????????y?=?bs?*?int(index?/?int(tw?/?bs))
????????????child?=?self.children[childindex]
????????????a?=?Animation(d=random()?/?4.)?+?Animation(pos=(x?y)
???????????????????????????????????????????????????????t=‘out_quad‘?d=.4)
????????????a.start(child)
????????????childindex?+=?1
????def?on_touch_down(self?touch):
????????if?touch.is_double_tap:
????????????self.shuffle()
????????????return?True
????????super(Puzzle?self).on_touch_down(touch)
class?PuzzleApp(App):
????def?build(self):
????????root?=?Widget()
????????puzzle?=?Puzzle(resolution=(640?480)?play=True)
????????slider?=?Slider(min=100?max=200?step=10?size=(800?50))
????????slider.bind(value=partial(self.on_value?puzzle))
????????root.add_widget(puzzle)
????????root.add_widget(slider)
????????return?root
????def?on_value(self?puzzle?instance?value):
????????value?=?int((value?+?5)?/?10)?*?10
????????puzzle.blocksize?=?value
????????instance.value?=?value
PuzzleApp().run()
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-20?11:15??demo\
?????文件????????2957??2018-04-20?11:15??demo\camera_puzzle.py
?????目錄???????????0??2018-04-20?11:17??demo\kivycatalog\
?????目錄???????????0??2018-04-20?11:17??demo\kivycatalog\.idea\
?????文件??????????11??2018-04-20?11:17??demo\kivycatalog\.idea\.name
?????文件?????????159??2018-04-20?11:17??demo\kivycatalog\.idea\encodings.xm
?????文件?????????284??2018-04-20?11:17??demo\kivycatalog\.idea\kivycatalog.iml
?????文件?????????701??2018-04-20?11:17??demo\kivycatalog\.idea\misc.xm
?????文件?????????274??2018-04-20?11:17??demo\kivycatalog\.idea\modules.xm
?????文件???????15318??2018-04-20?11:17??demo\kivycatalog\.idea\workspace.xm
?????目錄???????????0??2018-04-20?11:15??demo\kivycatalog\container_kvs\
?????文件?????????261??2018-04-20?11:15??demo\kivycatalog\container_kvs\AnchorLayoutContainer.kv
?????文件?????????246??2018-04-20?11:15??demo\kivycatalog\container_kvs\BoxLayoutContainer.kv
?????文件?????????635??2018-04-20?11:15??demo\kivycatalog\container_kvs\ButtonContainer.kv
?????文件?????????489??2018-04-20?11:15??demo\kivycatalog\container_kvs\CheckBoxContainer.kv
?????文件?????????430??2018-04-20?11:15??demo\kivycatalog\container_kvs\FileChooserContainer.kv
?????文件?????????296??2018-04-20?11:15??demo\kivycatalog\container_kvs\FloatLayoutContainer.kv
?????文件?????????355??2018-04-20?11:15??demo\kivycatalog\container_kvs\GridLayoutContainer.kv
?????文件????????1763??2018-04-20?11:15??demo\kivycatalog\container_kvs\LabelContainer.kv
?????文件?????????183??2018-04-20?11:15??demo\kivycatalog\container_kvs\MediaContainer.kv
?????文件?????????748??2018-04-20?11:15??demo\kivycatalog\container_kvs\PlaygroundContainer.kv
?????文件?????????911??2018-04-20?11:15??demo\kivycatalog\container_kvs\PopupContainer.kv
?????文件?????????335??2018-04-20?11:15??demo\kivycatalog\container_kvs\ProgressBarContainer.kv
?????文件?????????220??2018-04-20?11:15??demo\kivycatalog\container_kvs\RestContainer.kv
?????文件?????????336??2018-04-20?11:15??demo\kivycatalog\container_kvs\ScatterContainer.kv
?????文件?????????292??2018-04-20?11:15??demo\kivycatalog\container_kvs\SelectorsContainer.kv
?????文件?????????477??2018-04-20?11:15??demo\kivycatalog\container_kvs\StackLayoutContainer.kv
?????文件?????????527??2018-04-20?11:15??demo\kivycatalog\container_kvs\TextContainer.kv
?????文件????????4695??2018-04-20?11:15??demo\kivycatalog\kivycatalog.kv
?????文件????????6949??2018-04-20?11:15??demo\kivycatalog\main.py
?????目錄???????????0??2018-04-20?11:15??demo\multistroke\
............此處省略64個文件信息
- 上一篇:OA人員選擇模塊Js+JSON
- 下一篇:hzk16+asc16字庫
評論
共有 條評論