- 博客(84)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
原创 用Python记录一场2023的烟花
然后写一个主程序类,对pygame进行初始化,设置屏幕宽高,设置标题,创建pymunk空间,然后设置空间的重力为(0,300),然后设置collision_persistence参数为0,表示没有碰撞,毕竟俩烟花也不会撞一起......然后设置烟花半径(可以自行修改),创建两个列表,用于存放烟花爆炸形成的火球和发射到天空中还没爆炸的烟花,创建一个colors列表,存放烟花的颜色。好吧,进入正题,2023的到来,肯定少不了烟花吧(外面不让放炮,那咱们就用python放炮【DOGE】)喜欢的话就来个3连吧~~
2023-01-01 09:42:17
16440
26
原创 Python 用Ursina 3D引擎做一个太阳系行星模拟器
然后创建_update方法,这里我们不重写ursina自动调用的update方法,因为系统代码里面,update方法还有很多操作,如果我们要重写的话,可能还要加上把系统代码复制过来,代码过于繁琐,这里我们自己定义一个名字,在接下来会讲到的代码中自己调用它,在该方法中,监听鼠标左键、左shift和空格的事件,空格原本是跳跃,这里我们设置为上升,系统代码是在input中接收空格键的信息的,我们已经重写过了,所以这里不会触发系统代码的跳跃方法。注意,上面除了vspeed变量可以自己命名,其它的都不可以修改。...
2022-07-17 18:34:12
6201
25
原创 Python 用3D引擎写一个Pong游戏
我们创建一个桌子,它是一个长方体,所以model为cube,颜色是橙色,然后进行缩放操作,并设置位置,还有它的材质(普通材质)进行板子和球的碰撞检测,先用intersects获取触碰到的实体列表,然后对碰到实体为两个板子的时候进行反弹、加速或减速的操作。这样运行程序,我们只看到了桌子的侧面,调整视角,改变ursina自带的camera的属性即可,设置它的倾斜度和位置。ursina自带window参数,代表窗口,它还自带color参数,代表各种颜色,我们直接修改窗口的颜色。接下来,绘制桌子中间的分割线和球。.
2022-07-17 14:55:16
3812
7
原创 手把手教你用Python编一个《我的世界》 3.添加手臂并完善整个游戏
今天,我们要实现的效果是:有手的动画,可以建造一个豆腐房首先,我们可以添加一个手臂,定义Hand类class Hand(Entity): def __init__(self): super().__init__( parent=camera.ui, model="cube", scale=(0.2,0.3), color=color.white,
2022-05-15 14:51:08
5144
11
原创 手把手教你用Python编一个《我的世界》 2.材质及第一人称
本次,我们将实现这样一个效果:首先,导入ursina模块from ursina import *创建appapp=Ursina()定义Block类,继承自Buttonclass Block(Button): def __init__(self,position=(0,0,0),texture=grass_texture): super().__init__( parent=scene, position
2022-05-15 13:27:11
8548
36
原创 手把手教你用Python编一个《我的世界》 1. 认识Ursina并学会绘制立体图形
Python有一个不错的3D引擎——UrsinaUrsina官网:www.ursinaengine.org打开cmd,控制台输入pip install ursina以安装ursina编写第一个程序首先导入ursinafrom ursina import *然后创建appapp=Ursina()运行appapp.run()最终代码:from ursina import *app=Ursina()app.run()如果出现了一个灰色的窗口,
2022-05-15 12:43:37
14811
7
原创 CKEditor 为你的Flask项目添加一个富文本编辑器
可以看到CKEditorField实质上取代了TextAreaField(呵呵)表单类中把TextAreaField改为CKEditorField。人家高高在上的CKEditor是有个官网的!不过还是不搞那么复杂吧,默认就好(doge)Standard就比较多啦,它有61个插件。给它解压一下里面有个ckeditor。最后在HTML表单中加入这一行就好啦。Basic模式很小巧,有18个插件。Full包含所有功能,87个插件。出可爱的CKEditor啦~~~喜欢的话就来个3连吧~~~HTML中加入下面代码。
2022-12-30 17:26:04
1739
5
原创 蹦起来!Python 用物理引擎Pymunk写一个解压小游戏
现在,启动程序,移动你的鼠标,点击鼠标创建一个个不同大小的球吧!结合pygame,创建若干障碍,并设置重力、弹跳力等参数。用鼠标创建小球,一个蹦来蹦去的解压小游戏……(p.s. 滑动滚轮也可以哟~~~)绘制并检测物体跳出边界并删除。写一个自动创建新球的函数。
2022-12-21 19:24:12
1331
3
原创 圣诞节来了,用Python Turtle画棵圣诞树吧
两边的叶子,左边的叶子朝向右边(随机度数),右边的叶子朝向左边(随机度数),这段代码不难理解。然后初始化一下,设置颜色模式为255(RGB模式),设置画布,初始位置,绘图速度等。然后,写一个待会儿要用到的函数,用于随机生成True和False。伯利恒之星,一开始画位置不太对,经过多次调整后确定为如下代码。里面的参数可以自己修改,喜欢的话就来个3连吧~~~首先,导入turtle和random。如何实现上图效果呢?好啦,看一看全部代码吧!
2022-12-09 19:40:06
988
8
原创 解决C++ Easyx char和string无法转为LPCTSTR的问题
下面BUFFERSIZE可以自行修改值。实际上LPCTSTR就是TCHAR*一般情况下,我们会这样写。包含字符串变量也会出错。直接用字符串变量也会出错。
2022-10-07 12:15:49
1748
6
原创 基于C++ EasyX框架开发的飞机大战小游戏
其中,l、r、t、d分别为第一个物体的左边x坐标、右边x坐标、上边y坐标、下边y坐标,el、er、et、ed是第二个物体的,然后进行判断,返回bool值,这个待会在main.cpp会用到。接下来也是一个常用的头文件,因为easyx渲染透明图片很麻烦,所以这个方法通过计算来绘制,这个是借用了。这里的类成员变量type表示敌机大小,3最大,同时血量最多,也实现了移动和检测超出边界功能。代码都很短,也实现了移动和限制活动区域(checkBound)操作,不难理解。正式使用Easyx之前,你需要先安装他!
2022-10-06 22:40:08
2860
14
原创 解决Visual Studio中C++创建类时报错“未能返回新代码元素,可能是语法错误,新元素名:xxx”的问题
如果无法删除那么关闭Visual Studio再删除。然后重新启动Visual Studio就好了!这样就出现了.vs文件夹。按下图取消勾选隐藏文件。
2022-10-06 14:28:52
3053
6
原创 Java Swing 制作一个Pong小游戏
这个模型嘛,一般情况下都有x和y还有大小,因为这个是个圆,所以我们用半径r,然后xspeed和yspeed表示各个方向的速度从而实现斜着移动,还有max_speed和min_speed用于把动态变换的速度限制于这个范围内,待会每碰到一次墙壁或板,就会适当增加或减少速度,所以要把速度限制在特定范围内,max_speed2和min_speed2也一样,前2者是用于正数速度的,后2者是用于负数速度的,然后移动的时候就对一些碰撞等情况进行检测就好了,getBound用于返回对象的Rect长方形对象,用于检测碰撞。
2022-09-04 17:53:11
1161
2
原创 Java Swing 飞机大战游戏
然后有一个paint方法,这个是重写自JPanel用于绘制的方法(自动调用),默认传入一个Graphics类型的变量g,我们不把东西画在g中,要画在我们自己创建的g2里,所以g2先绘制背景图,进行是否已经失败的判断,做出读写得分、清除子弹敌机等数组、检测碰撞collide(),刷新freshBullets()等等,然后运行paintImage方法,这个是我们自己写的方法,最后将img主图片画在g中即可,paintImage就绘制一些东西,代码不难理解。Constants // 常量。
2022-09-03 23:35:56
1171
6
原创 Minecraft 服务器安装Forge 并添加Mod
手把手教你搭建一个Minecraft服务器_Leleprogrammer的博客-CSDN博客输出以下内容接下来的步骤和上一篇文章基本一样,改eula,改server.properties,最后创建世界启动服务器即可。我们这里forge服务器每行输出前面总有一些乱码,这里我们把bat文件的nogui删掉,运行时出现了这样一个窗口,右边的输出就没有乱码啦!......
2022-08-02 13:35:26
19520
10
原创 手把手教你搭建一个Minecraft 服务器
我们首先是echo关掉,然后执行java的命令,-jar之后是自己刚刚下载的jar的文件名(这里我们以1.16.3为例),然后-nogui可加可不加,-nogui表示不要图形界面,添加后运行服务器时只有控制台,没加的话,运行服务器既有控制台,又有另外一个窗口,实时显示内存使用和服务器的后台,但是服务器后台显示在控制台已经有了,为了避免太多窗口,这里为了示范,我们添加-nogui参数,pause是在java那行代码执行后,也就是服务器停止后运行的。然后,在其同目录下创建一个bat文件,写入这段代码。...
2022-08-02 11:01:21
19621
7
原创 Minecraft HMCL 第三方启动器使用教程
我们可以创建一个离线模式用户,也可以通过Mojang和微软登录,Mojang和微软就是正版的,意思就是可以进入一些正版服务器,而离线用户和认证服务器就可能没办法,因为作者没有账号(呜呜呜)所以只能用认证服务器啦。输入提取密码即可下载啦,exe直接运行,不需要安装,这里我们最好把exe放在一个固定目录,因为它会在同目录生成数据的文件夹(.minecraft),打开hmcl是这样的。接下来就要下载游戏版本啦,回到主页,点击下载,在里面选择自己要的版本。想了解HMCL安装过程的,查看我的另一篇文章。...
2022-08-02 10:32:03
22025
1
原创 Python Turtle 绘制蝴蝶曲线
我们需要进行多次循环得出每个点的坐标,最后这些点连接成了上图曲线。这次我们用Turtle绘制上图的蝴蝶曲线。用Python程序实现。
2022-07-26 14:07:20
3181
1
原创 Python Turtle 绘制勾股树
在主程序中设置速度,因为递归很占内存,所以绘制速度会卡顿减缓,所以这里加速1000倍,设置无延迟,笔触颜色为绿色,笔触大小2,抬笔,设置方向,并开始递归,最后隐藏画布并保持窗口显示。定义tree函数,绘制正方形并记录要生成的新的正方形的坐标,计算出新的正方形的度数和边长并绘制,这里采用递归的方式。ln表示边长,mode表示当前正方形是在前一个正方形的左边或右边,h表示朝向,p表示坐标。喜欢的话就点赞收藏+关注吧~定义勾股数每次旋转的度数。...
2022-07-23 16:13:34
1983
2
原创 【Pygame 学习笔记】8.精灵
上面这行代码用到了pygame.time.set_timer方法,传入两个参数,第一个是事件,第二个是毫秒数,表示从这行代码开始,每运行多少毫秒触发一次事件,我们这里设置为700,也就是每700毫秒触发一次创建气球的事件,接下来我们在listen中进行事件的监听,在for循环事件遍历中添加这段代码,当程序捕捉到这个事件时,就向self.balloons精灵组添加精灵,用到了add方法,传入的参数就是我们精灵类的一个实例化。再运行程序,可看到,气球就正常地缓缓下落了,控制台输出的帧率,也是非常的接近120。.
2022-07-19 15:35:00
1673
原创 【Pygame 学习笔记】7.事件
从前面的6篇学习笔记中,我们不难发现,我们总要在Game中写入listen事件监听方法,这一篇学习笔记,我们来深入学习Pygame的事件监听需要使用到的pygame常量。这里,我把一些常用的pygame事件常量和用途总结成如下表格,供大家学习参考(对应的数值不同的版本可能会不一样,我的pygame版本是2.1.2)返回一个bool值的序列,表示键盘上的每个按键的状态,使用键常量值来索引数组,值True表示被按下。返回一个整数,表示所有修改键的位掩码,使用按位运算符,可以测试是否按下了特定的修饰键。.....
2022-07-16 16:02:22
771
原创 【Pygame 学习笔记】6.Cursor 鼠标光标
注意,这四种光标都是由一个元组组成,元组中是若干个字符串,我们把字符串也看成数组的话,它就是一个二维数组,所以set_cursor后面传入的第一个元组就是这个“二维数组”的大小,可以用len方法和索引,直接查看这些元组,自己也可以像它一样,创建自己的光标。Pygame支持黑白光标(位图光标),以及系统变体光标和彩色光标。这次,我们来学习Pygame中对光标的操作pygame.cursor。该模块包括几个标准光标,这些光标的参数都存储在一个元组中。沿着xy坐标拖动窗口时的光标(处于窗口角落时的光标).....
2022-07-16 15:05:18
1069
原创 【Pygame 学习笔记】5.rect对象的碰撞检测
rect还有一些检测碰撞的方法collidelist,collidedict等等,collidelist传入一个列表,列表中是多个rect,collidedict传入rect的字典,也差不多,但是不会特别常用,这里就不讲解啦~然后进行碰撞操作和检测碰撞边缘的操作,检测碰撞边缘很简单,使用rect自带的一些参数与窗口的一些长宽进行比较即可,然后将速度设置为它的相反数。首先,是rect与点的碰撞,用rect自带的colliderect函数,返回值为bool。这一次,我们来学习rect对象的碰撞检测。...
2022-07-16 14:07:01
3158
原创 【Pygame 学习笔记】4.Transform 图片的操作
上一篇文章,我们讲解了如何导入图片并绘制到屏幕中,这篇文章,我们趁热打铁,继续深入学习如何用pygame的transform对图片进行各种操作。这篇文章需要的资源如下:0.png Sky.jpg给出Pygame基本框架代码,这篇文章将在这部分代码的基础上做更多操作首先,我们来学习如何对图片进行放大缩小制作一个游戏,我们需要的素材可能与我们需要的大小不同,最常见的就是背景图片不符合窗口大小,这个并不难解决,我们只需要对图片进行缩放即可,我们要将刚刚提供的Sky.jpg绘制到屏幕,但是大小不同,无法填满
2022-07-08 14:53:50
2427
原创 【Pygame 学习笔记】3.导入图片并绘制
上一篇文章,我们讲解了如何用Pygame绘制图形,这篇文章,我们来讲解Pygame如何引入图片这篇文章需要用到的素材:0.png我们创建一个resources文件夹,处于python文件的同一目录下,将图片存储于该文件夹中。 先给出Pygame框架的基本代码首先,我们要创建一个path常量,指向相对路径下的resources文件夹Game类初始化函数中,导入这张图片,存储与self.bg中,存储图片用到了pygame.image.load方法,传入图片路径,返回surface对象self.
2022-07-08 14:11:52
4422
原创 【Pygame 学习笔记】2.绘制图形
上一篇文章,我们已经创建出如下窗口 这篇文章,我们要优化一下窗口,设置它的窗口标题,并在窗口中绘制一些图案设置窗口标题,用pygame.display.set_caption()函数,传入一个字符串参数,示例如下:然后,我们要将窗口填充颜色,我们的窗口是self.screen,所以,用surface对象自带的fill方法,里面传入一个列表或元组,其中的三个元素分别为rgb对应的数值,为0到255之间的整数或浮点数,示例如下:所以,根据上一篇文章的代码进行增改,得出代码如下:运行效果: 接下
2022-07-07 14:09:55
1869
原创 【Pygame 学习笔记】1.初步搭建Pygame框架
欢迎来到Pygame学习笔记专栏,这是专栏的第一篇文章,从这篇文章开始,我们将深入地学习Pygame!今天,我们来学习如何搭建Pygame框架,我们使用类和对象的方式,这样代码更有条理,更容易规划!首先导入模块,我们需要pygame,还要pygame中的一些常量,也就是pygame.locals,sys用于退出程序定义一个类Game,用W和H存储宽高数据,为什么要用变量呢?因为我们设计一款游戏的时候难免要更改一些参数,比如窗口大小等等,如果我们使用绝对坐标的话,改变窗口大小后,很多东西都要重新去调整,
2022-07-07 13:28:12
1241
原创 Python 用Turtle绘制Technoblade
在刚过去不久的6月30日那天,国外一位在YouTube拥有上千万粉丝的我的世界游戏主播Technoblade因癌症与世长辞,年仅23岁,他并没有离开我们,只是用另外一种方式活在了这个世界上。为了纪念他,特地写了这篇文章,教大家用Turtle绘制出Technoblade...
2022-07-06 10:12:47
368
1
原创 Python 用Pygame写一个Flappy Bird经典小游戏
Pygame是Python用于开发游戏的外置库,可通过pip install pygame安装~这篇文章,我们将用Pygame编写一个Flappy Bird小游戏,游戏效果如下: 设计该游戏需要的照片如下,大家可以下载使用:0.png 1.png 2.png bg_day.png 现在开始写代码吧!先导入模块,导入pygame,pygame的常量,random随机库,sys用于退出程序,copy用于深度克隆,避免不必要的错误定义常量,path是图片储存目录,后面两个分别是pygame事件中给用户用的接
2022-07-05 13:38:24
3005
8
原创 Python SyntaxError: Non-UTF-8 code starting with ‘\xd6‘ in file 解决方法
Python SyntaxError: Non-UTF-8 code starting with '\xd6' in file 解决方法
2022-07-04 14:14:08
1866
原创 Pygame 精准检测图像碰撞
在用Pygame写游戏的时候,有人可能会遇到两个Rect对象碰撞但是对象之间还有空间间隔的问题,这里,将教大家用一种方法精准地检测图像碰撞。假设我们有两个图像(类型为Surface):surface1,surface2首先,获得这两个surface对象的rect:然后,获取它们对应的mask对象,用pygame.mask.from_surface()方法,使用如下:pygame.mask.from_surface(surface)填入的是Surface对象,返回Mask对象代码如下:接下来,进行
2022-06-24 18:18:00
3068
5
Unreal Engine 4 UCameraComponent 组件神秘消失
2023-06-27
C++ Easyx imageload方法报错
2022-10-06
CSDN资源的下载码在哪里
2022-06-29
Qt Creator 安装速度太慢了,求帮助
2022-05-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅