python - 在 Kivy 中旋转十张随机图像
问题描述
我正在制作一个游戏,用户必须在其中检测与其他图像不同的图像。我在 .kv 中有十个图像,我需要创建一个循环,在其中我随机分配某种更改(我可以考虑将图像旋转 90 度)到 10 个图像之一,然后单击它时,去到下一个级别,这将是相同的练习,但会更改另一个图像。三个重复的循环会很好。
*.kv
<ContainerCaza>:
canvas.before:
Rectangle:
pos: self.pos
size: self.size
source: 'data/img/fondobosque.jpg'
BoxLayout:
orientation: 'vertical'
Label:
text: 'Ahora debes localizar al intruso entre estas imágenes. ¡Fíjate bien, una de las imágenes es distinta!'
size_hint_y: None
text_size: self.width, None
height: self.texture_size[1]
halign: 'center'
valign: 'middle'
padding: (20,15)
font_size: 25
color: (.66, .38, .14, 1)
canvas.before:
Rectangle:
size: self.size
pos: self.pos
source: 'data/img/texturacuaderno.png'
GridLayout:
pos_hint: {"center_x": 0.5, "center_y": 0.5}
cols: 5
spacing: '40dp'
size_hint: 0.7, 0.7
#height: self.minimum_height
ToggleButton:
id: 1
text: '1'
group: 'g1'
id: caza01
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.16, "center_y": 0.3}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 2
text: '2'
group: 'g1'
id: caza02
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.32, "center_y": 0.3}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 3
text: '3'
group: 'g1'
id: caza03
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.48, "center_y": 0.3}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 4
text: '4'
group: 'g1'
id: caza04
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.64, "center_y": 0.3}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 5
text: '5'
group: 'g1'
id: caza05
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.8, "center_y": 0.3}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 6
text: '6'
group: 'g1'
id: caza06
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.16, "center_y": 0.7}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 7
text: '7'
group: 'g1'
id: caza07
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.32, "center_y": 0.7}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 8
text: '8'
group: 'g1'
id: caza08
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.48, "center_y": 0.7}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 9
text: '9'
group: 'g1'
id: caza09
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.64, "center_y": 0.7}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
ToggleButton:
id: 10
text: '10'
group: 'g1'
id: caza10
background_color: 0, 0, 0, 0
pos_hint: {"center_x": 0.8, "center_y": 0.7}
Image:
source: "data/img/letra_d/dragon.png"
y: self.parent.y
x: self.parent.x
size: self.parent.size
# allow_stretch: True
keep_ratio: False
Button:
size_hint:.06, 0.1
text: "Volver al menú"
on_release: app.root.current = 'menu'
*.py
from kivy.uix.togglebutton import ToggleButton
__all__ = ('Caza')
import kivy
kivy.require('1.0.6')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
import random
#Builder.load_file('caza.kv')
class ContainerCaza(Screen):
def __init__(self, **kwargs):
super(ContainerCaza, self).__init__(**kwargs)
class CazaApp(App):
def build(self):
#Window.fullscreen = 'auto'
return ContainerCaza()
if __name__ == "__main__":
CazaApp().run()
解决方案
推荐阅读
- ios - Jenkins SonarQube 链接不可点击
- mysql - codeigniter 上传图片并将路径插入数据库
- python - 为什么 multiprocessing.Pool 关闭/不跨进程共享 SQL 连接?
- laravel - 如何在laravel中渲染所有相关数据
- sql - 从每个月的打开和关闭日期获取任务计数的差异
- indexeddb - IndexedDB 是否支持部分更新?
- arrays - 在 Excel 中将 Countif 添加到数组公式(小计)
- java - Java中的MySql表监听器
- c# - LINQ 查询、分组依据和多个总和
- lombok - 是否可以排除 lombok 功能