Аркада и python, когда я бросаю кости, перемещайте жетон, который я выбираю с помощью мыши (описание в коде) - PullRequest
0 голосов
/ 09 июля 2020
import arcade
import random 
import time
lista1 =[None,[280,160], [280, 200], [280,240], [280,280],
        [240, 320],[200,320],[160, 320],[120,320],[80,320], [40,320], [40,360], 
        [40,400],
        [80, 400], [120, 400], [160,400], [200,400], [240,400], 
        [280, 440], [280, 480],[280,520], [280, 560], [280, 600],[280,640], 
        [320,640], [360, 640],[360,600],[360,560],[360,520],[360,480], [360,440], 
        [400, 400], [440, 400], [480,400], [520, 400], [560,400], [600, 400],
        [600, 360], [600, 320], [560, 320], [520, 320], [480, 320], [440, 320], 
        [400, 320], [360,280],[360, 240], [360, 200],[360, 160],[360,120], 
        [360, 80], [320, 80], [320, 120], [320, 160], [320, 200],[320, 240], [320, 280], [320,320]] 
ANCHO = 960
ALTO = 640
SCALING = 1 
class Juego(arcade.Window):
    def __init__(self):

        super().__init__(
            ANCHO, 
            ALTO, 
            "LUDO-VID",
            False, 
            False
        )
        arcade.set_background_color(arcade.color.WHITE)
    def setup(self):
        self.turno = 1
        self.coord=0
        self.primer = 0 
        self.map = arcade.tilemap.read_tmx("mapas/LUDO.tmx")
        self.tablero = arcade.process_layer(self.map, "tablero")
##############################################################################
        self.fichas = arcade.SpriteList()
        for j in range(2):
            self.ficha = arcade.Sprite("beta/assets/personaje.png", 0.3)
            self.ficha.center_x =96+(80*j)  
            self.ficha.center_y = 170
            self.fichas.append(self.ficha) 
            self.fichaa = arcade.Sprite("beta/assets/personaje.png", 0.3)
            self.fichaa.center_x =136
            self.fichaa.center_y = 130 + (80*j)
            self.fichas.append(self.fichaa)
    def lanzamiento(self):
        oportunidades = 0
        self.dados = arcade.SpriteList()
        self.num = str(random.randint(1,6))
        self.dado = arcade.Sprite(
            f"imagenes/dice{self.num}.jpeg", 
            SCALING
        )
        self.dado.center_y=500
        self.dado.center_x=800
        self.dados.append(self.dado)
        self.act = 0 
        if int(self.num)==6 and oportunidades ==0:
            self.turno = 1
            oportunidades+=1
        else:
            self.turno = 1
 
    def movimiento(self):
        if self.primer !=0:
            self.coord = self.coord + int(self.num)
        try:
            self.fichas[0].center_x = lista1[self.coord][0]
            self.fichas[0].center_y = lista1[self.coord][1]
        except IndexError:
            self.coord = self.coord - int(self.num)
            pass

    def on_draw(self):
        arcade.start_render()
        self.tablero.draw()
        for k in range(4):
            self.fichas[k].draw()
        self.dado.draw()
    def on_update(self, delta_time):
        if self.act != 0 and self.turno == 1:
            self.lanzamiento()
    def on_key_press(self, key, modifiers):
        if self.turno == 1:
            if key == arcade.key.A:
                self.act = 1
    
        

def main():
    ventana= Juego()
    ventana.setup()
    ventana.lanzamiento()
    arcade.run()
main() 
"""
ANCHO = WIDTH 
ALTO = HEIGHT
Juego = Game
tablero = board
primer = first 
lanzamiento = roll (dice)
ficha = token
fichaa = tokenn 
ventana = window
movimiento = movement """

как вы можете видеть, у меня уже есть функция, которая бросает кости при нажатии любой клавиши, но я не знаю, как определить функцию, которая перемещает выбранный мной жетон при броске кубика. родным языком является spani sh, поэтому я определил переменные на spani sh, но выше (в коде) приведены переводы

...