pygame是为开发2D游戏而设计的Python跨平台模块,开发人员利用pygame模块中定义的接口,可以方便快捷地实现诸如图形用户界面创建、图形和图像的绘制、用户键盘和鼠标 *** 作的监听以及播放音频等游戏中常用的功能。
pygame是第三方模块,若要成功运行导入了pygame模块的程序,必须先在开发环境中安装pygame。打开命令行窗口,使用pip工具向系统中安装pygame模块,具体命令如下:
当命令行窗口中出现如下字样时,说明pygame模块安装成功。
利用pygame模块开发游戏时,pygame一般负责游戏图形界面的绘制和框架的搭建。后续我们会介绍pygame的基本用法。
你把缩进改一下,我不知道 pygamedisplayset_caption("Alien Invasion") 是不是属于run_game()的。如果是的话,取消缩进。还有,如果pygameinit()也属于run_game()的话,也取消缩进。最后,把def run_game(): 改成def run_game(): pass。
- - 太寒了……居然补充是问题已解决
图形文件和声音不需要被编译到一起,只要和编译好的EXE放到一起就好了。所以基本上按照test_wx那个例子编译就好了,HOHO
比如python写的BT啊、FTP啊都是这样的。
pygameorg有教程……
好吧:
py2exe之 指定额外的文件!
一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。
如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。
示例如下:
# mysetuppy
from distutilscore import setup
import glob
import py2exe
setup(console=["myscriptpy"],
data_files=[("bitmaps",
["bm/largegif", "bm/smallgif"]),
("fonts",
globglob("fonts\\fnt"))],
)
说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个gif文件;一个子目录dist\fonts,其中包含了所有的fnt文件。
1mousewheel鼠标滚轮事件
获取当前滚轮的值
如果 值 小于 0 滚轮 往下滑
如果 值 大于0 滚轮 往上滑
1 onclick 单击事件
2ondblclick 双击事件
当给 同一个格子 同时绑定双击和点击事件时
会触发 双击事件 必定会触发两次单击事件
ondblclick = function (){
3oncontextmenu 鼠标右键
鼠标右键 是一个有默认功能的事件 它可以打开右键菜单
4鼠标释放事件 onmouseup
鼠标按下不会触发 松开的时候 才会触发
5鼠标按下事件 onmousedown
1鼠标移入事件 一共有两种
第一种就是obmouseover 和 onmouseout
(1)鼠标移入 onmouseover
(2)鼠标移出 onmouseout
给父级绑定了事件 子级没有绑定事件
但是 当鼠标移入子级的时候 会触发 父级的事件
这种情况叫做事件冒泡
第二种 鼠标移出事件 onmouseenter 和 onmouseleave
1鼠标移入 onmouseenter
2鼠标移出 onmouseleave
鼠标移入移出 有两种写法
共同点: 就是鼠标移入移出的方法、、
不同的:
第一种 onmouseover 和 onmouseout 会触发事件冒泡
第二种 onmouseenter 和 onmouseleave 不会触发事件冒泡
3鼠标移动事件 onmousemove
boxonmousemove = function (){
consoloelog('鼠标移动事件')
}
鼠标的坐标 在 鼠标事件的 事件对象中保存
所以我们要获取 鼠标坐标 一般都是通过事件对象 event 获取
所有的鼠标事件 都可以 通过 事件对象来获取 鼠标坐标
但是 通常 我们都是在 鼠标移动事件中获取 和 使用 鼠标坐标
1231 创建Pygame窗口以及响应用户输入
《Python编程: 从入门到实践》第12章武装飞船,开始学习管理包含多个文件的项目。我们将重构很多代码,以提高代码的效率,并管理文件的内容,以确保项目组织有序。本节介绍创建Pygame窗口以及响应用户输入。
123 开始游戏项目
现在来开始开发游戏《外星人入侵》。首先创建一个空的Pygame窗口,供后面用来绘制游戏元素,如飞船和外星人。我们还将让这个游戏响应用户输入、设置背景色以及加载飞船图像。
1231 创建Pygame窗口以及响应用户输入
首先,我们创建一个空的Pygame窗口。使用Pygame编写的游戏的基本结构如下:
alien_invasionpy
import sys
import pygame
def run_game():
# 初始化游戏并创建一个屏幕对象
pygameinit()
screen = pygamedisplayset_mode((1200, 800))
pygamedisplayset_caption("Alien Invasion")
# 开始游戏的主循环
while True:
# 监视键盘和鼠标事件
for event in pygameeventget():
if eventtype == pygameQUIT:
sysexit()
# 让最近绘制的屏幕可见
pygamedisplayflip()
run_game()
首先,我们导入了模块sys和pygame。模块pygame包含开发游戏所需的功能。玩家退出时,我们将使用模块sys来退出游戏。
游戏《外星人入侵》的开头是函数run_game()。u处的代码行pygameinit()初始化背景设置,让Pygame能够正确地工作。在v处,我们调用pygamedisplayset_mode()来创建一个名为screen的显示窗口,这个游戏的所有图形元素都将在其中绘制。实参(1200, 800)是一个元组,指定了游戏窗口的尺寸。通过将这些尺寸值传递给pygamedisplayset_mode(),我们创建了一个宽1200像素、高800像素的游戏窗口(你可以根据自己的显示器尺寸调整这些值)。
对象screen是一个surface。在Pygame中,surface是屏幕的一部分,用于显示游戏元素。在这个游戏中,每个元素(如外星人或飞船)都是一个surface。displayset_mode()返回的surface表示整个游戏窗口。我们激活游戏的动画循环后,每经过一次循环都将自动重绘这个surface。
这个游戏由一个while循环(见w)控制,其中包含一个事件循环以及管理屏幕更新的代码。事件是用户玩游戏时执行的 *** 作,如按键或移动鼠标。为让程序响应事件,我们编写一个事件循环,以侦听事件,并根据发生的事件执行相应的任务。x处的for循环就是一个事件循环。
为访问Pygame检测到的事件,我们使用方法pygameeventget()。所有键盘和鼠标事件都将促使for循环运行。在这个循环中,我们将编写一系列的if语句来检测并响应特定的事件。例如,玩家单击游戏窗口的关闭按钮时,将检测到pygameQUIT事件,而我们调用sysexit()来退出游戏(见y)。
z处调用了pygamedisplayflip(),命令Pygame让最近绘制的屏幕可见。在这里,它在每次执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元素时,pygamedisplayflip()将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。
在这个基本的游戏结构中,最后一行调用run_game(),这将初始化游戏并开始主循环。
如果此时运行这些代码,你将看到一个空的Pygame窗口。
主要看看向右移动的地方的代码有没有问题:
# 设置向右移动flagselfmove_right = False
def listening_key_down(self, event):
"""
监听key_down事件
:param event:
"""
if eventkey == pygameK_RIGHT:
selfair_shipmove_right = True
elif eventkey == pygameK_LEFT:
selfair_shipmove_left = True
def listening_key_up(self, event):
"""
监听key_up事件
:param event:
"""
if eventkey == pygameK_RIGHT:
selfair_shipmove_right = False
elif eventkey == pygameK_LEFT:
selfair_shipmove_left = False
def move(self):
"""
更新飞船横轴位置,实现左右移动
"""
if selfmove_right and selfair_ship_rectright <= selfscreen_rectright:
selfcenter += selfspeed_factor if selfmove_left and selfair_ship_rectleft >= selfscreen_rectleft:
selfcenter -= selfspeed_factor
selfair_ship_rectcenterx = selfcenter
def listening_game_event(self):
"""
监听事件
"""
for event in pygameeventget(): if eventtype == pygameQUIT:
pygamequit()
sysexit() elif eventtype == pygameKEYDOWN:
selflistening_key_down(event) elif eventtype == pygameKEYUP:
selflistening_key_up(event)
# 游戏主循环
while True: selflistening_game_event() selfair_shipmove() selfupdate_game_screen()
以上就是关于什么是pygame怎样安装使用全部的内容,包括:什么是pygame怎样安装使用、python SyntaxError: invalid syntax、python pygame问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)