在pygame,移动鼠标会执行哪个函数的下级代码

在pygame,移动鼠标会执行哪个函数的下级代码,第1张

在Pygame中,移动鼠标通常会执行pygameMOUSEMOTION事件,对应的下级代码通常会写在事件循环中的for循环中,例如:

for event in pygameeventget():

if eventtype == pygameMOUSEMOTION:

# 在这里编写鼠标移动时需要执行的代码

在这段代码中,pygameeventget()用于获取当前所有的事件,并将其放入一个列表中。然后,通过循环遍历该列表,判断每个事件的类型是否为pygameMOUSEMOTION,如果是,则执行# 在这里编写鼠标移动时需要执行的代码中的代码,即对鼠标移动做出相应的处理。

您安装的方法有误。

1、在pythonorg官网下载pygame,注意要选择对应的版本,这个不能错,我安装的是Python38,所以下载的文件是pygame-196-cp38-cp38-win_amd64whl

2、把下载后的文件拷贝到python可执行程序目录下,我的目录如下(供参考):

c:\users\Administrator\AppData\Local\Programs\Python\python38

3、点击键盘win+R输入cmd打开命令提示符,进入以上目录。

4、运行如下命令:

python -m pip install --user pygame-196-cp38-cp38-win_amd64whl

5、以上命令执行需要一点时间,耐心等待,会有安装成功的提示。

1、进入pythonorg的官网,选择上方的pypi。

2、再出现的对话框里面直接输入要下载的模块,pygame。

3、点击Download files,右边会出现pygame的众多版本,选择适合当前系统上安装的python版本下载一个即可。(比如当前系统显示这cp37对应的就是python37版本,以此对应,如果电脑是64位的,python下载的版本是372,那么此处选择的是pygame-194-cp37-cp37m-win_amd64这个文件)。

4、把这个后缀为whl的文件放到python的pip文件目录下。

5、点击键盘win+R输入cmd打开命令提示符,在这里面用python的pip命令,它是python的一个包管理工具。

6、然后在命令提示符中把目录切换到pip对应的那个目录路径。然后输入pip install 要安装的模块名称(pygame-194-cp37-cp37m-win_amd64whl)。

7、稍等一下子就会安装成功,这里可以测试下是否成功安装,在cmd中输入python进入交互模式,然后输入import pygame ,然后看见一个pygame的版本号,表示已经安装成功。

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

错误提示说Sprite没有__int__方法,应该是__init__吧,第九行,因为你是继承pygamespriteSprite,然后要初始化他的类,所以应该是__init__少了一个i吧。学会debug看错误提示

屏幕坐标系大概是这个样子的:

其中,screen 的那个矩形就是窗口了,screen 的左上角坐标是 (0 ,0)

selfrecttop = -selfrectheight

这句的意思是,将 rect 向上移动出屏幕边缘

结合上面的图,大概就是那个位置

selfrectcenterx = randrange(screen_size[0])

screen_size 是指屏幕的大小, screen_size[0] 就是屏幕的宽度啦

centerx 是指矩形中心的 X 坐标(就是宽度一半的位置)

randrange 是返回一个 0 到 参数 之间的随机数

综合起来,就是将矩形的横坐标设置成屏幕宽度范围内的随机位置

selfrecttop += 1

这句的意思是将矩形向下移动一个像素

因为在 update 函数中,所以综合意思就是,矩形以每帧1像素的速度向下移动

selfrecttop > screen_size[1]

这句的意思是,当矩形的上边缘在屏幕的下边缘之下的时候。

希望能帮到你啦~

以上就是关于在pygame,移动鼠标会执行哪个函数的下级代码全部的内容,包括:在pygame,移动鼠标会执行哪个函数的下级代码、安装pygame时出现这样是怎么回事、win10电脑,如何安装pygame等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9430875.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存