我正在通过制作一些基本游戏来学习pygame,在下面的一个中,我试图让一个记忆难题有4种形状,其中4种颜色隐藏在黑色卡片/封面后面,用户必须点击一张黑色卡片/以揭示其背后的形状,并且必须通过猜测与其他形状相匹配的相同颜色。如何删除特定的pygame.draw点击?
我已经到目前为止对于那些卡
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()
在这里,我硬编码删除5个元素
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)
出来的代码,但我不知道该怎么做,与用户输入。
尽量想办法自己做,使用谷歌来回答任何一般问题。那么,如果遇到任何问题,您可以在这里问一个更具体的问题。 –