Rumah > Artikel > pembangunan bahagian belakang > Masalah mengemas kini segi empat tepat dengan sifat tersuai dalam Pygame
Saya sedang menyahpepijat salah satu atur cara saya dan saya cuba menetapkan pembolehubah tersuai pada segi empat tepat untuk mengemas kini kedudukannya.
Ini kod saya:
import os ; os.environ['PYGAME_HIDE_SUPPORT_PROMPT']='False' import pygame, random pygame.init() display = pygame.display.set_mode((401, 401)) display.fill("white") ; pygame.display.flip() class MyRect(pygame.Rect): def __setattr__(self, attr, value): # Sets a custom attribute to a rectangle super().__setattr__(attr, value) if attr == 'xValue': pygame.Rect.move(self, (value-self.centerx), 0) # Move the rectangle according to the xValue def contains(self, coords): return self.collidepoint(coords) square = MyRect(175, 175, 50, 50) pygame.draw.rect(display, 'steelBlue', square) # Draw the rectangle to the screen square.xValue = 200 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() ; exit() elif event.type == pygame.MOUSEBUTTONDOWN: if square.contains(pygame.mouse.get_pos()): square.xValue = random.randint(0, display.get_width()) # Update the square.xValue property pygame.display.flip() # Update the screen
Apabila saya melaksanakan program, sifat square.xvalue berubah, tetapi kedudukan segi empat sama pada skrin tidak berubah.
Apa yang saya terlepas?
Anda perlu melukis semula adegan itu. Segi empat tepat mesti dilukis semula selepas perubahan. Paparan jelas dan lukis segi empat tepat dalam gelung aplikasi:
while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() ; exit() elif event.type == pygame.MOUSEBUTTONDOWN: if square.contains(pygame.mouse.get_pos()): square.xValue = random.randint(0, display.get_width()) # Update the square.xValue property display.fill("white"); pygame.draw.rect(display, 'steelBlue', square) pygame.display.flip() # Update the screen
Atas ialah kandungan terperinci Masalah mengemas kini segi empat tepat dengan sifat tersuai dalam Pygame. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!