python做游戏用什么库_Python制作游戏入门,使用Pygame库制作一个不断移动的小球-Go语言中文社区...

安装pygame库

pip install pygame

实现以下功能

创建一个音响窗口,在游戏窗口中创建一个不断斜向移动的小球,并在小球移动至窗口边缘时使其弹回并继续移动

贴出代码

import pygame,sys

pygame.init() #初始化pygame

info = pygame.display.Info() #获取当前窗口信息

size = width,height = info.current_w,info.current_h #设置窗口大小

speed = [1,1] #设置运动速度

black = 0,0,0 #设置背景颜色为黑色

fps = 600 #设置帧率为300

s = pygame.display.set_mode(size,pygame.FULLSCREEN) #设置窗口大小和显示模式,pygame.NOFRAME:无边框,pygame.RESIZABLE:窗口大小可调,pygame.FULLSCREEN:全屏显示

pygame.display.set_caption("ball") #设置窗口标题

ball = pygame.image.load("ball.gif") #加载图片,加载成功后,pygame会将图片转换成一个Surface对象返回,修改该对象位置就相当于移动图片

ballrect = ball.get_rect() #将图片生成一个矩形

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] + 1

elif event.key == pygame.K_RIGHT:

speed[0] = speed[0] + 1

elif event.key == pygame.K_UP:

speed[1] = speed[1] + 1

if event.key == pygame.K_DOWN:

speed[1] = speed[1] + 1

if event.key == pygame.K_ESCAPE:

sys.exit()

ballrect = ballrect.move(speed[0],speed[1]) #球的移动,ballrect.move(x,y)方法中横轴移动x像素,纵轴移动y像素

s.fill(black) #在球移动后填充背景颜色为黑色(使用RGB色彩体系,R表示红色G表示绿色B表示蓝色)

s.blit(ball,ballrect) #通过ballrect矩形的移动来引导球的移动(blit函数:将一个图像绘制在另一个图像上)

pygame.display.update() #刷新屏幕

fclock.tick(fps) #设置屏幕帧率

运行效果

以下是可以使用键盘加快小球移动速度和鼠标控制小球位置的代码

import pygame,sys

#鼠标移动

pygame.init()

size = width,height = 600,400 #设置窗口大小

speed = [1,1] #设置运动速度,x轴与y轴每次移动1(像素)

black = 0,0,0 #设置背景颜色为黑色

fps = 300 #设置帧率为300

flag = False

ico = pygame.image.load("1.ico")

pygame.display.set_icon(ico)

s = pygame.display.set_mode(size,pygame.RESIZABLE) #设置窗口大小和显示模式,pygame.NOFRAME:无边框,pygame.RESIZABLE:窗口大小可调,pygame.FULLSCREEN:全屏显示

pygame.display.set_caption("ball") #设置窗口标题

ball = pygame.image.load("ball.gif") #加载图片,加载成功后,pygame会将图片转换成一个Surface对象返回,修改该对象位置就相当于移动图片

ballrect = ball.get_rect() #将图片生成一个矩形

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]))

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

if event.key == pygame.K_DOWN:

speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) - 1) * int(speed[1]/abs(speed[1]))

if event.key == pygame.K_ESCAPE:

sys.exit()

elif event.type == pygame.VIDEORESIZE:

size = width, height = event.w , event.h

s = pygame.display.set_mode(size, pygame.RESIZABLE)

elif event.type == pygame.MOUSEBUTTONDOWN: #鼠标按下事件

if event.button == 1: #如果鼠标按下的是左键

flag = True

elif event.type == pygame.MOUSEBUTTONUP: #鼠标松开事件

flag == False

if event.button == 1:

ballrect = ballrect.move(event.pos[0] - ballrect.left , event.pos[1] - ballrect.top)

elif event.type == pygame.MOUSEMOTION:

if event.buttons[0] == 1:

ballrect = ballrect.move(event.pos[0] - ballrect.right, event.pos[1] - ballrect.bottom)

ballrect = ballrect.move(speed) #球的移动,ballrect.move(x,y)方法中横轴移动x像素,纵轴移动y像素

if ballrect.left < 0 or ballrect.right > width: #如果球碰到左或者右边缘,就将球横向速度取反

speed[0] = - speed[0]

if ballrect.top < 0 or ballrect.bottom > height: #如果球碰到左或者右边缘,就将球纵向速度取反

speed[1] = - speed[1]

s.fill(black) #在球移动后填充背景颜色为黑色(使用RGB色彩体系,R表示红色G表示绿色B表示蓝色)

s.blit(ball,ballrect) #通过ballrect矩形的移动来引导球的移动(blit函数:将一个图像绘制在另一个图像上)

pygame.display.update() #刷新屏幕

fclock.tick(fps) #设置屏幕帧率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值