微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pygame关闭鼠标时更新精灵以使其移动

如何解决pygame关闭鼠标时更新精灵以使其移动

今天过得怎么样?

最近,我一直在尝试制作自己的国际象棋游戏,并且对pygame做了大量研究。

我已经到了可以显示木板(使用的“ chessboard”和“ python-chess”库)的位置,并且当玩家单击某个正方形时,我就能知道是哪个正方形。

但是,我要制作它,以便您可以单击并将一块拖到新的正方形。

这是我的代码

from chessboard import display
from chessboard import images
import chess
from chess import engine
import pygame

myBoard = chess.Board()
myBoard.reset_board()

mydisplay = display.start(myBoard.board_fen())

squareLocations = list(display.board.Board.boardRect)
squareLocations.reverse()
columns = ["a","b","c","d","e","f","g","h"]
square_size = 50


class MyPiece(pygame.sprite.Sprite):
    def __init__(self,picture):
        super().__init__()
        self.image = pygame.image.load(picture)
        self.rect = self.image.get_rect()

    def update(self):
        self.rect.center = pygame.mouse.get_pos()

game_end = False
display_perm = True
row_check = True
piece_clicked = False
while not game_end:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_end = True
        if pygame.mouse.get_pressed()[0] == 1:
            mouse_x,mouse_y = pygame.mouse.get_pos()
            display_perm = False
            try:
                if not piece_clicked:
                    piece_clicked,piece_png,square = get_piece_on_square()
                    mydisplay.blit(display.board.Board.wtile,square)
                    piece_image = piece_png + ".png"
                    piece_in_use = MyPiece(piece_image)
                    piece_group = pygame.sprite.Group()
                    piece_group.add(piece_in_use)
                    piece_group.update()
                    piece_group.draw(mydisplay)

                pygame.display.update()
                piece_in_use.update()
                piece_group.update()
            except Exception as e:
                print(e)
    if display_perm:
        display.start(myBoard.board_fen())

我无法直接访问这些零件的表面,因此必须覆盖原始零件并制作可以使用的副本。

问题是,它没有按照更新功能的指示将我的作品移动到鼠标上。

有更好的方法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。