pygame
文章平均质量分 78
使用pygame开发的项目
冰风漫天
活到老,写到老
展开
-
十六、pygame打字游戏二——预设的字母序列
将打字游戏改版为使用预设字母列表的的方式# -*- coding=utf-8 -*-import pygamefrom pygame.locals import KEYDOWNimport randomw,h = 800,600pygame.init()screen = pygame.display.set_mode((w, h))white=255,255,255black...原创 2020-02-11 14:52:41 · 750 阅读 · 1 评论 -
pygame用小图片拼文字
# -*- coding=utf-8 -*-import pygamem_w = 64*20m_1 = 64def count_rect(img, x1, x2, y1, y2): n = 0 for x in range(x1, x2): for y in range(y1, y2): # print((x,y)) s = img.get_at((x,y)) ...原创 2020-01-30 12:00:55 · 578 阅读 · 0 评论 -
pygame做界面之表格篇(一)
继续之前的控件按钮(bf_button)、文本框(bf_label)和编辑框(bf_edit)之后,继续增加新控件(bf_table),由于表格的功能比较复杂,可能要分几次编写大致实现步骤一:基本展示二:支持横、列两个方向上的滚动条三:支持列宽度的自动调整和手动调整目前一阶段的效果图用pygame做的表格控件主要有以下几个文件syht.otf 字体文件bf_common.py 控...原创 2019-12-01 23:05:29 · 2432 阅读 · 6 评论 -
pygame做界面之文本框
效果图主要代码bf_label.py# -*- coding=utf-8 -*-import threadingimport pygamefrom pygame.locals import MOUSEBUTTONDOWNfrom bf_common import BFControlId,BFBase,DEFAULT_FONT,TEXT_ALIGN_LEFT,TEXT_ALIGN_M...原创 2019-12-01 19:33:17 · 5221 阅读 · 0 评论 -
pygame做一个古诗词填空通关游戏
之前写的诗词填空的游戏支持python2,现在对程序进行了修改,兼容支持python2和python3,附下效果图。下面是两个主程序idiom_lib.py代码:# -*- coding=utf-8 -*-import sysimport randomif sys.version_info < (3,0): reload(sys) sys.setdefault...原创 2019-12-01 16:25:26 · 2472 阅读 · 2 评论 -
pygame不使用图片做一个编辑框的效果
在pygame不使用图片做一个按钮的效果https://blog.csdn.net/zhangenter/article/details/89609946之后,继续尝试做编辑框bf_common.py# -*- coding=utf-8 -*-import threadingimport pygamefrom pygame.locals import MOUSEBUTTONDOWN...原创 2019-11-28 23:24:53 · 332 阅读 · 0 评论 -
window下用pyinstaller对pygame的程序打包
打包命令pyinstaller -F -w xxx.pypywin32错误Traceback (most recent call last): File "<string>", line 2, in <module>ModuleNotFoundError: No module named 'win32com'需要安装pywin32pip install ...原创 2019-12-08 15:55:04 · 362 阅读 · 0 评论 -
十五、pygame做一个简单的打字游戏
效果图完整代码# -*- coding=utf-8 -*-import pygamefrom pygame.locals import KEYDOWNimport randomw,h = 800,600pygame.init()screen = pygame.display.set_mode((w, h))white=255,255,255black=0,0,0myfo...原创 2019-05-26 12:22:48 · 4003 阅读 · 2 评论 -
十四、pygame做一个成语填空游戏
最近看到很多人玩成语填字游戏,那么先用pygame来做一个吧,花了大半天终于完成了,附下效果图。偷了下懒程序没有拆分,所有程序写在一个文件里,主要代码如下:# -*- coding=utf-8 -*-import sysimport randomimport pygamefrom pygame.locals import *reload(sys)sys.setdefaultenc...原创 2019-05-04 00:50:10 · 2931 阅读 · 4 评论 -
十三、支持中文和多语言设置
一、支持中文显示pygame不能直接支持中文显示,如果用系统的字库,在不同的机器又可能存在字体不存在的问题,所以最好是自己放一个字母在里面,我这边下了一个思源黑体的字体使用,https://github.com/zhangenter/tetris/blob/master/syht.otf使用和绘制方法# -*- coding=utf-8 -*-import pygamefrom pyga...原创 2019-05-02 22:34:59 · 747 阅读 · 0 评论 -
十二、俄罗斯方块代码拆分
将主要代码进行拆分如下:bf_button.py 上一章中提到的不用图片自己制作的按钮控件globals.py 一些全局变量matrix.py 自己定义的矩阵类controls.py 游戏界面上的一些控件元素block_manage.py 各类方块的定义和游戏方块的管理players.py 各类玩家的定义single_tetris.py 单机版游戏的实现battle_tetris....原创 2019-05-02 15:45:32 · 452 阅读 · 0 评论 -
pygame不使用图片做一个按钮的效果
按钮类程序# -*- coding=utf-8 -*-import threadingimport pygamefrom pygame.locals import MOUSEBUTTONDOWNclass BFControlId(object): _instance_lock = threading.Lock() def __init__(self): ...原创 2019-04-28 00:36:37 · 7635 阅读 · 9 评论 -
十一、pygame做一个简单的俄罗斯方块游戏(对战篇1)
上篇更新到https://blog.csdn.net/zhangenter/article/details/89436903,原本应该继续做优化,不过考虑到完成游戏完整性,这张就先把对战做好。一、对战的方块管理定义一个BlockManage管理对战的方块class BlockManage(object): pnum=1 blocks = [] def __init__...原创 2019-04-21 23:06:33 · 796 阅读 · 0 评论 -
十、pygame做一个简单的俄罗斯方块游戏(AI篇2)
继续https://blog.csdn.net/zhangenter/article/details/89411389的代码更新一、消除后才做评价上一篇我们是对方块落下的位置和落下后出来的空洞进行了评价,但是这些评价都是没有计算消除的,以至于机器人现在不会考虑去进行那些完全不会留下空洞的消除,比如下面这种消除。但我们知道这种消除是不会产生空洞的。所以我们要在计算评价的时候最好计算消除以后...原创 2019-04-21 18:35:18 · 726 阅读 · 0 评论 -
九、pygame做一个简单的俄罗斯方块游戏(AI篇1)
上次更新到https://blog.csdn.net/zhangenter/article/details/89368120现在继续一、定义玩家类定义玩家类是为了便于进行手动和机器模式或各种不同机器人模式的混合使用,增加代码扩展性。可以先定义一个玩家基类class Player(object): auto_mode=False # 是否是自动模式,自动模式应当不响应键盘操作 ...原创 2019-04-21 13:13:44 · 925 阅读 · 0 评论 -
八、pygame做一个简单的俄罗斯方块游戏(基础篇3)
上一章写到https://blog.csdn.net/zhangenter/article/details/89304707现在继续一、给每个方块设置不同的颜色根据代码这里可以判断正在下落的方块在那些Block子类里加一个属性最合适,而已经落下的方块颜色管理最合适的地方应该是修改在Panel类里的rect_arrBlock子类里的修改比较简单,以TBlock类为例,在__init__函数加...原创 2019-04-18 12:31:48 · 1235 阅读 · 0 评论 -
七、pygame做一个简单的俄罗斯方块游戏(基础篇2)
接上章继续写俄罗斯方块游戏五、计算方块之间的碰撞在Panel类里增加函数 def check_overlap(self, diffx, diffy): for x,y in self.moving_block.get_rect_arr(): for rx,ry in self.rect_arr: if x+diffx...原创 2019-04-15 23:55:11 · 1124 阅读 · 1 评论 -
六、pygame做一个简单的俄罗斯方块游戏(基础篇1)
一、初始界面之前的游戏都比较简单,所以代码都是面向过程的写法,这次游戏后面可能会写比较复杂(比如人机对战、联机对战、使用道具对战等),这次面向对象一点来写这个项目。游戏的窗口设计一个专门的Panel类便于负责单个游戏窗口的管理控制。游戏主窗口按每个方块30像素,那么宽30*10=300,高是30# -*- coding=utf-8 -*-import randomimport pyga...原创 2019-04-14 21:57:53 · 3732 阅读 · 1 评论 -
五、pygame做一个简单的五子棋游戏
1.设置棋盘五子棋标准棋盘是1515的,如果我们每个格子的大小是4040的画,棋盘应该是40*(15-1)=560的宽度,我们在四面各保留60的边距,那么窗口的长宽是40*(15-1)+60*2# -*- coding=utf-8 -*-import randomimport pygamepygame.init()space = 60 # 四周留下的边距cell_size = 40...原创 2019-04-08 00:28:22 · 12163 阅读 · 4 评论 -
四、pygame做一个简单的贪吃蛇游戏(下)
1.豆子的吃掉效果只需在代码最后移动蛇头的代码后增加一个蛇头和豆子坐标的判断即可 if snake_x == bean_x and snake_y == bean_y: bean_x,bean_y = get_bean_pos()体验一下,现在蛇头碰到豆子后,豆子已经会消失了2.蛇身的加长前面我们给蛇身只设置了一个坐标,既然蛇身会越加越长,当然我们...原创 2019-04-05 20:18:08 · 3296 阅读 · 0 评论 -
三、pygame做一个简单的贪吃蛇游戏(上)
1.准备工作我们已经初始化了一个400*400的界面,为方便看我们的游戏,我们先在界面上画40*40的格子,即纵向切10份,横向切10份,这样我们就需要画20个线段,下面是20个线段的画法 for x in range(0,400,40): pygame.draw.line(screen,(255,255,255),(x,0),(x,400),1) for y i...原创 2019-04-05 18:00:33 · 3705 阅读 · 2 评论 -
二、pygame基本图形绘制
1.绘制文字下面定义了一个白色,字体大小为60,在x=200,y=200处开始绘制的文字myfont = pygame.font.Font(None,60)white = 255,255,255textImage = myfont.render("here", True, white)screen.blit(textImage, (200,200))加入上一章的程序后完整程序如下#...原创 2019-04-05 12:16:36 · 1374 阅读 · 4 评论 -
一、pygame入门
1.安装Pygame模块pipinstall pygame2.基本的程序结构# -*- coding=utf-8 -*-import pygamepygame.init()#这里时游戏代码pygame.quit()3.设置400*400的窗口大小# -*- coding=utf-8 -*-import pygamepygame.init()scr...原创 2019-04-05 11:56:58 · 2724 阅读 · 3 评论