资源简介
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字库
相关资源
- Unity合并网格Demo
- 巴斯勒相机开发的双相机Demo
- zw_CameraDemo.zip
- unity 消息分发机制demo
- 黄金矿工as3版本demo
- ssh项目demo
- RibbonDemo源码
- DemoButton
- IOS 汽车方向盘DEMO
- 操作系统课程设计报告,基于30天自制
- 微信小程序demo
- daterangepicker时间组件Demo
- 电商购物小程序源码demo
- SpringBoot CRUD + 事务 DEMO
- 视频车辆检测Demo
- MTP便携设备通信Demo(微软官方)
- Kinect+PCL Demo程序 点云处理和显示 VS
- 微信小程序地图demo
- 模拟Digest认证的登录demo
- SpringDemo 入门学习代码
- ibatisDemo 入门源码
- Jpcap 64位,完整一套包括WinpcapJpcapjp
- 友我科技RFID读写器云服务安装包及
- 自绘菜单Demo
- 微信支付商户平台企业向个人付款接
- vue.js企业级架构设计demo
- stm32_cjson_demo.rar
- Js 游戏虚拟摇杆 Demo
- 八叉树Demo - Unity下
- IOS 简单的计算器Demo
评论
共有 条评论