python小球弹跳_pygame教程(一)小球弹跳

本教程使用python3

1.导入pygame

import pygame

import os

如果你没有安装pygame

使用pip安装:pip3 install pygame

2.创建pygame窗体

1.我们先定义一些必要的全局变量

WINDOW_W, WINDOW_H = 640, 480 # 窗体尺寸

FPS = 50 # 帧率,即每秒刷新多少次

g = 9.8 * 100 # 重力加速度(我们用的单位是像素每二次方秒)

2.创建窗体

pygame.init() # 初始化pygame

# 设置窗口出现的位置

os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (200,100)

# 创建一个窗口

screen = pygame.display.set_mode((WINDOW_W, WINDOW_H), pygame.DOUBLEBUF, 32)

# 设置窗口标题

pygame.display.set_caption("hello,world!")

# 创建时钟对象 (可以控制游戏循环频率)

clock = pygame.time.Clock()

set_mode(resolution=(0,0), flags=0, depth=0)

resolution:窗体的宽和高

flags:附件选项的集合

选项

含义

pygame.FULLSCREEN

全屏显示

pygame.DOUBLEBUF

双缓冲模式(推荐和 HWSURFACE 或 OPENGL 一起使用)

pygame.HWSURFACE

硬件加速,只有在 FULLSCREEN 下可以使用

pygame.OPENGL

创建一个 OPENGL 渲染的显示

pygame.RESIZABLE

创建一个可调整尺寸的窗口

pygame.NOFRAME

创建一个没有边框和控制按钮的窗口

depth:使用的颜色深度

3.游戏主循环

if __name__ == '__main__':

x, y = WINDOW_W/2, 10 # 球的坐标

vx, vy = 0, 0 # 球在x,y方向上的速度

# 游戏主循环

while True:

# 遍历事件

for event in pygame.event.get():

if event.type == pygame.QUIT:

# 接收到退出事件后退出程序

exit()

# 小球下一时刻的速度、位置计算

vy += g * 1/FPS

x += vx * 1/FPS

y += vy * 1/FPS

if y >= WINDOW_H-10:

# 到达地面则是其竖直速度反向

vy = -vy

# 将背景图画上去(0,0,0)为RGB颜色

screen.fill((0, 0, 0))

# 根据球的坐标画圆

pygame.draw.circle(screen, (255, 0, 0), (int(x), int(y)), 10)

# 刷新画面

pygame.display.update()

# 设置FPS

time_passed = clock.tick(FPS)

我们使用while True 来不断循环,每次循环都做三件事:响应事件、计算下一时刻状态、重画画面。

4.最终效果

这个gif看起来很卡,实际上运行很流畅

球.gif

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值