自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (2)
  • 收藏
  • 关注

原创 【plang 1.4.3】Python/Lua/Plang游戏脚本性能测试

笔者采用计算Fibonacci数列第40项的平均用时,在递归调用方面来度量语言性能。 笔者所使用的测试平台是安装Microsoft Windows 10 专业版(版本10.0.18363)操作系统,带有Inter(R) Core(TM)i7-5600处理器与8GB内存的联想Thinkpad x250个人笔记本电脑。Python测试用例(版本3.8.3)from time import *def fib(n): if n <= 2: ...

2020-05-28 12:04:58 433

原创 【plang 1.4.6】Plang高级编程语言(发布)

Plang是一种采用面向对象设计思想的高级程序设计语言。该语言主要用于Microsoft Windows10平台下小型VC++系统的嵌入式脚本开发。本文档通过简单的示例让用户了解Plang编程语言。我的第一个PLANG程序import std::IO;public class HelloWorld { public static main(){ IO.printf("Hello, world!"); }} 运行:......

2020-05-14 09:56:06 2250

原创 如何用Cpp优雅书写《俄罗斯方块》

如何优雅的用200行Cpp代码书写俄罗斯方块游戏。

2024-09-23 08:43:00 273

转载 软件系统设计原则(全面)

本文介绍软件系统设计原则

2023-02-04 10:15:56 456

原创 引擎开发日志:场景编辑器开发难点

试想一个使用场景,鼠标随意点击编辑器中的某个元素(角色,组件,设置等等),侧栏面板都能轻松可视化包含的所有属性,例如角色的位置、旋转、缩放。那么,它们是怎么做的?

2022-07-30 06:50:40 856

原创 引擎开发日志:集成Bullet3物理引擎

当渲染模块开发到一定程度,会发现毫无进展,此时应当改变开发方向。软件系统目前集成了许多低级且必要的模块,开发耗时极长,例如文件,日志,渲染,动画,相机等等。而对于物理模块,尚未开动。因此最近着手寻找物理模块方案,于是自然的找到了Bullet3这个物理引擎。据说性能优越,而且官方文档齐全。于是尝试集成,结果发现工作异常之简单。目前抽象了刚体,碰撞形状等物理概念。计划将抽象约束,力,事件等模型,如此一来,通用的抽象层替换为其他物理引擎,也会十分容易。以下展示所实现的简单物理效果。.......

2021-10-18 00:21:12 767

原创 引擎开发日志:重构骨骼动画系统

我发现一个规律,每经过一段时期,都会觉得之前代码写的像????。如此周期性的修改代码结构成为日常。这次重写动画系统,是为了让它可以兼顾后续的变形动画,布料动画,流体动画等扩展。目前基本完成了骨骼动画的修改。整个系统越来越像ECS靠近,但是部分结构有别于ECS,可谓具体问题具体分析。系统运行效果与之前一模一样,但是把窗口由win32换成glfw,另外用glm数学库替换了原先的轮子。这两处更改是有意义的,前者保证了跨平台,后者具备SIMD运算加速的特性。glm数学库在计算transform时,有处坑需要

2021-10-07 21:07:58 198

原创 引擎开发日志:OpenGL资源多线程加载

今天打算开始在CSDN上,记录自己在开发小型软件的过程中,对于设计的一些思考。既算作一种分享,也是文字总结。我打算编写一个渲染系统,当然开发已经进行了半年,成果多少是有。加载场景,灯光阴影等功能都具备。GUI,脚本等开发也十分顺利的进入尾声。但是就在最近,热切想实现的一个功能却成了阻碍,摆在我面前,如何实现资源异步加载。目前项目使用OpenGL作为底层渲染接口,由于OpenGL的上下文是线程环境相关的,无法做到在渲染线程之外的线程中执行GPU资源加载。如果把资源加载的工作都放在渲染线程中,必然会出现

2021-09-09 18:42:41 736

转载 NSIS来自己设定快捷方式的图标

CreateShortCut 快捷文件.lnk 目标文件 参数 图标文件 图标索引号 启动选项 键盘快捷键 描述CreateShortCut "$DESKTOP\快捷方式.lnk" "$INSTDIR\程序.exe" "" "$INSTDIR\图标.ico"转载地址:https://www.cnblogs.com/94cool/p/6029743.html...

2021-05-06 10:41:08 1122

原创 实现动态库(DLL)之间内存统一管理

公司里出现了这么个亟待解决的问题,就是项目中的多个动态库在释放时,由于顺序不当产生使用已析构对象野指针引用问题,导致系统崩溃。因此,个人认为解决这个难题的前提是使用统一的动态库负责内存分配与回收。统一内存管理模块包括:内存分配模块(PMemory.dll),动态库加载模块(PExport.lib),业务模块(PService.exe或dll),其中PMemory.dll:为内存的统一分配单元,通过热加载方式使用其new与delete接口。PExport.lib:封装动态加载与释放PMemory...

2021-03-27 11:58:21 879

原创 【plang 1.4.5】编写坦克(双人)游戏脚本

最近,想着做一款双人玩的坦克游戏脚本示例,顺便尝试在plang编程语言上测出一波BUG,结果让人失望,程序正常运行。测试代码如下。工程目录Main.ps:程序执行入口import std::IO;import std::Type;import std::OS;import std::TIME;import tank::TankClient;class Main{ public static main() { OS.system("cls"); OS.srand

2021-03-13 03:40:35 524

原创 【plang 1.4.4】编写贪吃蛇脚本

最近打算用plang编程语言编写一些小游戏demo,顺便测测语言工具的健壮性。贪吃蛇是我小时候喜欢玩的,就决定是它了。先设计Snake类:package snake;import gui::GUI;import std::collection::ArrayList;public class Snake : GameObject{ public Snake() { super(); i->int = 0; while(i < s.length) {

2021-01-08 13:57:13 1327

原创 读取FBX文件踩坑清单

FBX文件得到了许多3D制图软件与3D游戏引擎的兼容,其发展趋势大好。因此若要编写一款3D图形系统,对FBX格式的支持是必经之路(或者使用插件形式)。笔者尝试在百度、必应等搜索引擎,外加fbxsdk实例的帮助下,读取了FBX文件,并且生成图像。特地编写一篇文章叙述解析FBX过程中,容易踩到的坑。以下展示显示效果:模型原图:显示效果:踩坑清单:1、FBX资源组织方式。FBX文件以多叉树结构组织,其解析始于FbxScene根结点,根节点下挂载网格、材质、纹理贴图、动画、骨骼、蒙皮、灯.

2020-11-29 13:57:47 3274 3

原创 【plang1.4.3】语言新特性:集合

为了方便编程,Plang语言加入了集合工具库,该库在设计时参考了java.collection的理念。集合工具库提供以下功能:Collection:包括LinkedList、ArrayList、TreeSet、HashSet; Map:TreeMap、HashMap;以上集合工具类都提供元素遍历器,具体使用情况参考如下代码:import std::IO;import std::Type;import std::collection::Collection;import std:...

2020-09-01 00:39:42 215

原创 【plang1.4.3】编写水母动画脚本

产品介绍参考:Plang编程语言今天,演示一个使用Plang语言调用底层库,并且实现像素风格的水母动画的程序实例。图1 设计类图说明:GUI:绘制接口。WinGUI:实现GUI接口,并且以native方法的形式,调用C语言的gui.dll库,该库包含win32的命令行窗口的绘制逻辑。PixelReader:读取动画数据。PixelPainter:绘制动画帧。动画效果截图:源代码远程仓库:https://gitee.com/chivenzhang/shuimu

2020-07-29 14:24:24 220

原创 【plang 1.4.3】定时器的使用

Plang资源:Plang-1.3.17.zipimport std::IO;import std::Type;import std::time::Timer;import std::time::Task;import std::time::Timeout;class Task1 : Task{ public Task1(){} public run(){ IO.printf("@ "); }}class Task2...

2020-05-22 10:26:52 224

原创 【plang1.4.3】如何表达设计模式?

1、工厂模式package pack0;import std::IO;public interface Shape{ draw();}class Rectangle : @Shape{ public Rectangle(){} public draw(){IO.printf("rect.draw\n");}}class Square : @Shape{ public Square(){} public draw(){IO.printf("square.draw...

2020-05-16 12:18:13 148

原创 配置 spring cloud oauth2 的(关键)易错点

1、在配置端点时:configure(AuthorizationServerEndpointsConfigurer endpoints) ,需要指明 AuthenticationManager,即调用方法:authenticationManager(authenticationManager),但是在注入authenticationManager时,网站同时给了两种方案:A、调用WebSec...

2020-01-15 01:04:44 438

原创 java 复合赋值运算顺序非纯粹的从右到左

在研究编程语言的过程中,发现 Java在运算下列代码所得到的 a 的值,与C/C++下运算的值是有区别的:int a = 5;a += a += 666;System.out.println(a);,其中Java中 a = 676, C/C++中 a = 1336。这两种结果的差异是一个很危险的信号,像熟悉C/C++语言的编程者,用Java书写数学运算较多的程序时,极易出错。网上...

2019-12-26 03:37:09 1739

原创 LL(1)文法 :解决 if-else/if-else 产生式二义性问题

注:本文适合对编译感兴趣的朋友阅读。最近尝试用LL(1)文法构造 类似C语言结构的产生式。在构造 if/else 语句时,发现语法存在二义性(Statement、Expression部分省略 ):Statement-> if ( Expression ) IfBlockIfBlock-> Statement ElseBlockElseBlock-> else St......

2019-09-18 14:56:08 2618 4

原创 java 产生式

Identifier:IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral IdentifierChars:JavaLetter {JavaLetterOrDigit} JavaLetter:any Unicode character that is a "Java letter"JavaLette...

2019-08-20 00:20:44 426

原创 windows7(64)安装Oracle instant client(64)(ODBC驱动)出错:Oracle ODBC Driver with same name already exists.

windows64位安装instantclient和ODBC驱动:1、官网下载对应的instantclient base包和驱动包(个人为ODBC),将其内容解压在c:\program files\instantclient_?_?文件夹中(?代表具体版本);2、(可省)设置系统环境变量:TNS_ADMIN,其值为:配置文件路径(此处省略,具体百度‘oracle tns_admin’);...

2019-01-09 21:50:49 4489

原创 对贝塞尔曲线的认识

一、N阶贝塞尔曲线是一种由N组数集推导而出的N组向量集,从N组向量中相同位置上各取一个数值组成一个N维空间向量。二、推导想法如下:灵感1:在坐标系中多个函数就可表示一条曲线,而且变量阶数越高,曲线越复杂。根据泰勒公式,任何N+1阶可导函数都能用最高阶为N的多项式和表示,因而曲线和多项式就此产生了联系,即P(u)->曲线;灵感2:直线也是曲线,可以用1、y=kx+b;2、(...

2018-11-27 22:48:45 434

原创 C/C++ 获取系统时间距 1970年1月1日00:00:00 的毫秒数

 #include &lt;stdio.h&gt;#include &lt;sys/timeb.h&gt;typedef unsigned long long ulong;ulong currentTimeMillisec(){ struct timeb tb; ftime(&amp;tb); return tb.time * 1000 + tb.millitm;}voi...

2018-10-16 15:57:17 4296 2

plang-release-1.4.6.zip

一款类似java的编程语言工具包,属于个人开发的项目。目前处于维护阶段,技术成熟后将用于游戏开发。希望各位网友多多关注一下

2020-05-11

Oracle_installclient_12_1 (ODBC)

这是一份windows32位下的Oracle Odbc驱动,即客户端。适合Oracle 11g的连接,亲测有效。

2019-01-06

空空如也

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

TA关注的人

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