1. 如何用Python+Pygame旋转图像、灰度图像
‘’‘
2013-7-4
by JavenLee
希望能带给你启发
'''
import Image
img = Image.open(‘origin.png’) # 得到一个图像的实例对象 img
rot_img = img.rotate(270) #顺时针旋转90度
rot_img.save("rot_img.jpg")
x_img=img.transpose(Image.FLIP_LEFT_RIGHT) #垂直翻转
y_img=img.transpose(Image.FLIP_TOP_BOTTOM) #水平翻转
new_imag=img.convert('L')
'''
模式
img.convert() 参数说明如下:
1 1位像素,黑和白,存成8位的像素
L 8位像素,黑白
P 8位像素,使用调色板映射到任何其他模式
RGB 3×8位像素,真彩
RGBA 4×8位像素,真彩+透明通道
CMYK 4×8位像素,颜色隔离
YCbCr 3×8位像素,彩色视频格式
I 32位整型像素
F 32位浮点型像素
'''
2. 为何pygame中图片无法上下移动
这个的话,你要教你的版本进行更新和升级换代变得更加的完善和完美,这样才可以,如果不行的话,那就没有办法了,反正我就总的来说没有特别大的区别,要你自己去改变的话,话仔的话,就完全可以了。
3. 我这里使用pygame想让一组图片向右移动,调用了以下函数,为什么图片仍然保持不动
在图片进行移动时,背景没有被刷新。
其实在Pygame中,图片的移动时靠高速刷新的单个图片形成的错觉。
如果在上次图片移动后没有将背景进行刷新,那么图片就会再原先已经绘制了图片的背景上再次绘制一个图片,而这时因为你每次移动的距离较近,所以会有留下轨迹的错觉。如果你的图片每次移动的距离增大,就能看出问题在哪。
建议:在每次绘制移动后的图片之前 先将背景图片重新覆盖掉,这样就不会有'残影/轨迹'存在了。
4. pygame怎么让用户自己在窗口位置输入东西
12.3.1创建Pygame窗口以及响应用户输入
《Python编程: 从入门到实践》第12章武装飞船,开始学习管理包含多个文件的项目。我们将重构很多代码,以提高代码的效率,并管理文件的内容,以确保项目组织有序。本节介绍创建Pygame窗口以及响应用户输入。
12.3开始游戏项目
现在来开始开发游戏《外星人入侵》。首先创建一个空的Pygame窗口,供后面用来绘制游戏元素,如飞船和外星人。我们还将让这个游戏响应用户输入、设置背景色以及加载飞船图像。
12.3.1创建Pygame窗口以及响应用户输入
首先,我们创建一个空的Pygame窗口。使用Pygame编写的游戏的基本结构如下:
alien_invasion.py
import sys
import pygame
def run_game():
# 初始化游戏并创建一个屏幕对象
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Alien Invasion")
# 开始游戏的主循环
while True:
# 监视键盘和鼠标事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 让最近绘制的屏幕可见
pygame.display.flip()
run_game()
首先,我们导入了模块sys和pygame。模块pygame包含开发游戏所需的功能。玩家退出时,我们将使用模块sys来退出游戏。
游戏《外星人入侵》的开头是函数run_game()。u处的代码行pygame.init()初始化背景设置,让Pygame能够正确地工作。在v处,我们调用pygame.display.set_mode()来创建一个名为screen的显示窗口,这个游戏的所有图形元素都将在其中绘制。实参(1200, 800)是一个元组,指定了游戏窗口的尺寸。通过将这些尺寸值传递给pygame.display.set_mode(),我们创建了一个宽1200像素、高800像素的游戏窗口(你可以根据自己的显示器尺寸调整这些值)。
对象screen是一个surface。在Pygame中,surface是屏幕的一部分,用于显示游戏元素。在这个游戏中,每个元素(如外星人或飞船)都是一个surface。display.set_mode()返回的surface表示整个游戏窗口。我们激活游戏的动画循环后,每经过一次循环都将自动重绘这个surface。
这个游戏由一个while循环(见w)控制,其中包含一个事件循环以及管理屏幕更新的代码。事件是用户玩游戏时执行的操作,如按键或移动鼠标。为让程序响应事件,我们编写一个事件循环,以侦听事件,并根据发生的事件执行相应的任务。x处的for循环就是一个事件循环。
为访问Pygame检测到的事件,我们使用方法pygame.event.get()。所有键盘和鼠标事件都将促使for循环运行。在这个循环中,我们将编写一系列的if语句来检测并响应特定的事件。例如,玩家单击游戏窗口的关闭按钮时,将检测到pygame.QUIT事件,而我们调用sys.exit()来退出游戏(见y)。
z处调用了pygame.display.flip(),命令Pygame让最近绘制的屏幕可见。在这里,它在每次执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元素时,pygame.display.flip()将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。
在这个基本的游戏结构中,最后一行调用run_game(),这将初始化游戏并开始主循环。
如果此时运行这些代码,你将看到一个空的Pygame窗口。
5. pygame怎么限制图片不要跑到窗口外面
对位图的绘制坐标进行判断就可以了,让他的x,y坐标不要超过屏幕范围。
比如screen.blit(image,(x,y)) 不要让x,y超过屏幕的可见范围。
6. 求解怎么用pygame随机选择图片
简单点的话 可以把图片依次命名为1-n.png
然后用random随机生成1-n的数字,接着用程序调用产生数字对应的图片就可以了。
思路就是这样的,如有疑问欢迎追问。
7. pygame怎么实现从一个文件夹里随机选取图片,并导出
简单点的话 可以把图片依次命名为1-n.png
然后用random随机生成1-n的数字,接着用程序调用产生数字对应的图片就可以了。
思路就是这样的。
8. Pygame怎么把图片移到鼠标点的位置
每次刷新获取鼠标位置<pygame.mouse.get_pos()>再根据坐标移动图片位置
9. python中pygame如何将发射攻击的图片映射上并实现不同轨迹的运动
这种图片的话可以有不同的轨迹,你可以把那个方式攻击的那图片放在这个p hut on上面。
10. python pygame 怎么画3维图像
import pygame #这句不用注释了吧,呵呵
pygame.init() #模块初始化,任何pygame程序均需要执行此句
screencaption=pygame.display.set_caption('hello world')#定义窗口的标题为'hello world'
screen=pygame.display.set_mode([640,480]) #定义窗口大小为640*480
screen.fill([255,255,255])#用白色填充窗口