自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦幻DUO的游戏开发之路

“学者们都是很单纯的,如果他们不单纯的话,戏剧般的灵感就不会造访他们了。” ——东野圭吾

  • 博客(47)
  • 资源 (6)
  • 收藏
  • 关注

原创 C++ 标准IO库:面向对象的标准库

1、继承:基类->派生类2、3个头文件3、9个标准库类型4、IO对象不可复制或赋值

2015-01-31 17:27:07 493

原创 C++ 指向函数的指针

1、用typedef简化函数指针的定义typedef bool (*cmpFcn)(const string &, const string &);cmpFcn p1;//p1是函数指针2、函数指针形参void useBigger(const string &s1, const string &s2, bool(*pf)(const string &, cosnt string &

2015-01-31 17:03:18 425

原创 C++ 重载函数:实参类型转换

一、转换等级1、精确匹配2、通过类型提升char to int to float long to double 等短到长的提升float和long优先级一样,可以函数重载,但不能通过类型提升来区分重载函数,具有二义性3、通过标准转换A、从任何整数类型或枚举类型到其他整数类型(除了提升)B、从任何浮点类型到其他浮点类型(除了提升转换)C、从任何整数类型到

2015-01-31 14:48:43 709

原创 C++ 重载与作用域

1、变量屏蔽(变量隐藏)2、函数屏蔽(函数隐藏)而不是函数重载3、每一个版本的函数重载都应该在同一个作用域中声明4、注意:局部地声明函数是一种不明智的方法-函数的声明应该放在头文件

2015-01-31 12:33:31 550

原创 C++ 类的成员函数

1、函数原型必须在类中定义2、函数体在类中定义函数体或在类外定义函数体(一般都是在类外定义函数体,只有函数很短的时候才会在类里面定义函数体)3、this指针表示当前的类对象4、const成员函数:在函数头后面加上const表示该方法不会修改成员函数

2015-01-31 10:55:09 424

原创 C++ 内联函数inline

1、内联函数避免函数调用的开销2、把内联函数声明和定义只放入头文件,不能放入源文件3、注意:内联说明对于编译器来说只是一个建议,编译器可以选择忽略这个建议,递归函数、大函数不太可能在调用点内联展开

2015-01-31 10:37:33 372

原创 C++ 函数声明

1、一个函数只能定义一次,但是可以声明多次。2、函数原型:函数返回类型、函数名、形参列表函数声明中可以省略形参名,但必须有形参列表(就是指明形参的类型)3、函数在头文件中声明,在源文件中定义定义函数的源文件中也要包含声明头文件4、默认实参既可以在函数声明也可以在函数定义中指定默认实参,但不可以同时指定默认实参,只能在一方指定通常是在函数声明中提供默认实参

2015-01-31 10:19:01 702

原创 C++ return语句

1、两种形式return ;return 返回值;2、具有返回值的函数1、主函数main的返回值2、返回非引用类型int fun(int &x);//返回的是复制3、返回引用int& fun(int &x);//返回的就不是复制一份,返回的是x自身!4、千万不要返回局部对象的引用5、引用返回左值fun(a)=6;//返回引用时可以作左值6、千万不

2015-01-31 10:07:52 384

原创 C++ main函数:处理命令行选项

int main(int argc, char **argv)//也可以写成char *argv[],argc是个数,argv每个选项是一个字符串注意:argv[0]是命令,不是命令行选项

2015-01-31 10:02:12 883

原创 C++ 函数参数传递-数组形参

1、三种传递数组的写法下面这三种写法本质是一样的:void fun1(int *x, size_t size);void fun2(int[] x, size_t size);void fun3(int[10] x, size_t size);//这个10其实是没用的,编译器会忽略掉2、形参的长度会引起误解3、数组实参-数组会悄悄地转化为指针4、通过引用传递数组vo

2015-01-31 09:05:06 1040

原创 C++ 函数参数传递-vector和其它容器类型的形参

1、不要使用普通的非引用vector形参!2、要使用引用形参传递vector3、传递vector的迭代器更好

2015-01-31 08:31:23 1154

原创 C++ 函数参数传递-传递指向指针的引用

#include//不是交换两个数,是交换两个int类型的指针void ptrswap(int *&v1, int *&v2)//v1、v2是int类型的指针{ int *tmp = v2; v2 = v1; v1 = tmp;}int main(){ int i = 10; int j = 20; int *pi = &i; int *pj = &j; ptrswa

2015-01-31 00:26:48 459

原创 C++ 函数参数传递-非引用形参

非引用形参:1、普通形参非const普通形参:可以传所有类型的普通实参cosnt普通形参:可以传所有类型的普通实参,但不能修改const普通形参的值2、指针形参非const指针形参不能通过非const形参来修改const实参,因此只能传非const指针实参cosnt指针形参可以 传所有类型的指针实参,但不能修改const指针形参的值3、复制实参的局限性

2015-01-30 23:59:20 553

原创 C++使用预处理器进行调试

1、预处理指令#ifndef NDEBUGcerr #endif2、附加选项:(项目-右键属性-C/C++-命令行-其他选项)/DNDEBUG3、预定义常量__FILE____LINE____TIME____DATE__4、assert断言assert(条件);//当条件为否的时候会显示错误信息

2015-01-30 22:52:19 491

原创 C++ 标准异常类

1、bad_alloc:#include #include //new 头文件里有异常类using namespace std;class Dog{public: Dog() { parr = new int[1000000]; }private: int *parr;};int main(){ Dog *pDog; try{ for(int i=1;

2015-01-30 20:39:58 643

原创 C++ 异常

1、传统的处理方法if(……)return result;在其他函数:swtich(result){case :....;break;case:...;break;}2、现代的处理方法:处理异常throw异常类型:try{ }catch(int a)//抛出数字{ }catch(const char * a)//抛出字符串

2015-01-30 20:37:22 449

原创 C++ switch

1、switch(这里只能是整数或枚举类型)2、cast 后面必须为常量表达式3、switch内部的变量定义switch(这里可以定义变量)最后一个case或default的冒号后面可以定义变量如果不是最后一个case或default,必须加上{}语句块,才能在语句块里面定义变量。

2015-01-26 00:08:27 923

原创 C++ 显式类型转换运算符

1、static_cast:相当于C语言可以进行的隐式转换。2、reinterpret_cast:相当于C语言不可以进行的隐式转换。(static_cast与reinterpret_cast结合起来就相当于C语言的()强制类型转换)3、const_cast:给指针、引用去掉const。4、dynamic_cast:运行时的类型转换,只用于面向对象的类,转换失败就返回

2015-01-25 23:43:04 610

原创 Unity 二维数组

Unity二维数组定义格式:类型名 [,] 数组名 = new 类型名[rowSize,colSize];如定义rowSize行,colSize列的二维数组:int [,] array = new int[rowSize,colSize];调用:int[1,1];

2015-01-24 23:41:56 10978

原创 Unity 半圆抛物线运动

Vector3.Slerp 球形插值static function Slerp (from : Vector3, to : Vector3, t : float) : Vector3通过t数值在from和to之间插值。返回的向量的长度将被插值到from到to的长度之间。t的值在[0...1]。C#代码:using UnityEngine;using Sys

2015-01-22 23:38:00 2953

原创 C语言 图解插入排序

2015-01-21 19:42:43 797 1

原创 Unity Coroutine协同程序

Coroutine也称协同程序或协程,可以和主程序并行运行,和多线程有些类似,但是在任一时刻只会有一个协同程序在运行,别的协同程序则会挂起。协同程序可以用来实现一段程序等待一段时间后继续运行的效果,或等待某个条件为true继续运行。StartCoroutine:启动一个协程StopCoroutine:终止一个协程StopAllCoroutines:终止所有协同程序WaitForSe

2015-01-21 19:28:09 652

原创 C++ 多维数组

int ia[rowSize][colSize];方法一:cout 方法二:int (*p)[4];p = ia;for(p = ia; p != ia + 3; ++p){ for(int *q = *p; q != *p + 4; ++q) cout << *q << " "; cout << endl;}方法二:typedef int i

2015-01-19 13:18:40 524

原创 Unity 被遮挡Collider如何触发OnMouseEnter事件

在做游戏的时候发现,当一个Collider被别的Collider挡住的时候,被挡的Collider因为光线投射不了,触发不了OnMouseEnter事件的。查询Unity Scripting API手册,可以看到OnMouseEnter函数有一句描述:This function is not called on objects that belong to Ignore Raycast l

2015-01-18 14:08:14 6309 8

原创 C++ 新旧代码的兼容

旧代码:数组和C风格字符串新代码:vector和string相互转换:C风格字符串->string:string st("Hello World");st = st + " bill";数组->vector:const size_t arr_size = 6;int int_arr[arr_size] = {0,1,2,3,4,5};vector ive

2015-01-17 20:05:09 532

原创 C++ 创建动态数组

静态数组放在堆栈,动态数组放在堆-自由存储区c语言创建动态数组:int *p = (int *)malloc(n * sizeof(int));free(p);c++创建动态数组:int *pia = new int[n];//内置类型没有初始化string *psa = new string[10];//默认的构造函数初始化int *pia2 = new int[

2015-01-17 19:12:48 1021

原创 C++ 指针和const限定符

1、指向const对象的指针const double *p;//指向的必须是const的对象2、const指针double * const p = π//必须初始化3、指向const对象的const指针const double * const p = &a;//必须初始化,且指向的必须是const的对象4、指针和typedeftypedef string *pst

2015-01-17 10:40:01 441

原创 C++ 标准库bitset类型

1、bitset对象的定义和初始化用string对象初始化bitset对象用unsigned值初始化bitset对象2、bitset对象上的操作测试整个bitset对象访问bitset对象中的位对整个bitset对象进行设置获取bitset对象的值输出二进制位bitset a;//32位二进制,全部都是0bitset b(0xffff

2015-01-16 10:32:24 505

原创 二进制和十六进制

十进制:权值:各位表示10的幂(1、10、100、1000……)二进制:权值:各位表示2的幂(1、2、4、8、16、32……)十六进制:权值:各位表示16的幂(1、16、256……)二进制转十进制和十六进制转十进制:各权值*该位的数字相加起来十进制转二进制和十进制转十六进制(原理都是逆序排序):逆序排序法:十六进制与二进制的联系:四位二进

2015-01-15 22:55:56 493

原创 C++ 迭代器

不是所有的容器都支持下标访问,但是所有容器都支持迭代器vector::iterator iter = v.begin();//begin()返回第一个迭代器指向第一个数据元素*iter = 9;//迭代器实际上是一个指针iter++;下标方式访问:for(vector::size_type ix=0; ix != v.size(); ++ix)cout 迭代器访

2015-01-15 20:19:47 385

原创 C++ vector类型

vector是动态数组,是一个类模板1、vector对象的定义和初始化vector name;vector name(10);//初始化大小为10vector name(10,2);//初始化10个22、vector对象的操作vector::size_typename.push_back(2);//把2添加到末尾vector下标操作不添加元素

2015-01-15 16:37:46 483

原创 c++ 标准库string类型

1、string对象的操作s.size() 求出string对象的长度s.empty() 判断string对象的长度是否为空,是返回1,否返回02、string关系操作符>、3、string对象的定义和初始化string s1;string s2(s1);string s3("hello");string s4(n,'c');//n个字符c组成的字符串str

2015-01-15 11:41:27 513

原创 C语言指针图解

2015-01-13 19:41:36 674 1

原创 C++头文件

头文件用于声明,不用于定义:1、类的定义(也叫声明)2、外部变量的声明3、函数的声明4、但一些const对象和可以定义在头文件里防止头文件重复包含:#ifndef _DEMO_H#define _DEMO_H#endif

2015-01-12 21:26:32 468

原创 Unity自定义鼠标指针图案

1、下载Axialis CursorWorkshop。2、用Axialis CursorWorkshop将.cur或.ani的光标文件转成PNG文件。3、将PNG图片导入Unity,Texture Type设为Cursor,Format设为TrueColor。4、Edit-Project Setting-Player,Deafault Cursor设为上面的PNG图片即可。

2015-01-11 14:30:47 2985

原创 Unity用鼠标滑轮控制摄像机缩放画面

using UnityEngine;using System.Collections;public class Scale : MonoBehaviour { public float ScaleSpeed = 10.0f; void Start () { } void Update () { //Zoom out if (Input.GetAxis("Mo

2015-01-11 00:05:29 4005

原创 Unity用GUI在角色头上显示名字(C#脚本)

using UnityEngine;using System.Collections;public class wenzi : MonoBehaviour { //主摄像机对象 private Camera camera; //NPC名称 public string name; //主角对象 GameObject hero; //NPC模型高度 float npcHe

2015-01-10 22:31:22 5472

原创 Unity如何显示中文

步骤:1.安装bmfont和NGUI。打开bmfont,选择options菜单->Font settings,界面如下:2.选择“微软雅黑”(注意不是“@微软雅黑”,没有“@”符号,否则之后导出的字体是横向的),unicode编码,如下图:如果觉得字体比较细,想加粗点,那么你可以把Bold打钩,outline thickness的值增大为2。3.

2015-01-09 23:11:21 6065

原创 Unity3D无缝拼接小技巧

方法如下:1、选择游戏对象,按Ctrl+D复制。2、按住V键(即Vertex顶点),你会发现鼠标移动到距离某个顶点较近时某个顶点就会被选中。拖动被选中顶点(此时,V键不能松开),将其拖到要拼接的顶点处即可,Unity会自动将它们连接到一起。

2015-01-08 11:58:50 7138

原创 Unity导入模型一面有贴图另一面透明的解决方案

出现这种情况是因为模型用了双面材质,而Unity不支持双面材质。故导入模型到Unity中,会出现一面有贴图,另一面透明的情况。解决方法:1、自定义一个双面材质Shader,代码如下:Shader "Nature/Vegitation Vertex Lit" { Properties { _Color ("Main Color", Color) = ...

2015-01-08 11:55:05 16469 4

win7 64位汇编开发环境合集

集成了所有win7 64位下的汇编开发环境的程序,包括了DOSBOX、edit、masm、link、debug。使用说明可以见本人博文:《win7 64 汇编开发环境搭建》: http://blog.csdn.net/sinat_24229853/article/details/50133741

2015-12-01

DirectX11程序初始化

DirectX11程序初始化,出自龙书,本人博客有DirectX11学习笔记:http://blog.csdn.net/sinat_24229853

2015-09-28

泡泡堂 DirectX11 Demo

本程序是模仿泡泡堂游戏功能的Demo,使用DirectX11图形库和C++语言,在VS2010环境下编译。4500行左右。更多内容见本人博客:http://blog.csdn.net/sinat_24229853

2015-09-06

C++实现状态驱动智能体设计——消息功能

设计精度的游戏趋向于事件驱动。即当一个事件发生了(武器发射了子弹等),事件被广播给游戏中的相关的对象。这样它们可以恰当地做出反应。而这个消息可以是立即执行,也可以设定多久后才执行。更多详情参见本人博客:http://blog.csdn.net/sinat_24229853

2015-08-17

有限状态机(FSM)

游戏人工智能,状态驱动智能体设计——有限状态机(FSM),编译环境:VS2010。本人博客:http://blog.csdn.net/sinat_24229853

2015-08-17

C++控制台网络聊天室源代码

用C++和socket编程、多线程技术组成的控制台网络聊天室,1000行之内。之所以在控制台运行而不是用MFC等图形库是为了方便从底层理解socket编程和多线程,只有从深入理解技术原理后才能在实际应用如鱼得水。本人大一学生,我的CSDN博客是http://blog.csdn.net/sinat_24229853

2015-04-25

空空如也

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

TA关注的人

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