自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Lua面向对象实现

function baseClass(base) local cls = {} if base then cls = {} for k,v in pairs(base) do cls[k] = v end cls.base = base else cls = {ctor = func

2016-05-31 20:46:14 642

原创 A*寻路算法——多人寻路、实时碰撞寻路、最近目的地

A* 路算法原理可以参考这个文章,已经写的很详细了http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx这篇文章主要写写多人寻路的实时碰撞先说说无法寻路的情况下,如何移动的离目的地最近的点其实所有能到达的点都在"关闭列表中",当“开启列表”中所有的点都遍历完后,如果还未找到终点,则视为路径不通这时候遍历“关闭列表”,找

2015-11-04 21:34:26 9729 2

原创 C#实现磁性窗体(吸附、剥离、移动)

最近做东西需要用到这个,网上找了一下有不少人实现了,比如这位兄弟 http://blog.csdn.net/mngzilin/article/details/5549119但是有个问题,子窗体无法脱离父窗体独立运动,所以自己重写了一个,初步试了一下,效果挺不错的可以改进,加入吸附桌面边缘等功能using System;using System.Drawing;usi

2015-08-22 16:25:34 7160 1

原创 自己实现基于key-value的NoSQL数据库(四)—— 新版本的数据库

基于上一章的内容,我们需要把key替换成hash值存储到b+tree中首先要改变的就是set和get函数templateint smallsql::getType(){ return typeid(T) == typeid(int) ? 0 : 1;}templatevoid smallsql::set(const std::string& key, const T& v

2015-06-21 00:44:50 1845 6

原创 自己实现基于key-value的NoSQL数据库(三)—— B+树和Hash算法

前一篇文章中,效率成了很关键的问题,比较数据库还是需要能高效查找数据才行那么如何解决查找问题呢?一个很好的办法是使用B+树,关于B+树就不做多的介绍了,网上有很多这里只贴出定义B-树 是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M];

2015-06-20 22:21:23 2683 1

原创 自己实现基于key-value的NoSQL数据库(二)—— 改进存储方式和查询修改函数

上一篇文章实现的数据库很不方便一方面基于不同的数据,需要不同的函数用于存取另一方面数据存储基于数组,大小一开始的固定的,显然不行这一章来尝试改一改我们希望这个数据库是动态大小的,能存多少都行那么一提到这个,第一个想到的应该就是链表了先来整体看看改动后的smallsql.h可以看到数据采用链表来存储,接口也改为固定的一对get/set了,其余不

2015-06-20 19:37:43 1884

原创 自己实现基于key-value的NoSQL数据库(一)——起步,初版

写在开始1、这是一篇简单的数据库实现,按照自己的思路来不要求效率高不要求实用性,为的是以博主这样的小白目光来琢磨数据库怎么去实现2、博主是边写代码边写博客,从最开始的版本(可以说根本不能叫数据库的东西)开始一步步实现到勉强能看的地步3、基于key-value和c++,欢迎交流技术,如果喷请轻点=========================================

2015-06-20 17:16:26 5174 1

原创 使用VisualGDB对Cocos2d-x的Android游戏调试

之前Android调试都是日志,很不方便,后来yan j

2014-09-04 10:18:40 1828

原创 cocos2d-x3.0 android播放视频

手游项目需要播放视频,首先需要在android下播放。以下记录

2014-07-11 19:27:50 1343

转载 关于OLEDB导入Excel数据,产生科学计数法问题

关于OLEDB导入Excel数据,产生科学计数法问题          近日,接到一个Excel导入需求,导入文件格式为xls 。心想这个简单,三下五除二就将新功能上线。一周后接到反馈说导入数据有乱码。发现只要导入数字字符较长时oledb读出的记录数据会以科学计数法显示。解决方法只要在Excel上将字符转换为文本即可。但是客户使用时可能是在许多文本或excel中复制粘贴,根本无

2014-07-09 14:29:03 2038

原创 OpenGL显示时钟

#include #include #include #include #include float hour;float minute;float second;int week;float lastSecond;GLuint textList;char* weekStr[] = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",

2014-05-21 18:55:43 3532

原创 Cocos2d-x移植IOS笔记

一、VS中开发注意事项1、  VS中某目录下的代码文件如果要引用和该目录平行另一个子目录下的某个文件,则使用“../另一个子目录/某个文件”。2、  如果子目录下的代码需要引用和它平级的代码直接引用。 二、Xcode开发工具下classes文件夹的配置1、  在Xcode中新建Cocos2d-x项目,把classes文件夹下的文件全部删除

2014-05-07 14:42:54 1321

原创 Cocos2d-x移植安卓的笔记

一、下载所需软件Java SDK   http://www.oracle.com/technetwork/java/javase/downloads/index.html  Windows x64Eclipse  http://www.eclipse.org/downloads/packages/  Eclipse IDE for Java EE Developers  Windows x

2014-05-07 14:36:51 2337

原创 基于C#弹幕类射击游戏的实现——(十)整合

剩下部分代码,首先是入口,MainFormpublic partial class MainForm : Form { public MainForm() { // // The InitializeComponent() call is required for Windows Forms designer support. // Initia

2013-12-17 20:33:25 3703 3

原创 基于C#弹幕类射击游戏的实现——(九)BOSS

BOSS类和Enemy差不多,其实貌似因该继承自GameEnemy才对??public class GameBoss : GameObject { protected Box[] SubBoxCollider = null; // BoxCollider用作大范围的检测,SubBoxCollider是细节检测 protected GameBarrage mBarrage = n

2013-12-17 20:14:07 1821

原创 基于C#弹幕类射击游戏的实现——(八)敌机

有了弹幕,有了主角,敌人当然就该上场了。其实敌人和主角类似,也是一架飞机,不同点在于敌人的飞机是AI控制的,而玩家的飞机是自己控制而已~ public class GameEnemy : GameObject { protected int Life; public bool IsLive; protected int Type; protected Vec

2013-12-17 20:06:38 2111 1

原创 基于C#弹幕类射击游戏的实现——(七)弹幕类实现

如果只有这些子弹,那看起来必然是很一般的,想想看,只有几颗子弹,孤零零的从下面跑到上面。。。。。GameBarrage弹幕类,用于创建一些酷炫叼的弹幕~~其实核心也就是通过一些数学公式,然后批量AddBullet而已~~先来看看类型的定义public enum BarrageType { Line, RotateAndShoot,

2013-12-17 19:59:25 7530 1

原创 基于C#弹幕类射击游戏的实现——(六)爆炸效果

接下来就像填充积木一样,把GameScene里用到的东西一个个写完~~先来个最简单的。GameBomb 一目了然public class GameBomb : GameObject { public bool IsLive; private int FrameIndex; private int FrameMax; private float F

2013-12-17 19:42:03 3137 4

原创 基于C#弹幕类射击游戏的实现——(五)主场景

这里的的GameScene就是一个用于管理所有对象的类。整个游戏只有一个Scene(其实还有MenuScene,LoadScene之类的,但这里没有做,在下一个游戏《超级玛丽》里会有详细的介绍)先来看看申明部分public static GameScene MainScene = null; private Bitmap mSurface; private Graphi

2013-12-17 19:30:20 2850

原创 基于C#弹幕类射击游戏的实现——(四)玩家的战机

有了子弹,子弹想有个飞机能发射子弹了。好,现在我们就实现玩家的战机/// /// Description of GamePlayer. /// public class GamePlayer : GameObject { private GameScene mScene = null; private Vector2 InitPosition; p

2013-12-17 19:10:14 2648

原创 基于C#弹幕类射击游戏的实现——(三)子弹的实现

我写博客喜欢做完一个东西,一口气写很多章。。。貌似这样不太好啊~到这里,我们似乎该让主角上场了,好就让我们来显示一颗子弹吧~慢着,显示子弹之前,我们需要小小的抽象一下,把游戏中所有能显示的物体抽象成GameObject,好处是什么?好处是看起来很帅。。当然不是,好处简单来说,整合公共部分、利于管理~~好吧我也不知道好处。。。。/// /// Description

2013-12-17 18:44:01 8304

原创 基于C#弹幕类射击游戏的实现——(二)渲染

这个游戏打算是用C#+GDI做~所以渲染效率上还是要进行一些考虑的这里对传统的GDI+封装了下,通过批处理来提高一些效率 首先给出的是渲染接口的定义,方面以后更换高性能的渲染器(当然很遥远)/// /// 渲染器接口 /// public interface IRenderHandler { void Clear(Color

2013-12-17 17:51:48 3651 1

原创 基于C#弹幕类射击游戏的实现——(一)概述

好几个月没写博客了~~变懒了 提到弹幕类游戏,想到的最多的应该是《东方Project》系列了吧酷炫的弹幕~~酷炫的弹幕~~我只记得酷炫。。。。 今天我们也来实现一个仿制版,阉割版~ 关于弹幕类游戏,有篇文章写的不错。我也就不重复写了今天首先来实现以下辅助库,因为这些作为游戏的基石,还是很重要的 由于C#没有原生的Vector类(XNA有,但这里不打算用XNA

2013-12-17 17:40:15 6464 4

原创 Alpha-Beta减枝算法

算法:采取MinMax算法,利用Alpha-Beta算法减枝。原理:首先,算法是用于计算出当前下棋所产生的最好价值。那么,定义自己的价值越高数值越大(正),对手的价值越高数值越小(负)下棋是你一手我一手的下,根据下棋的步骤,构建决策树所谓决策树就是:每个节点是当前局面的评分,节点的基数层该自己下棋,偶数层该对手下棋那么,在遍历决策树时,首先要计算第一层能获取的最大值Max要

2013-10-07 20:56:08 3971

转载 一些Unity3D的面试题

1.请描述游戏动画有哪几种,以及其原理。 答:主要有关节动画、单一网格模型动画(关键帧动画)、骨骼动画。       关节动画把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活Quake2中使用了这种动画;      单一网络模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动

2013-07-25 23:08:52 9162 1

原创 自己动手设计代码编辑器——(六)自己写XML管理类

由于C# XML的管理类没怎么看明白,自己写了实用。首先是节点UDataElement,是XML数据中的一个节点节点又可以包含节点。嵌套的包含。还可以添加子节点public class UDataElement { public List Items { get; protected set; } public bo

2013-07-07 23:45:16 1389

原创 自己动手设计代码编辑器——(五)分析源代码

因为之前的设计不合理,就重新开了工程。花了几天时间,重做的进度赶上之前的了今天来说说分析源代码源码分析中会用到的其它东西,之前都介绍过了。接下来看UParser这个类中最后的函数GetNextCut,是用来把源码分析为UCodeCut集合的。其中包括关键字设别,变量设别等等开始UCodeCut cut = new UCodeCut();List cut

2013-07-03 14:25:32 1617

原创 关于代码编辑器重构

之前用于保存代码的内部格式是List而CodeLine是ListCodeCut是string CutString;CutType Type;也就是说,最终保存是,是字符串。而且当时代码保存在Parser里。现在发现很不合理,准备重构几种方案。。。头痛中,还没有想好一个比较好的办法,解决插入、删除、分析、查找这些

2013-07-01 00:07:33 1184

原创 自己动手设计代码编辑器——(四)代码智能提示(自动完成功能)

本来我的编辑器没有自动完成功能的,而且本来应该继续讲代码的载入与分析的。但刚好做了上一节的功能后,我临时做出来了,趁热写出来。代码自动完成,按自己的理解做的,不知道别人是怎么实现的,先讲自己的思路吧。首先,代码自动完成,得记录能自动完成的字符串(比如关键字、变量、类名等等)这又要分:静态载入和动态载入所谓静态载入,就是在程序启动的时候载入的一些确定的字符串比

2013-06-29 21:20:14 10081 1

原创 自己动手设计代码编辑器——(三)撤销与重做

谈到代码编辑器,基本功能的“撤销与重做”是必不可少的。刚好最近看了设计模式的“命令模式”,做这个倒是正好简单来说,就是把所以可以撤销的方法封装成类这里有个简单的测试例子,演示了用“命令模式”实现的“撤销”功能这里是两个基本接口// 命令接口,所有能被编辑器接受命令都从这里继承public interface ICommand{ voi

2013-06-29 19:21:46 4777

原创 自己动手设计代码编辑器——(二)导入源代码

今天去上课时老师居然说,课程设计目前只注重界面上的设计。。。我去。。。谁一开始就设计界面,不注重逻辑???我又不是美工所以果断下了第三方库目前用了Neoforce界面库,如下实现了一些东西,还是很炫的。。代码编辑器基本功能都完成了代码渲染器也完成了代码库虚线的渲染相关的代码分析器里也完成了查找、括号匹配检查、自动缩进等等等等功能。

2013-06-26 19:15:36 1906

原创 自己动手设计代码编辑器——(一)源代代码分析

本来学Unity3D学的好好,愤怒的小鸟刚告一段落,准备着手新的2D游戏开发,结果学校开始做课程设计了。。。刚好我在用Unity3D的时候感觉Mono启动很慢,用VS2012就更慢了,所以想自己做一个代码编辑器当然是简单的那种。。今天先是代码分析:首先把源文件读到内存中,然后通过状态机分析,保存到一个叫CodeCut的集合中(因该做成Cut树要好点)

2013-06-25 01:22:03 3411

原创 Unity3D学习——(二)愤怒的小鸟项目总结

花了几天时间,边做愤怒的小鸟,变熟悉Unity3D今天做完了,算是对Unity3D开发2D游戏有了一个了解Unity3D确实强大了,省了很多功夫。说说在开发过程中遇到的难题:(一)没有用第三方的2D开发插件我是自己弄个Panel来替代的由于Panel默认是躺着的。。。所以所有的GameObject需要先  X旋转90°  Y旋转180°本来是没有

2013-06-24 01:16:04 9033 4

原创 Unity3D学习——(一)让Unity3D中的单位与2D像素对应

学习Unity3D有两三天了,突然想起来该把自己学习的写出博客,方便以后复习。那就从今天开始吧今天遇到一个问题,在用Unity3D做2D游戏的动画播放器的时候(没有用第三方的插件)发现一个问题。Unity3D的中1个单位是一米,但我却不知道是多少像素举个例子,我有一张 400*300的 Texture,我新建了一个分辨率为800*600的工程并且在工程中

2013-06-21 20:39:46 10192 1

原创 设计一门脚本语言——(六)函数

既然有了变量,那肯定想到函数了老规矩,定义一个类Function来表示函数public class Function{        public string Name = string.Empty; 函数名        public int BeginIndex = -1; 函数的入口位置        public int EndIndex = -1; 函数的结

2013-03-06 13:07:42 1470 4

原创 设计一门脚本语言——(五)变量

这一章讲变量,可能内容多一点,因为涉及到的东西多了要定义变量,我们需要先用一个类来表示我们在脚本中用到的值,因为是无类型的。所以建立一个类TValue来表示public class TValue{// 变量类型public enum TValueType{None, // 未知Real, // 数字String // 字符串}public sta

2013-03-06 13:06:29 1017

原创 设计一门脚本语言——(四)简单表达式的处理

现在还不打算实现真真意义的语法分析,况且这玩意我也不太了解~反正没看过编译原理,对这些概念上的东西很模糊。那我们从哪里开始呢?先说说上面最后进行的测试吧,有这么一句@zzzzz=1@@@@@22aaa;这么怪异的句子,大家都知道肯定错的,但确能通过词法分析。因为词法分析不检查脚本语法,仅仅看句子是否符合Token的定义@  zzzzz = 1 这些都是符合的。。所以可以通过

2013-03-06 13:05:27 1215

原创 设计一门脚本语言——(三)词法分析

什么是词法分析?概念一大堆,反正我也不想看。按我自己的来理解吧上面的Tokens,对于我们来说,看得懂,但对于程序来说,仅仅是字符串数组而已。和一长串的代码,也没有什么区别。词法分析器的作用就是赋予这些字符串意义,然后程序能认识它们,知道它们是干什么用的。我们来分析下def 我们知道是定义东西用的,脚本规定好的,书面一点叫“关键字”@表示定义变量main 使我们类的

2013-03-02 21:39:58 966

原创 设计一门脚本语言——(二)预处理

二、预处理开始写代码吧,用什么语言好呢?C、C++、Java、C#?随便,什么顺手就用什么,语言只是工具而已。这学期开了一门新课,.Net程序设计,接触了C#,那就那它吧,也好熟悉这么语言新建一个工程Snail(慢慢来的意思~哈哈),添加一个文件main.cs代码如下:namespace Snail{public static void Main(){C

2013-03-01 17:19:21 1216

原创 设计一门脚本语言——(一)构思

一、构思突然兴起,要设计一门解释型的脚本语言。也没打算考虑运行速度什么的,让我们开始吧。从哪里开始呢?让我们先想想,我们的语言设计成功后,是什么样子def_main // 定义类 @x = 1; // 定义变量 @y = 2; def:new(a, b) // 构造函数x = a;y = b; end def:Total() // 定义

2013-03-01 17:17:23 2728

空空如也

空空如也

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

TA关注的人

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