自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (13)
  • 问答 (1)
  • 收藏
  • 关注

原创 如何理解python的“变量无类型,数据(对象)有类型“

计算机为了处理数据,就必须保存这些数据。程序设计的说法是用变量保存数据,其格式为:变量名=数值,例如:a=2。习惯上说:定义一个变量a赋值为2,更简单些,令变量a等于2,或a等于2。那么在python中,语句a=2执行了那些操作将数据2保存,并令变量a代表数据2呢?为解释这一点,必须简单介绍些硬件知识。在买手机时,最关心的指标之一是运行内存(RAM,简称内存)大小,内存越大,手机运行速度越快。当手机运行一个应用程序,例如微信,应用程序和应用程序所用的数据都将保存到内存中,换句话讲,应用程序只能在内存中运行

2021-12-06 11:11:09 2860

原创 用语言python和C#实现动态多态性,前者简单易懂,后者复杂难理解

编程语言中动态多态性,一般是指调用一个名字相同,形参的类型及个数完全相同的方法,在程序运行时根据实参的不同,完成不同的操作。用语言python和C#实现了动态多态性。用python实现简单易懂语句少应用广泛,而用C#实现,要明白众多难理解概念,实现也复杂。

2021-11-29 20:32:22 1014

原创 超人游戏_将障碍画在背景中用pygame.mask.from_threshold实现超人和不同颜色障碍精准碰撞检测

用pygame模仿网上游戏“超人训练”。将不同颜色障碍画在图形中,将该图形作为游戏的障碍背景。用pygame.mask.from_threshold()方法创建mask,根据颜色来侦测游戏障碍背景中不同颜色障碍。并介绍实现大障碍背景的方法。

2021-09-20 06:04:39 1017

原创 用pygame实现网上游戏‘球球情侣‘(用pygame.mask完成碰撞检测)

网上有个'球球情侣'游戏,两球沿所画曲线向下移动,两球碰到一起胜利。用pygame完成游戏,实现了在窗体上画多条曲线,用pygame.mask完成碰撞检测,使两球沿所画曲线向下移动。

2021-09-13 19:45:04 899 1

原创 pygame障碍游戏将障碍直接画在背景中,实现用mask侦测背景中障碍和用颜色区分不同障碍的方法

大型障碍游戏有很多关,障碍很多,将所有障碍设计为角色显然不是好办法。可将障碍直接画在背景中,用pygame.mask侦测角色和背景中障碍的碰撞,不同障碍用来颜色来区分。这样每关只需修改背景图形,所编写程序基本无需修改,极大减少了工作量。

2021-09-06 03:35:45 1169

原创 函数pygame.mask.from_threshold()用阈值确定mask碰撞点原理及使用方法

pygame.mask.from_threshold使用阈值,而不是使用是否透明在mask中确定那些像素点参加碰撞。该函数选择不同参数,可创建2种不同mask。1种mask可侦测1个角色和指定颜色碰撞。另一种是用一个Surfaces决定另一个Surfaces的mask中那些像素点参加碰撞检测。

2021-08-30 09:41:53 628

原创 pygame.mask原理及使用pygame.mask实现精准碰撞检测

首先演示了矩形碰撞的缺点,然后介绍圆形碰撞用法及局限,最后介绍了pygame.mask原理和使用,包括两个角色之间、单个角色和角色列表之间以及两个角色列表之间使用pygame.mask完成精准碰撞检测方法。所有要点都用程序进行说明。

2021-08-23 09:37:29 5086 2

原创 用pygame实现网上游戏‘球球情侣‘(检测矩形和某颜色碰撞的例子)

网上有个'球球情侣'游戏,两球沿所画曲线向下移动,两球碰到一起胜利。用pygame完成游戏,实现了在窗体上画多条曲线,用检测球和颜色碰撞方法使两球沿所画曲线向下移动。

2021-08-16 05:58:22 529

原创 pygame游戏检测矩形是否碰撞指定颜色的自定义函数(仅5行代码)

游戏中经常要检测角色之间的碰撞。pygame提供了各种图形之间碰撞检测,似乎并没有一个检测矩形与某颜色碰撞的函数。本文用pygame自定义一个函数,完成矩形与某颜色碰撞的检测。

2021-08-10 09:21:29 1859 2

原创 用Python编写录屏程序将播放的视频用截屏方法转换为多帧图像编辑后保存为GIF格式动图文件

有时编写游戏后发博文,为使读者有一个直观的游戏效果,会把游戏运行动画转换GIF格式动图发到博文中。本文介绍如何用python PIL库ImageGrab.grab()截屏函数,编写录屏程序,将视频转换为GIF格式动图文件。

2021-08-02 11:53:33 597

原创 仿Win10截屏程序:用83条python语句编写可截全屏和拖动鼠标在屏幕画矩形选定区域后截屏的实用程序

本文仿Win10截屏程序,可截全屏和选定区域截屏。如选区域截屏,先使整个屏幕似被雾遮住,但图像文字可见,用鼠标拖动画矩形为截屏区域,矩形内雾被除,鼠标抬起,所选截图显示到主窗体,雾消失。可将图像保存。

2021-07-26 12:13:40 1084 2

原创 pygame游戏_小蝌蚪吃蚊子幼虫成长

本pygame游戏用大背景、向量方法使小蝌蚪头部面向鼠标跟随鼠标移到大背景任何位置,用精灵Sprite类,使蚊虫动画、数据更新和处理碰撞极大简化。通过本例可进一步学习这些概念。

2021-07-19 21:04:54 431 4

原创 pygame游戏使用不分割大图像做背景的方法

一些2维游戏角色不动,背景连续移动,例如赛车游戏。传统方法是把做背景的道路图像分割为2部分,循环使用每部分达到背景连续移动目的。这里介绍方法,利用blit方法第3个参数,不分割背景,使用完整背景实现背景连续移动。

2021-07-12 06:47:32 711 1

原创 编写python程序用来测试执行一次ImageGrab.grab方法需要多少时间

编python程序,在循环语句中连续调用ImageGrab.grab方法截屏,1秒后停止循环程序,循环次数就是每秒调用ImageGrab.grab方法截屏次数。

2021-07-06 16:24:40 1005

原创 向量学习3:蝌蚪随鼠标移动且蝌蚪头部总是指向鼠标

游戏设计中游戏角色随鼠标移动,其头部一般要求指向鼠标。这里给出用向量解决的方法,方法简单明了实用。

2021-07-05 09:42:02 232 2

原创 向量学习2:图形围绕自己中心旋转、围绕图形外或内任意点为中心旋转

pygame游戏中,图形可能围绕图形自己中心旋转;也可能象地球围绕太阳那样,图形围绕远处某点旋转;也可能象坦克炮那样旋转,线形图形以线端点为中心旋转。用例子说明实现方法。

2021-06-28 10:41:19 1955

原创 向量使用1:pygame编写篮球游戏-火柴人运球避开防守跳起投篮(向量法处理防守者逼近投篮者前进数据)

游戏中投篮者想靠近篮板投篮,防守者逼近防守,向投篮者方向移动若干距离。原计算前进距离的代码逻辑关系较复杂,精度差。改为向量法,可简化编程,提高精度。向量法是这类问题常用的方法。

2021-06-21 10:46:08 315

原创 pygame编写篮球游戏-火柴人运球避开防守跳起投篮

使用pygame编写篮球游戏。游戏中有一个投篮手,一个防守者。投篮手运球避开防守跳起投篮,投中得一分。投篮手离篮筐越近,投篮准确率越高,但离篮筐越近,越可能碰到防守者,如碰到,游戏结束。

2021-06-14 15:40:30 11546 3

原创 篮球游戏中的运球_用列表保存每帧图片

首先说明在何种情况下要用列表保存每帧图片。用3个例子说明实现方法,例1是运球折返跑、例2是运球随鼠标移动、例3在2例基础上增加篮球场背景,控制运动员只能在球场内运动,并用类封装运球所有数据和方法。

2021-06-08 21:04:13 281 3

原创 pygame.surface.blit()方法4个参数的使用方法

用两个程序实例详细介绍了pygame.surface.blit(source,dest,area= None, special_flags=0)方法4个参数的使用方法。

2021-06-02 18:48:56 12662 3

原创 数字华容道-将显示数字、单击数字事件绑定及事件处理函数封装在python类中以简化编程

创建新类能显示数字华容道中数字并能操作数字,新类用canvas的text实例显示数字,绑定的单击数字事件处理函数是类实例方法,使其能直接访问类中数据,完成对被点击数字的移动和输赢判断。避免用复杂方法将被点击数字信息传递给单击数字事件处理函数,从而简化编程。

2021-05-24 21:05:57 275 3

原创 派生类中事件绑定的事件处理函数是类实例方法使其能访问父类和派生类所有数据

如Button类要响应鼠标右击事件,希望其事件处理函数能处理Button类所有数据,可从Button类派生新类,在新类中绑定的鼠标右击事件处理函数是新类的实例方法,通过这个实例方法访问Button类实例所有属性。

2021-05-20 17:18:14 88

原创 用Python shelve将canvas图形图像保存为文件及从文件读出图形图像重新显示的方法

python可将canvas图形图像保存为postscript文件,但没有读该类型文件方法。本文用shelve将canvas图形图像数保存为能读写的文件。使在保存未完成设计后,再次取出数据继续工作成为可能。这对于设计图形图像要经常移动的类似EDA程序,是十分必要的。

2021-05-11 15:56:37 549

原创 用python实现win10画图程序画选择框、复制、剪切、粘贴及拖动选择框内图形或粘贴后图形到指定位置

python PIL 用函数crop和paste支持位图剪贴功能,能实现复制、剪切和粘贴等基本功能,剪贴功能还应包括用鼠标拖动画选择框,用鼠标拖动选择框内图形和粘贴后图形到指定位置。本文介绍所有这些功能的实现方法。

2021-05-04 15:24:31 1711

原创 win10画图程序拖动鼠标画图形功能用python实现的思路

win10画图程序拖动鼠标画各种图形是其最重要的功能,该功能也可用python实现。不建议用鼠标拖动位图中图形来实现,这将使程序变得复杂。较好方法是在canvas上先创建图形类实例,拖动这个类实例到指定位置后,再把这个图形保存到位图中,这样做可极大简化程序。

2021-04-29 16:11:55 699

原创 用find_overlapping()替换find_closest()解决博文“Python实现用鼠标拖动Canvas上的图形使其移动”的程序问题

博文“Python实现用鼠标拖动Canvas上的图形或图像使其移动”程序有一个问题,鼠标点击图形外的邻近点,也能移动这个图形。用Canvas的find_overlapping方法替换find_closest方法,能解决该问题。

2021-04-26 21:09:35 515

原创 用python tkinter canvas显示PIL Image类图形图像

Python PIL可以做很多和图像处理相关的工作。用canvas显示PIL Image类图形图像,可将应用程序中图形图像的显示和处理两部分集合在同一程序中。使用该方法,不但可以在屏幕显示单张图片,可以创建多个Canvas同屏显示多张图片,也可分页,每页显示一张图片。

2021-04-21 20:27:51 1910

原创 Python tkinter canvas方法的Bitmap、stipple参数和组件Bitmap属性的使用以及xbm文件

Python能显示图像的组件有属性bitmap,tkinter Canvas多个方法有参数bitmap和stipple。这些bitmap和stipple不能赋值位图类实例,也不能赋值bmp格式文件名,仅能赋值xbm格式文件名。本文介绍如何将xbm文件名赋值给方法的Bitmap或stipple参数或组件Bitmap属性来显示位图图形,并介绍xbm文件用途及创建方法。

2021-04-20 19:31:38 1545 2

原创 用方法create_bitmap在Canvas上生成xbm文件图像创建win10风格工具栏

win10程序工具栏由多个平面图形组成。用Python也可实现该风格工具栏,可创建多个Canvas实例,一个作为工具栏容器,用create_bitmap方法在这个Canvas上生成自制xbm文件定义的图像,单击图形完成指定工作。

2021-04-14 20:23:40 498

原创 Python实现用鼠标拖动Canvas上的图形或图像使其移动(有问题参见后边文章)

Canvas上可能有许多图形或图像,要用鼠标拖动图形或图像使其移动,首先要判断鼠标是否点击到图像或图形上,如点击到图像或图形上,要找到其ID,然后用Canvas方法move拖动指定ID的图形或图像到新位置。

2021-04-13 19:45:15 3876

原创 用Python实现win10画图程序拖动鼠标画各种形状多边形功能

如一个多边形放到矩形中,矩形左上角和右下角坐标为(x0,y0),(x1,y1),则多边形顶点坐标(x,y)=(x0+m*(x1-x0),y0+m*(y1-y0)),0<m和n<1。如(x0,y0)和(x1,y1)是窗体上两个点坐标,用该公式可得到多边形所有顶点坐标,从而能在窗体上画出多边形。如(x0,y0)固定,(x1,y1)随鼠标移动而改变,就可以实现拖动鼠标画多边形。

2021-04-08 10:42:15 1335 1

原创 用36条Python语句实现在Canvas上用拖动鼠标方法画直线、矩形和椭圆(圆)

实现在Canvas上用拖动鼠标方法画直线、矩形和椭圆。以画矩形为例说明实现基本思路,首先在鼠标单击处创建一个小矩形,鼠标左键按下移动时,用Canvas方法coords移动、放大或缩小这个矩形,鼠标抬起固定这个矩形。

2021-04-06 14:44:44 2112

原创 python tkinter canvas的方法itemcget、itemconfig和type的使用

itemcget方法返回Canvas上某对象的某个属性值,例如text对象字体颜色。itemconfig方法可修改Canvas上某对象的一个或多个属性值,例如text对象字体颜色和显示的内容。type方法返回Canvas上某对象的类型,例如text对象返回"text"。

2021-04-01 11:09:58 4638

原创 把python tkinter canvas中的图形图像保存为通用格式文件的5种方法

在python tkinter Canvas中画图和显示图像,可以将所画图形和显示图像保存为postscript类型文件,这不是通用的文件格式。本文介绍将其保存为通用格式文件的5种方法。

2021-03-29 19:21:04 5962 1

原创 pip官方英文文档中使用pip安装库的方法(和很多文章介绍格式不同)

为在Python3.8使用pip安装图像函数库Pillow,从网上查找用pip安装库的方法,发现有多种使用pip的格式,试了几种不成功。因此找到pip使用的官方英文文档,翻译为中文并加上自己理解,希望对大家有用。

2021-03-24 19:20:38 226

原创 如何判断数字华容道中随机排列的数字阵列是否有解

数字华容道NxN数字随机排列的阵列有解的充要条件是:N为奇数,总逆序数为偶数,N为偶数,总逆序数为奇数。即满足此条件,数字随机排列阵列,能通过移动数字方格,使阵列的数字按顺序排列。

2021-03-22 19:08:42 6819 1

原创 数字华容道游戏_用Python tkinter Canvas实现

仅仅46条语句,用Python tkinter Canvas实现3x3数字华容道游戏,进一步介绍Canvas的事件绑定、tag属性、获得Canvas中各种对象的坐标等功能。通过这个例子能更深入地学习Canvas。

2021-03-15 19:57:13 734

原创 人机对弈黑白棋游戏用Python tkinter的Canvas实现图形界面

用Python tkinter的Canvas编写图形界面黑白棋游戏,界面能做的很漂亮,游戏运行时不要求安装pyGame库,采用事件驱动减少占用CPU时间,使用Canvas中的对象tag属性,用较少代码较容易地删除Canvas中各种对象和为玩家提供提示标志。

2021-03-12 21:08:12 1897

原创 用Python tkinter的Canvas设计的人机对弈棋类游戏中使双方棋子前后出现

用Python tkinter的Canvas设计的人机对弈棋类游戏中,鼠标单击玩家放棋子,为使双方棋子前后出现,在另一线程中每1秒查1次是否该计算机放子,如是发一自定义事件,启动该自定义事件函数,执行计算机放子操作,模拟两个人在下棋。

2021-03-09 06:31:56 331 1

原创 在Python tkinter的Canvas画布上删除所有相同tag属性对象的方法

玩围棋要在棋盘上放置若干棋子。重玩游戏要删除所有棋子,保留画布。如创建棋子时增加属性tag="a1",可用语句delete("a1")删除所有棋子,而保留画布。

2021-03-02 21:34:22 912 1

用pygame模拟网上游戏“超人训练”的所有资源

博文“超人游戏_将障碍画在背景中用pygame.mask.from_threshold实现超人和不同颜色障碍精准碰撞检测”中游戏“超人”的源程序及所有使用图形,下载解压后可直接运行。

2021-09-20

运球和投篮游戏.zip

博文“pygame编写篮球游戏-火柴人运球避开防守跳起投篮”源程序及所需图形

2021-06-14

博文“人机对弈黑白棋游戏用Python tkinter的Canvas实现图形界面”源程序

用作学习使用Python tkinter的Canvas编写棋类游戏的例子

2021-03-12

博文"用python tkinter组件实现扫雷游戏"源程序

用python tkinter组件实现扫雷游戏,仅用198条语句。程序用到多项技术:tkinter按钮事件函数实现多个参数,Timer秒表实现,为tkinter按钮绑定多个事件,且每个事件的事件函数有多个参数等等

2020-10-15

XNA3_1编程基础例子

我是耿肇英,曾出版:Direct_3D与XNA游戏开发基础(C#版)。后写了一本:XNA3_1编程基础,未能出版。这是书中所有例子。十年后上传,希望对一些人有帮助。

2020-06-20

XNA3_1编程基础.rar

我是耿肇英,曾出版:Direct_3D与XNA游戏开发基础(C#版)。后写了一本:XNA3_1编程基础,未能出版。十年后上传,希望对一些人有帮助。

2020-06-20

数字华容道_不移动块法.sb3

提出一种新方法用scratch编写游戏-数字华容道。该法仍然采用克隆法,每个克隆体有25个造型。所有克隆体不移动,用改变造型方法实现数字重新排列。

2020-06-13

游戏-蹦床小姑娘的源程序:蹦床.sb3

游戏-蹦床小姑娘的源程序。实现蹦床运动中运动员在蹦床上跳跃及连续旋转等动作。作为游戏,玩家用键盘控制旋转,可旋转多圈,随得分增加,难度也增加,可玩性高。

2020-05-25

数字华容道_克隆法.sb3

在“用scratch编写游戏-数字华容道”一文中仅介绍了3行3列数字块的设计方法。本文介绍克隆法,该法在设计更多行和列的数字华容道时,使所有数字块都使用相同的脚本,极大减少了工作量。

2020-05-18

用scratch实现的“超人训练”游戏

用scratch实现网上“超人训练”游戏的该源程序,本人在博客中论述了火柴人动画中造型转换所发生错误的解决方法,该源程序可作为一个实例。

2020-05-09

游戏“火柴人避开防守投篮”源代码

scratch3.0编写的投篮游戏,用火柴人实现动画功能,动画生动展现投篮手带球跑动,避开防守者,跳起投篮的画面。

2020-04-30

博文的源程序:球球情侣2.sb3。

网上有个“球球情侣2”的游戏,作者用Scratch3.0实现了该游戏的基本功能,这个资源是Scratch3.0源程序。

2020-04-25

数字华容道2.sb3

自己用scratch3.0编写的小游戏:数字华容道。第一次在这写博客,不知道如何和编写的程序关联,在此把程序上传。

2020-04-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除