什么是pygame怎样安装使用

什么是pygame怎样安装使用,第1张

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窗口。

主要看看向右移动的地方的代码有没有问题:

        # 设置向右移动flag

        selfmove_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问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9649822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存