Pygame从0实战1

1.Pygame从0实战1

关于安装的话可能大家到pygame官方网站安装不到与自己Python版本对应的pygame模块,所以这里推荐大家在这里安装

点击打开链接http://mp.blog.csdn.net/postedit

下面是第一个实战案例

# -*- coding: utf-8 -*-install
# @Author: Clarenceinstall
# @Date:   2018-03-04 09:30:44
# @Last Modified by:   Clarence
# @Last Modified time: 2018-03-04 11:24:35
"""
Pygame模块可以在https://www.lfd.uci.edu/~gohlke/pythonlibs/下载 unofficial windows binaries for Python Extension Packages
python必须是32位的,并且和Pygame的版本对应
绘制图形 显示图片 动画效果 与键盘鼠标、游戏手柄交互 播放声音 碰撞检测 
"""
import pygame
import sys
# print(pygame.ver) #1.9.3

# 初始化Pygame
pygame.init()

size = width, height = 1024, 640
speed = [-7, 5]
bg = (255, 255, 255)

# 创建指定大小的窗口 Surface
screen = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption("初次见面,请大家多多关照!")

# 加载图片
background = pygame.image.load("back.jpg")
turtle = pygame.image.load("turtle.png")
# 获得图像的位置矩形
position = turtle.get_rect()
print(background.get_size())


while True:
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			sys.exit()

	# 移动图像
	position = position.move(speed)

	if position.left < 0 or position.right > width:
		# 翻转图像
		turtle = pygame.transform.flip(turtle, True, False)# 传入Surface对象 设置是否水平翻转 设置是否垂直翻转
		# 反方向移动
		speed[0] = -speed[0]

	if position.top < 0 or position.bottom > height:
		speed[1] = -speed[1] 


	# 填充背景
	screen.fill(bg)
	# 更新图像
	screen.blit(background, (0, 0))
	screen.blit(turtle, position)
	# 更新界面 双缓冲机制 刷新画面
	pygame.display.flip()
	# 延迟10毫秒
	pygame.time.delay(10)
2.双缓冲机制

    双缓冲甚至是多缓冲,在许多情况下都很有用。一般需要使用双缓冲区的地方

都是由于"生产者"和"消费者"供需不一致所造成的。

    在图形图像显示过程中,计算机从显示缓冲区取数据然后显示,很多图形的操作都

很复杂需要大量的计算,很难访问一次显示缓冲区就能写入待显示的完整图形数据,

通常需要多次访问显示缓冲区,每次访问时写入最新计算的图形数据。而这样造成的后果

是一个需要复杂计算的图形,你看到的效果可能是一部分一部分地显示出来,造成很大的闪烁

不连贯。而使用双缓冲,可以使你先将计算的中间结果存放在另一个缓冲区中,但全部的计算

结束,该缓冲区已经存储了完整的图形之后,再将该缓冲区的图形数据一次性复制到显示缓冲区。

双缓冲技术的基本思路是:

    * 在内存中新建一个临时缓冲区

    * 新建一个位图对象作为画布并绑定临时缓存区,绘图在该缓存区中(由于是非常规整

的内存拷贝,因此速度非常快),因为内存中的图形与屏幕显示图形差别很小,这样看起来就不会闪烁。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youaresherlock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值