首页 > 解决方案 > 在 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()

标签: pythonimagekivykivy-language

解决方案


推荐阅读