pygame

How to rotate an image around its center while its scale is getting larger(in Pygame)

只谈情不闲聊 提交于 2020-02-24 17:52:53
问题 I loaded an image and I want it to rotate around its center, while its scale is getting larger. I know how to rotate an image around its center originally, but it's hard for me to calculate the position if the scale is getting larger. I tried it, but the image just 'dances', not staying in the center. 回答1: Short answer: Store the center of the source image rectangle and update the center of the rotated and zoomed image rectangle after the rotation and zoom operation, by the stored center

pycharm安装pygame失败

让人想犯罪 __ 提交于 2020-02-21 23:37:23
Collecting pygame Using cached https://files.pythonhosted.org/packages/0f/9c/78626be04e193c0624842090fe5555b3805c050dfaa81c8094d6441db2be/pygame-1.9.6.tar.gz Complete output from command python setup.py egg_info: WARNING, No "Setup" File Exists, Running "buildconfig/config.py" Using WINDOWS configuration... Download prebuilts to "prebuilt_downloads" and copy to "./prebuilt-x64"? [Y/n]Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\shuai\AppData\Local\Temp\pycharm-packaging\pygame\setup.py", line 194, in <module> buildconfig.config.main(AUTO_CONFIG) File

Setting a fixed FPS in Pygame, Python 3

空扰寡人 提交于 2020-02-21 12:51:17
问题 I'm currently making a game using PyGame (Python 3), and I'm looking for a way to make the game run at a fixed FPS. Most of the game is located inside a giant while loop, where the user input is taken, sprites are rendered, etc. every tick. My goal is to be able to set a fixed FPS that will make the game run at the same speed on a fast or slow computer. I can, of course, use the clock module in pygame: clock = pygame.time.Clock() and then call this every loop: clock.tick(30) but that will

Python 的一个小项目 —— 飞机大战

夙愿已清 提交于 2020-02-20 10:38:54
一.安装pygame 1. 更新pip 之前装了 python 3.x 的任一个版本之后,会自己下载pip,用的时候更新以下,就可以了,打开cmd(快捷键:win + r),输入以下指令 python -m pip install -U pip 2.通过pip安装工具直接安装pygame 继续在cmd命令行输入 python -m pip install pygame 3. 检查是否安装成功 重新打开 cmd,先输入 python ,注意一定要先输入 python ,然后输入 import pygame 输出结果没有报错,并且输出 pygame 的版本号即为正确,还有一串英语,感觉就是个欢迎的语句 以上是在python的命令行打开的结果,使用pycharm编辑代码,在使用pygame碰到pygame不能正常使用的办法如下 file -> setting -> project(这里是你的项目名称) -> project interpreter 然后设置就好 二. pygame 入门 使用 pygame 创建图形窗口 游戏的初始化和退出 理解游戏中的坐标系 创建游戏主窗口 简单的游戏循环 简单游戏的初始化和退出 方法 说明 pygame.init() 导入并初始化所有 pygame 模块,使用其他模块之前,必须先调用 init 方法 游戏代码 游戏运行的代码 pygame.quit()

用Python和Pygame做小游戏1

╄→гoц情女王★ 提交于 2020-02-18 17:35:13
​掌握一门语言最好的办法就是写个小游戏,这样又有趣味性,又可以学到很多这门语言的知识。因为游戏对性能要求比较高,你就必须找出各种方式去优化。基本上一个复杂点的游戏写完后, 就基本算掌握了这门语言 pygame是python上最出名的游戏引擎,安装好后我们写个简单的窗口测试下 运行后就出来个黑乎乎的窗口,说明安装正确。程序很简单,初始化pygame后,创建个screen, 就是窗口的。然后就进入主循环。这里我们只是简单的调用pygame退出事件去退出循环。而实际游戏里,一般还要创建个游戏菜单,在“退出游戏”里调用退出循环。 做为一个游戏,肯定是需要加载大量图片的,pygame自带了图片加载功能 ,然后用screen的blit方法把图片放在一个位置。50,50就是屏幕横轴和纵轴坐标,还记着初中数学讲过的XY轴吗?就是这个概念 因为图片过大没有全部显示,可以看到图片的左上角显示在(50,50)的位置。我们需要把图片缩小一下。因为玩家的屏幕大小和分辨率不一样,所以我们最好是编程实现图片的缩放,而不是直接用ps改变图片的大小。 游戏是交互性的,所以我们要捕捉用户的输入,然后给予反馈。这里我们要实现图片的向右滑动。老玩家都是会用方向键的,在按下方向键后,就需要更新屏幕,然后把图片更新放在新的坐标,也就是把增加x轴的坐标值。这就是游戏的核心编程思路了,玩家的输入都是要转换成数学公式后更新屏幕。

Python Pygame (3) 界面显示

妖精的绣舞 提交于 2020-02-18 03:48:30
显示模式: 之前使display模块的set_mode()的方法用来指定界面的大小,并返回一个Surface对象。 set_mode()的原型如下: display.set_mode(resolution=(0, 0),flags=0,depth=0) 第一个参数resolution用来指定界面的大小。 第二个参数flags用来指定扩展选项。同时指定多个选项可以使用管道操作符(|)来隔开。 这里给出flags可以使用的选项及其含义。 第三个参数depth用来指定颜色位数。 例1:设置游戏的全屏显示 想要全屏,只需要将第二个参数设置成FULLSCREEN即可。这里设置F11作为游戏的全屏按键。 # 全屏(F11) if event.key == K_F11: fullscreen = not fullscreen if fullscreen: screen = pygame.display.set_mode((1024, 768), FULLSCREEN | HWSURFACE)#开启全屏模式和硬件加速 width, height = 1024, 768 else: screen = pygame.display.set_mode(size) 例2:设置游戏窗口尺寸可变 想要玩家可以自己来调整游戏窗口的大小,需要将第二个参数设置成RESIZABLE,之后一旦玩家调整游戏窗口

Pygame常用方法

こ雲淡風輕ζ 提交于 2020-02-18 03:48:16
import pygame # 初始化pygame库,让计算机硬件准备 pygame.init() # ----------窗口相关操作----------- # 创建窗口 window = pygame.display.set_mode([窗口宽,窗口高]) # 设置窗口标题 pygame.display.set_caption("窗口标题") # 加载资源图片,返回图片对象 image = pygame.image.load("res/game.ico") # 设置窗口图标 pygame.display.set_icon(image) # 指定坐标,将图片绘制到窗口 window.blit(image, (0, 0)) # ----------图像相关操作----------- # 加载图片文件,返回图片对象 image = pygame.image.load("图片路径") # 获得图片矩形对象 -> Rect(x, y, width, height) # 默认情况下左上角的坐标是 (0, 0) rect = image.get_rect(centerx=x, centery=y) # 在原位置基础上,移动指定的偏移量 (x, y 增加) rect.move_ip(num1, num2) # 判断两个矩形是否相交,相交返回True,否则返回False flag =

Pygame初体验

强颜欢笑 提交于 2020-02-18 03:48:00
Pygame是跨平台的Python模块,专为电子游戏设计。 包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低阶语言,如C语言或是更低阶的组合语言束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化位游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。   上面是一段摘自 维基百科 的关于Pygame的简介。既然是一个用来写游戏的模块,不妨先来了解一下计算机游戏的结构。首先想象一下视频,是通过把一帧一帧的静态图片快速连续的播放来实现“动画”的效果。其实游戏也类似,不断地把图像、文字、状态等按照一定的次序绘制到屏幕上,就可以看到运动的游戏画面。   因此,一个游戏一般要完成这 两个主要任务 : 第一、游戏要在开始运行的时候载入需要显示的图像文件以及其他数据。 这一步的目的是由于程序要直接从硬盘上读取数据的话是想当缓慢的。相比硬盘,从内存读取数据就要快得多的多。所以在游戏开始的时候,我们就把所有的图片、数据等等载入到内存中,使得游戏能够直接调用内存里的数据。 第二、游戏要运行一个“主循环”。 顾名思义,主循环肯定是一个重要的循环体。游戏在这个循环体里面要做的就是根据玩家的输入信息和游戏的规则改变图像,并且改变游戏的数据。例如,在一次循环里,游戏检测到了玩家的输入是按下了方向键上键,那么根据规则,主角会往前走一步

Pygame模块一

為{幸葍}努か 提交于 2020-02-18 03:47:40
pygame.draw: Pygame 中绘制图形的模块。 函数内容: pygame.draw.rect() — 绘制矩形 pygame.draw.polygon() — 绘制多边形 pygame.draw.circle() — 根据圆心和半径绘制圆形 pygame.draw.ellipse() — 根据限定矩形绘制一个椭圆形 pygame.draw.arc() — 绘制弧线 pygame.draw.line() — 绘制线段 pygame.draw.lines() — 绘制多条连续的线段 pygame.draw.aaline() — 绘制抗锯齿的线段 pygame.draw.aalines() — 绘制多条抗锯齿连续的线段 pygame.key:与键盘相关的 Pygame 模块。 函数内容 pygame.key.get_focused() — 当窗口获得键盘的输入焦点时返回 True pygame.key.get_pressed() — 获取键盘上所有按键的状态 pygame.key.get_mods() — 检测是否有组合键被按下 pygame.key.set_mods() — 临时设置某些组合键为被按下状态 pygame.key.set_repeat() — 控制重复响应持续按下按键的时间 pygame.key.get_repeat() — 获取重复响应按键的参数

pygame最小开发框架(嵩天老师视频笔记)

£可爱£侵袭症+ 提交于 2020-02-16 23:44:11
pygame最小开发框架 开发框架四个基本步骤 1. 引入pygame和sys sys是python的标准库,提供python运行时环境变量的操控 sys.exit()用于退出游戏 2. 初始化init()及设置 pygam.init()能够对pygame内部各功能模块进行初始化 初始化显示窗口 :pygame.display.set_mode(size) , 参数size是一个元组分别表示窗口的长度和宽度。 初始化窗体的标题:pygame.display.set.caption() 4. 获取事件并逐类响应 pygame中的所有事件:键盘敲击,鼠标移动都形成一个队列。 可以使用pygame.event.get() 从pygame的事件队列中取出事件并从队列中删除事件 pygame.QUIT是python中定义的退出事件常量 通过event.type == pygame.QUIT 判断是否推出 5. 刷新屏幕 函数pygame.display.update()刷新屏幕 代码演示 import pygame , sys pygame . init ( ) screen = pygame . display . set_mode ( ( 600 , 400 ) ) pygame . display . set_caption ( "pygame游戏之旅" ) while True :