¸üÐÂʱ¼ä:2022Äê07ÔÂ26ÈÕ15ʱ26·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

´ó¶àÊýÓÎÏ·¶¼Éæ¼°¶¯Ì¬Ð§¹û£¬ÈçÖ²Îï´óÕ½½©Ê¬ÖÐ×Óµ¯µÄ·¢ÉäЧ¹û¡¢½©Ê¬µÄÒÆ¶¯Ð§¹ûµÈ¡£ÊµÏÖ¶¯Ì¬Ð§¹ûµÄÔÀíÊÇÎı¾»òͼƬµÄ¸ü»»¡¢Î»ÖõĸıäÒÔ¼°ÆÁÄ»µÄˢС£»ù´¡µÄ¶¯Ì¬Ð§¹û·ÖΪÒÔÏÂ3ÖÖ¡£
(1)¶à´ÎÐÞ¸ÄSurface¶ÔÏó»æÖƵÄλÖò¢Á¬Ðø»æÖÆË¢Ð£¬ÊµÏÖÒÆ¶¯Ð§¹û¡£
(2)ÔÚͬһλÖûæÖƲ»Í¬µÄSurface¶ÔÏó£¬ÊµÏÖ¶¯»Ð§¹û¡£
(3)Á¬Ðø»æÖƲ»Í¬Surface¶ÔÏóµÄͬʱ£¬Ð޸ĻæÖƵÄλÖã¬ÊµÏÖÒÆ¶¯µÄ¶¯»¡£
ÕâÀïÒÔÊý×ÖÍÆÅÌÓÎÏ·Öз½¿éµÄÒÆ¶¯ÎªÀý½²½âÈçºÎʵÏÖÒÆ¶¯Ð§¹û¡£
Êý×ÖÍÆÅÌÓÎÏ·µÄ·½¿éÓɾØÐκÍÎı¾×é³É£¬ÆäÖÐÎı¾Ê¹ÓÃfontÄ£¿éµÄFont()º¯Êý¡¢render()·½·¨ÒÔ¼°Surface ÀàµÄblit()·½·¨»æÖÆ£¬¾ØÐÎʹÓÃpygame ÖÐdrawÄ£¿éµÄ rect()º¯Êý»æÖÆ¡£Òò´ËʵÏÖÊý×Ö·½¿éÒÆ¶¯ÐèÒª¾¹ýÒÔÏÂ×÷¡£
(1)»æÖƾØÐη½¿é¡£
(2)»æÖÆÊý×Ö¡£
(3)ÒÆ¶¯·½¿é¡£
ÏÂÃæ·Ö±ðʵÏÖÒÔÉϲÙ×÷¡£
pygame µÄ×ÓÄ£¿édraw ÖеÄrect()º¯ÊýÓÃÓÚÔÚSurface ¶ÔÏóÉϵÄÖ¸¶¨Î»ÖûæÖƾØÐΣ¬
¸Ãº¯ÊýµÄÉùÃ÷ÈçÏ£º
¡¡ rect (Surface, color, Rect, width=0) -> Rect
rect( )º¯Êý½ÓÊÕ4¸ö²ÎÊý£¬ÆäÖвÎÊýSurface ½ÓÊÕÒ»¸öSurface¶ÔÏ󣬲ÎÊýcolorÓÃÓÚÉèÖþØÐÎÑÕÉ«£¬²ÎÊýRect½ÓÊÕÒ»¸ö¾ØÐζÔÏó£¬ÒÔÉèÖþØÐλæÖƵÄλÖúÍÇøÓò£¬²ÎÊýwidthÓÃÓÚÉèÖÃÍâÑØµÄºñ¶È£¬Ä¬ÈÏΪ0¡£rect()º¯Êý±»µ÷Óúó»á·µ»ØÒ»¸ö¾ØÐζÔÏó¡£ÔÚ´°ÌåSurface¶ÔÏóWINSETµÄÖÐÐÄλÖûæÖÆ·Ö±æÂÊΪ60ÏñËØ×60ÏñËØµÄ»ÆÉ«¾ØÐΣ¬¾ßÌå´úÂëÈçÏ£º
¡¡ BLOCKSIZE =60 #¶¨Ò徨Ðα߳¤ ¡¡ # ´´½¨¾ØÐÎ ¡¡ blockRect = pygame.Rect (0.5*(WINWIDTH-BLOCKSIZE), ¡¡¡¡ 0.5* (WINHEIGHT-BLOCKSIZE), ¡¡¡¡ BLOCKSIZE, BLOCKSIZE) ¡¡ pygame.draw.rect (WINSET, BTCOLOR, blockRect ) #»æÖƾØÐÎ
½«´Ë¶Î´úÂëÌí¼Óµ½³ÌÐò7-pg-test-pyÖУ¬Ö´ÐгÌÐò£¬³ÌÐòÖ´Ðнá¹ûÈçÏÂͼËùʾ¡£

·½¿éÉϵÄÊý×ÖӦλÓÚ·½¿éµÄÖÐÐÄ£¬¾ØÐζÔÏóµÄ×óÉϽÇ×ø±ê´ú±í¾ØÐεÄλÖã¬Ä¿Ç°·½¿éÒÑλÓÚÆÁÄ»ÖÐÐÄ£¬¼ÙÉèÊý×ֵľØÐζÔÏóΪnumRect£¬ÔòÆäÔÚÆÁÄ»ÖеÄx¡¢y×ø±ê·Ö±ðÈçÏ¡£
(1)numRect.x=blockRect.x+0.5*(BLOCKSIZE-numRect.width)
(2) numRect.y =blockRect.y +0.5*(BLOCKSIZE-numRect.heigh)
¼ÙÉè·½¿éÖеÄÊý×ÖΪ5£¬»æÖÆÊý×Ö£¬½«ÆäÖÃÓÚ·½¿éÖÐÐÄ£¬¾ßÌå´úÂëÈçÏ£º
¡¡ # дÊý×Ö
¡¡ numSurf = BASICFONT.render('5', True, BTTEXTCOLOR, BTCOLOR)
¡¡ numRect = numSurf.get_rect()
numRect.x = blockRect.x + 0.5 * (BLOCKSIZE - numRect.width)
numRect.y = blockRect.y + 0.5 * (BLOCKSIZE - numRect.height)
ÓÉÓÚÊý×ÖλÖõÄÈ·¶¨ÒÀÀµÓÚ·½¿éµÄλÖ㬴˶δúÂëӦλÓÚ·½¿é´úÂëÖ®ºó¡£
ÒÆ¶¯Ð§¹ûͨ¹ýÔÚ²»Í¬µ«Á¬ÐøµÄλÖûæÖÆÍ¬Ò»¸öSruface¶ÔÏóʵÏÖ¡£ÍÆÅÌÖеķ½¿éÓÉ·½¿éͼÏñblockSurfºÍÊý×ÖͼÏñnumSurf×é³É£¬Òò´ËҪʵÏÖÍÆÅÌ·½¿éµÄÒÆ¶¯£¬Ðèͬ²½Òƶ¯·½¿éͼÏñºÍÊý×ÖͼÏñ¡£ÔÚforÑ»·ÖÐʵÏÖblockSurfºÍnumSurfµÄÁ¬ÐøÒƶ¯Óë»æÖÆ£¬¾ßÌå´úÂëÈçÏ£º
...
# ÔÚ±³¾°µÄ²»Í¬Î»ÖûæÖÆ·½¿é£¬ÖÆÔìÒÆ¶¯Ð§¹û¡£·½¿éÏòÓÐÒÆ¶¯BLACKSIZE+2
SIZE), BLOCKSIZE, BIOCKSIZE)
pygane.draw.rect (WINSET, BTCOLOR, blockRect)
# дÊý×Ö
numSurf - BASICFONT.render('5', True, BTTEXTCOLOR, BTCOLOR)
nunRect = nunSurf.get_rect()
numRect.x blockRect.x + 0.5 * (BLOCKSI2E - numRect.width)
numRect.y = blockRect.y + 0.5*(BIOCKSIZE - numRect.height)
# ÔÚ±³¾°µÄ²»Í¬Î»ÖûæÖÆ·½¿é£¬ÖÆÔìÒÆ¶¯Ð§¹û¡£·½¿éÏòÓÒÒÆ¶¯BLOCKSIZE+2
for i in range(0, BLOCKSIZE, 2):
FPSCLOCK.tick(EPS)
# »æÖÆ
Pygame.draw.rect(WINSET,BTCOLOR,blockRect)
WINSET.blit(numSurf,numRect)
pygame.display.update ()
# Ð޸ķ½¿éºÍÊý×ֵĺá×ø±ê
blockRect.x +=10 # Ð޸ķ½¿éºá×ø±ê
numRect.x +e 10 # ÐÞ¸ÄÊý×Öºá×ø±ê
WINSET.blit(baseSurf,(0,0)) # ʹÓñ¸·ÝbaseSurf¸²¸ÇWINSET
pygame.quit() # Ð¶ÔØËùÓÐÄ£¿é
if __name__ == '__main__':
main()
±£´æ¸ü¸Ä²¢Ö´ÐгÌÐò7_pg.test.py£¬³ÌÐòÔËÐÐÖ®³õÓë½áÊøÖ®Ç°·½¿éËùÔÚλÖ÷ֱðÈçͼaºÍbËùʾ¡£
ÓÉͼÏÂͼ¿ÉÖª£¬³ÌÐò³É¹¦ÊµÏÖÁË·½¿éµÄÒÆ¶¯¡£


±±¾©Ð£Çø