- 博客(20)
- 收藏
- 关注
原创 解决unity3d html文档打开慢的问题
Unity3D的在线文档内容丰富,平时开发需要经常查看,但有一个问题就是打开很慢,每个页面都要等上十几秒才能打开。在unity3d安装目录找到了离线版的html文档:D:\Program Files (x86)\Unity\Editor\Data\Documentation\html\en但是打开离线文档仍然有相同的问题,怀疑是页面中访问了某些被墙了的站点。打开html代码果然发现有g
2014-12-31 10:28:16 5943 1
原创 圆与扇形碰撞检测
圆与扇形的碰撞检测,以前用过一种算法是这样的:首先把扇形视作一个圆,排除圆与扇形圆不相交的情况,然后如果圆心在扇形两条边中间,则必然相交,剩下的就判断圆是否与两条边相交。这种算法用到了点与直线的关系,圆与线段的碰撞检测,圆与圆的碰撞检测等,算法清晰,实现起来比较简单,但只能适用于扇形夹角小于180度的情况。今天偶尔想到了一种新的算法:首先把扇形视作一个圆,排除圆与扇
2014-05-08 22:37:38 8978 2
原创 圆与三角形碰撞检测
圆与三角形之间的碰撞检测算法可以综合运用之前写过的基本图形间的碰撞检测算法。如果圆心在三角形内,则三角形与圆必然相交,转换为判断点在三角形内,参考:判断点是否在三角形内;如果圆与三角形任一条边相交,则三角形与圆必然相交,转换为圆与线段相交,参考:圆与线段碰撞检测;算法实现如下:#ifndef __CIRCLE_TIRANGLE_INTERSECTION_H__#define
2014-05-07 20:39:38 4202
原创 圆与线段碰撞检测
圆与线段的碰撞检测算法利用了一个向量在另一个向量的投影的原理。假设向量p1p为v1, 向量p1p2为v2,p0为v1在v2上的投影点,则p1p0为v1在v2上的投影。两个向量点乘v1.dot(v2) = v1.length() * v2.length() * cos(theta) = x1 * x2 + y1 * y2,当v2经过单位化后,点乘的结果就变成的投影向量p1p0的长度,设为u。
2014-05-06 21:39:55 6296
原创 圆与矩形碰撞检测
圆与矩形的碰撞检测,假设矩形中心点v0, 上边中心点v1, 右边中心点v2, 圆心v, 圆半径r, 矩形半宽w1, 矩形半高h1,。v0为矩形的坐标系原点,(v0,v2)为矩形坐标系x轴,(v0,v1)为矩形坐标系y轴,圆心到矩形y轴距离为w2, 圆心到矩形x轴距离为h2,如图所示:根据图示可以很容易的写出圆与矩形的碰撞检测算法:#ifndef __CIRCLE_RECTANG
2014-05-05 21:41:30 10382 4
原创 使用 Lua + ImageMagick 轻松批量抠图
最近准备做一个android手机游戏,但是手头没有图片资源,于是就想着找些现成的拿来先用着。下载了一些apk用压缩工具解压出来找到了些比较合适的图片,但这些图片大都是把多张小图拼接到一张大图里,手动去抠图不靠谱,于是想到了 ImageMagick,然后再配合灵巧的 Lua 事情就变得简单多了。在资源目录找到了个和大图配套的.plist配置文件,里面有很多类似这样的配置: cursor
2013-11-02 22:18:34 4407 1
原创 练习使用 socket 发送简单的 HTTP GET 请求
最近项目中有这样的需求,需要在游戏中内嵌手机验证模块,而手机绑定信息保存在运营后台,游戏服务器无法直接访问,所以就需要游戏服务器向运营后台发送一些 HTTP 请求来获取这类的信息。因为这部分功能写在服务端,为了尽量避免服务器阻塞,在 recv 前加了 select 操作,并且为每个 HTTP 请求分配了一个线程。这里是针对此需求做的一些练习。#include #include
2013-02-06 10:11:49 4228
原创 练习使用 STL sort 对容器进行排序
主要练习使用 std::sort 对 std::vector, std::string 等进行排序,并学习如何通过指定自定义排序方法或者重载 operator #include #include #include #include #include struct Vec2D { float x; float y; Vec2D() : x(0.f),
2013-02-05 15:57:15 3718
原创 Win32 平台 C++ socket 编程练习
使用C++实现Win32平台的TCP/IP网络编程,练习socket的使用。服务端:#include #include const unsigned short LISTEN_PORT = 8700;int main(int argc, char* argv[]){ using namespace std; WORD wVersionRequested
2012-02-20 09:21:03 5285
原创 设置 mysql ODBC 连接以支持一次执行多条SQL语句
代码中使用 MySQL ODBC 执行类似以下SQL语句(部分代码用...省略了):DELETE FROM ...; INSERT INTO ...;执行失败,错误信息如下:[42000] 1064 [[MySQL][ODBC 5.1 Driver][mysqld-5.0.77]You have an error in your SQL syntax; check the manu
2012-01-31 20:12:14 5197 1
原创 使用C#将C/C++,C#枚举导出成as3格式
最近做一个项目,需要将客户端版移植到flash平台上,服务器端仍然使用原来的。这样服务端定义的一些枚举需要在flash as3中实现一份。as3本身没有枚举这种类型,一般使用 public static const 来模拟实现。如果枚举数量少的话可以把枚举名手动拷贝过去,一旦枚举数量很大工作量会成倍增加,所以需要写一个小程序来自动帮我们做到。原来的项目是用C++写的,之所以使用C#来写这个小程
2012-01-30 16:11:46 1210
原创 用C语言写UTF-8编码的文件
为实现用C语言写UTF-8编码的文件,测试了以下两种情况。第一种情况,为 fopen 指定一个编码,然后写入 wchar_t 字符串,最终写入的文件就是UTF-8编码的了,原理不清楚,估计是 fwrite 时对 wchar_t 做了编码转换(如果写入 char 的话就会乱码)。#include #include int main(){ FILE* fp = fopen(
2012-01-29 13:29:22 30995 1
原创 使用ImageMagick composite制作有高光的黑球
最近打算用 ActionScript3 写一个简单的五子棋小游戏练手,在网上找相关素材找了好久都找不到个合适的,于是用 ImageMagick 的 composite 工具自己制作了个黑棋子的图片。set IM_DIR=E:\App\ImageMagick-6.7.3-Q16%IM_DIR%\convert.exe -size 70x70 canvas:none -fill black -
2011-12-23 22:15:40 1639
原创 ActionScript3 绘制图片镜像
Graphics 的 beginBitmapFill 可以传入一个 Matrix 参数,用来指定对图片要做的平移、缩放、旋转等操作,只要把缩放参数设置为负数就能实现绘制镜像了。另外对 BitmapData 使用 draw 方法时缩放参数设置为负的话没有效果,不知是啥原因。package { import flash.display.Bitmap; import flash.display
2011-12-22 22:27:04 965
原创 使用ImageMagick convert加批处理批量转换图片格式
ImageMagick 提供的 convert 工具可以转换几十种图片格式,功能很强大,这里配合Windows批处理实现的批量转换图片格式功能。可以将一个目录中的所有图片批量转换成另外一种格式输出到一个新的目录,并保持目录结构不变。@echo offset SOURCE_DIR=d:\images\jpgset TARGET_DIR=d:\images\pngset CONVERT
2011-12-13 22:40:32 7239 1
原创 使用ImageMagick montage把多张图片拼成一张大图
最近项目中需要将多张小图片拼成一张大图,因为工作量大不可能让美术手动去拼,而且手动拼的话很容易失误。于是google到了ImageMagic,功能很强大,有很多处理图片的工具,拼图就用到了其中的montage。详细用法不多说,可以去官网(www.imagemagick.org)查。1. 把当前目录下的所有.png格式的图片拼起来montage.exe *.png -geometry +0+
2011-12-09 22:41:54 13404 1
原创 ActionScript3 学习笔记(一) as3语言基本要素
. 基本数据类型有:Boolean, int, uint, Number, String,除基本数据类型之外其他的都是组合数据类型。. int表示有符号32位整数,uint表示无符号32位整数,Number表示64位符点数。. 基本数据类型属于值类型,其他都属于引用型。. 创建一个引用类型数据需要用new,而值类型不用。. 所有数据都是对象,值类型是一种特殊的对象,叫做不变对象(i
2011-12-06 19:23:41 978
原创 Win32多线程编程练习
练习一:创建一个工作线程,主线程等待此线程返回后再继续执行(纯粹练习API用,无甚意义)。因为线程间没有共享的资源,这里没有做多线程同步。如果工作线程里要使用 cout#include #include #include unsigned __stdcall SimpleThread(void* pParam){ ::Sleep(3000); return 0;}
2011-11-24 23:09:48 1114 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人