May 222021
 

给儿子报了python的编程课,作业变成我的作业,每周是必须完成的,这可以算是经典的自己给自己挖坑。

这段代码,实现一个方块,可以用键盘操作,到处走,还能用鼠标进行操作,更改颜色。

真的是吃饭的时候,才想到办法,让改变颜色的操作wait 一下,才能实现那种更改颜色的效果。鼠标点方块里,改变颜色,鼠标在外面,就跟着走,按空格键,方块会变大。

import pygame,time
from random import randint as rd

pygame.init()

screen = pygame.display.set_mode([640,480])
pygame.key.set_repeat(20)
r = pygame.Rect(0,0,50,50)

def draw():
    screen.fill([255,255,255])
    pygame.draw.rect(screen,(0,128,0),r)
    pygame.display.flip()

def keydown(i):
    if i.key == pygame.K_UP:
        r.y-=10
    if i.key == pygame.K_DOWN:
        r.y+=10
    if i.key == pygame.K_RIGHT:
        r.x+=10
    if i.key == pygame.K_LEFT:
        r.x-=10
    if i.key == pygame.K_SPACE:
        r.h+=10
        r.w+=10

def mousedown():
    b=pygame.mouse.get_pos()    
    if r.x<b[0]<r.x+r.w and r.y<b[1]<r.y+r.h :       
        pygame.draw.rect(screen,(rd(0,255),rd(0,255),rd(0,255)),r)
        pygame.display.flip()
        pygame.time.wait(1000)

    else:
        r.x=b[0]
        r.y=b[1]   
   
a=1
while a ==1:
    draw()

    e = pygame.event.get()
    for i in e:
        if i.type == pygame.QUIT:
            a = 0     
        if i.type == pygame.KEYDOWN:
            keydown(i)
        if i.type == pygame.MOUSEBUTTONDOWN:
            mousedown()


pygame.quit()
     

 Leave a Reply

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.