鱼C论坛

 找回密码
 立即注册
查看: 1777|回复: 0

[作品展示] 上个问题解决了,是我瞎,总犯低级错误

[复制链接]
发表于 2020-9-8 10:49:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 重来 于 2020-9-8 11:02 编辑

#引用
import pygame,sys

#初始化
pygame.init()
size = width,height =600,400#设置屏幕,变量
speed = [1,1]#用列表设置小球速度,下面可通过索引使用
BLACK = 100,0,100#颜色RGB体系,红,绿,蓝
screen = pygame.display.set_mode(size)
pygame.display.set_caption('3键盘控制的碰壁小球')
ball = pygame.image.load('ball.gif')#载入图片
ballrect = ball.get_rect()#覆盖图像的Rect对象,有top,bottom,left,right,widgh,height属性
fps = 300#设置每秒刷新帧的次数,也可通过调整speed实现速度的变化(不知道功能完全相同不?)
fclock = pygame.time.Clock()#创建一个clock对象,用于操作时间



#事件处理
while True:
    for event in pygame.event.get():#获取事件类型
        if event.type == pygame.QUIT:
            sys.exit()

        elif event.type == pygame.KEYDOWN:#对键盘敲击的定义
            if event.key == pygame.K_LEFT:
                speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0])-1)*int(speed[0]/abs(speed[0]))
                #(abs(speed[0])-1)速度,int(speed[0]/abs(speed[0]))正负号问题
            elif event.key == pygame.K_RIGHT:
                speed[0] = speed[0]+1 if speed[0] > 0 else speed[0]-1
            elif event.key == pygame.K_UP:
                speed[1] = speed[1]+1 if speed[1] > 0 else speed[1]-1
            elif event.key == pygame.K_DOWN:
                speed[1] = speed[1] if speed[1] == 0  else (abs(speed[1])-1)*int(speed[1]/abs(speed[1]))
            elif event.key == pygame.K_ESCAPE:
                sys.exit()
    ballrect = ballrect.move(speed[0],speed[1])#设置小球移动速度(引用speed索引)
    if ballrect.left < 0 or ballrect.right >width:#遇左右两侧
        speed[0] = -speed[0] #横向速度相反
    if ballrect.top < 0 or ballrect.bottom > height:#遇上下
        speed[1] = -speed[1] #纵向速度相反

#窗口刷新
    screen.fill(BLACK)
    screen.blit(ball,ballrect)
    pygame.display.update()
    fclock.tick(fps)#设置时间间隔,控制帧速度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 20:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表