猫史档案馆


【Python作品分享】事件触发小球移动【作品秀】

用户:LEGEND523LEGEND523查看:0 回复:0 评论:0 创建时间:2023-06-16T21:09:19


【作品展示】

center_image

 

【作品介绍】

上下左右/WASD键控制小球移动

 

【作品源代码】

import pygame as p  # 导入pygame模块


class Ball(p.sprite.Sprite):
    def __init__(self, image_file, location,speed):
        p.sprite.Sprite.__init__(self)
        self.image = p.image.load(image_file)
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = location
        self.speed = speed

    def move(self):
        self.rect = self.rect.move(self.speed)
        if self.rect.left < 0 or self.rect.right > width:
            self.speed[0] = -self.speed[0]
        if self.rect.top < 0 or self.rect.bottom > height:
            self.speed[1] = -self.speed[1]


p.init()  # pygame模块初始化
# 创建一个[喵0,480]大小的窗口
p.key.set_repeat(500,10)
p.key.set_repeat(100,50)
clock =p.time.Clock()
size=width,height=800,600
screen = p.display.set_mode(size)
screen.fill([255, 255, 255])
ball = Ball("ball.png", [320, 240], [2, -2])
p.display.update()
running = True
while running:
    for event in p.event.get():
        if event.type == p.QUIT:
            running = False
        elif event.type == p.KEYDOWN:
            if event.key == p.K_UP or event.key == p.K_w:
                ball.rect.top -= 5
            elif event.key == p.K_DOWN or event.key == p.K_s:
                ball.rect.top += 5
            if event.key == p.K_RIGHT or event.key == p.K_d:
                ball.rect.left += 5
            elif event.key == p.K_LEFT or event.key == p.K_a:
                ball.rect.left -= 5
    screen.blit(ball.image, ball.rect)
    p.display.update()
    clock.tick(30)
    screen.fill([255, 255, 255])
p.quit()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页