|
|
这些程序的原理现在都能运用于实践当中咯,都有与其对应的实物,第一次做,这些花了我不到2个月的时间,1个月后我还会研究出许多有趣的东东 (做出实物),要知道自已编写第一个程序是很花精力和时间的.
我从学编程到现在有这些成果,不到1年3个月的时间......下面是我所做的6个成品的介绍,因为太麻烦所以只有三维空间和星球大战进行了封装,三维空间用函数~指针做的.
1:
我的处女作星球大战^_^:
这是一个为了毕业成为星际海盗而考试的小游戏.
只有击中一定数量考试才会及格,及格后游戏中主角就可以成为星际海盗菜鸟.
左键开始,游戏一开始有文字介绍.
上千个星星向我方随机移动,从而模似星际飞行,一张纹理是背景另一张纹理是宇
宙飞船,可以动态的输出数字和游戏介绍,使用点精灵控制点.
使用了索引缓冲区.
要击中的目标做随机移动,用四元数做旋转效果.
每击中一次数字加1,透视投影做碰撞检测.
随机的方式生成上千个星星.
声音使用Sound,键盘使用Input,鼠标使用Input绝对模式,鼠标和键盘可以同时使
用.
开启,检测多重采样和纹理压缩.
A键用来控制打开和关闭光源.默认开,按下关,再按开,再按关....
开始游戏介绍,按照一定时间动态的输出,同时支持加载玩家名称:如:恒星号,开始介绍时点击鼠标右键全部输出.
用空格键暂停游戏(做的不好,当时实力不够,现在的话可能可以使用暂停消息的方法来暂停游戏)
一定时间必须击中一定数量超时算输.
每击中一次物体一定时间物体再随机出现,游戏最多出现9个物体.
时间遍历来控制时间.
有4种粒子效果.
使用1,2,3,4键控制,每击中一个产生一种粒子效果.
因为是最初的产品所以有些地方当时没有做好,比如......^_^
晕,没有美工配合,所以......
2:
3D视角:
使用1,2,3,4键控制视角效果.
第一种为定点炮台模式:位置不动,可以控制面向方向,物体在视角后面移动.
第二种为旁观模式,只有在3和4的时候才可以启动,3,4进行转换,1没有做转换.
第三种为飞行模式,可以按照朝向移动,为了试验,没有做碰撞检测,正方形按照朝
向移动.
第四种为正常3D移动方式,修改了飞行模式的效果.
A键左移,D键右移,W键前进,S键后退.
转换是指:当处于3,4时转换为第2种,可以记录当前正方形所处的位置,当再按下
3,4的时候可以转换回正方形的位置.
当然,如果想的话第二种模式也可以改成可以移动的第一种模式,正方形不
跟踪视点就行了原理是一样的......
线性代数做的.
3:
线段跟踪总量:
使用A,D键控制移动,线跟踪正方形(子父关系).
使用Q键产生一个随机的生命(总量),使用3键产生一个随机的减少的血量(每次减
少),使用1键点击一次减少一次,总量会跟据应减少的数量而变少,使用3键可以随
机再产生应差少的血量,使用2键线可以回到初始状态.
当总量变为0的时候线段亦变为0.
4:
随机跟踪:
程序里有4个正方形,一个是头,三个是尾,左中右各一个,后面三个正方形跟踪第一
个正方形.
移动方式和朝向随机.
Q键做随机的线性插值,最终插值随机,W键做反向插值.
使用线性代数做的.
按键有些小地方做的可能不太完美,事实上这些不完美的地方是可以消除的,只是这
里没做,消除方法和第一个游戏星球大战的开光灯的原理差不多.
5:
权重值:
按1键增加权重按2键减少权重,增加,减少0.01.
一个圆柱体贴上纹理,用距阵调色板控制权重值.
没有美工所以没有网格,也就没有相关的技术实现,权重是在皮肤后的时候用的,没
办法只好做到这种程度了~.~
虽然确实因为客观条件的关系无法实现,但是,要想在实际中完全实现还是得做不
少实验......
在加载皮肤后,下一步时,使用权重技术.
关节:
只做了一个关节,别的关节都是大同小异.
用1,2,3,4来移动不同的关节,最上面的关节的父关节和下面关节的父关节方法是
一样的.只是个演示程序所以后面就没做......后面"合理"的分布就可以了
6:
链表:
链表生成几个结点每个结点为一个圆柱体,使用的是链表的尾加方式,x:由左到右
依次排列,遍历链表生成圆柱体.
右边方框显示当前的FPS值.
p->next->reverse = p->reverse ->next= p;
现在正在做第7个程序,碰撞检测,得到物体的数据结构x,y,z然后用我的人物和其进行碰撞,将所有相似的物体做成一个链表,检测结果应该非常的精确,进行前后遍历,速度应该也很可观.做完这个后准备做一个可以跟据物体高低缩放阴影跟据点光源位置产生阴影位置,准备半个月内完成,等1个月内还能做出一些有趣的技术实现的演示程序^_^
请问如果我用现在这6个去面试(找工作)的话成功机率是多少啊?当然我去面试的时候会再完成1-2个后再去,这些程序视觉效果不好地,没有美工我也不会编写插件,当然加载.x文件是没问题,但是也是需要美工的,只是用这种方法做东西不符合我的性格*_*
这些技术和与其相对应的理论我是会的,像指针啦线性代数叉积向量啦,实践是没有问题的,实物都做出来的呢.
我对自已信心不够,所以希望大家能提点意见,我的QQ名和这里的一样也叫丸子.
听人家说要操作指针需要1-2年的工作实践经验,但是我明显不够哦,不过我做的好像......应该.....算是指针......还有我那神似形不似的双向链表......点积还没掌握(没实物)但是过阵子开始做光线方面东东的时候会用到,DotProdeuct3.
三维空间视角的头文件.
class ZCamera
{
D3DXVECTOR3 m_vEye;
D3DXVECTOR3 m_vLookat;
D3DXVECTOR3 m_vUp;
D3DXVECTOR3 m_vView;
D3DXVECTOR3 m_vCross;
D3DXVECTOR3 w_wView;
D3DXMATRIXA16 m_matView;
public:
ZCamera();
public:
D3DXMATRIXA16* SetView( D3DXVECTOR3* Eye,D3DXVECTOR3* Lookat,D3DXVECTOR3* Up);
D3DXMATRIXA16* RotateLocalX( float angle );
D3DXVECTOR3* GetVector(){return &m_vEye;}
................................................
[em6] |
|