Ich lerne pygame, indem ich ein paar grundlegende Spiele mache, im folgenden versuche ich ein Gedächtnispuzzle zu machen, wo es 4 Formen mit 4 Farben hinter schwarzen Karten/Abdeckungen gibt, der Benutzer muss auf eine schwarze Karte klicken/Abdeckungen, um die Form dahinter zu offenbaren und muss mit anderen Formen mit der gleichen Farbe durch Raten übereinstimmen.Wie entferne ich eine bestimmte pygame.draw bei Klick?
Der Code, den ich mit bisher für diese Karten kam habe
import pygame as pg
import sys
import random
window_wth = 720
window_hgt = 360
window_resolution = window_wth, window_hgt
fps = 15
card_wth = 72
card_hgt = 92
gap_x = 77
gap_y = 97
c1 = (random.randrange(255), random.randrange(255), random.randrange(255))
c2 = (random.randrange(255), random.randrange(255), random.randrange(255))
c3 = (random.randrange(255), random.randrange(255), random.randrange(255))
c4 = (random.randrange(255), random.randrange(255), random.randrange(255))
bkg_colour = (30, 30, 30)
pg.display.set_caption("Game")
main_display = pg.display.set_mode(window_resolution)
pos_x = int((window_wth % gap_x)/2)
pos_y = int((window_hgt % gap_y)/2)
def list_draw_rct(tt_pos_x, tt_pos_y):
rect_areas1 = []
for x in range(tt_pos_x, window_wth - gap_x, gap_x):
for y in range(tt_pos_y, window_hgt - gap_y, gap_y):
colour = (random.randrange(255), random.randrange(255), random.randrange(255))
rect_area1 = pg.Rect(x, y, card_wth, card_hgt)
rect_areas1.append(rect_area1)
# print(rect_areas1)
return rect_areas1
def main():
global fps_clock, main_display
fps_clock = pg.time.Clock()
while True:
for event in pg.event.get():
if event.type == pg.KEYDOWN and event.key == pg.K_s:
for i in range(len(list_draw_rct(pos_x, pos_y))):
colour = (random.randrange(255), random.randrange(255), random.randrange(255))
pg.draw.rect(main_display, colour, list_draw_rct(pos_x, pos_y)[i], 5)
pg.display.update(list_draw_rct(pos_x, pos_y)[:5] + list_draw_rct(pos_x,pos_y)[(6):])
fps_clock.tick(fps)
if event.type == pg.QUIT:
sys.exit()
if __name__ == '__main__':
main()
Hier habe ich hart codiert 5. Element entfernen
if event.type == pg.KEYDOWN and event.key == pg.K_s:
for i in range(len(list_draw_rct(pos_x, pos_y))):
colour = (random.randrange(255), random.randrange(255), random.randrange(255))
pg.draw.rect(main_display, colour, list_draw_rct(pos_x, pos_y)[i], 5)
pg.display.update(list_draw_rct(pos_x, pos_y)[:5] + list_draw_rct(pos_x,pos_y)[(6):])
fps_clock.tick(fps)
Aber ich weiß nicht, wie das zu tun mit Benutzereingabe.
Versuch einer Art und Weise zu denken, es selbst zu tun, Google mit beantworten irgendwelche allgemeinen Fragen. Wenn Sie auf Probleme stoßen, können Sie hier eine spezifischere Frage stellen. –