学OGRE写引擎--开篇
摘要:OPENGL学了一些之后就直奔现成的引擎。。搞的现在图形学知识也不扎实,引擎的架构也不熟,引擎又有一大堆,又学不完,学不精。所以感觉还是多了解些底层的实现原理会好一些,这样知道底层是如何实现的,在引擎中其实只是调用一个封装好的API,再设置一些参数就OK了。如果不了解底层实现原理,那么当遇到问题时你就很难想到错误会是怎么发生的。OGRE是一个面向对象的图形渲染系统,据说写的比较复杂,但其中合理的应用的设计模式是值得学习的,因此,现阶段的一个目是基于DX来实现一个自己的小游戏引擎。其中不免要借鉴一下OGRE的东西。希望能有所进步。
阅读全文
Unity3D写雷电游戏(五)
摘要:己方的飞机控制已经初步完成了,现在要加入敌机了。理论上应该有两种方式:1.预先设定,就是在编辑器里在你想要的位置上加上敌方的攻击单位2.动态生成,根据游戏进行的时间来控制敌方攻击单位的产生。这边采用第2个方式来产生,有一些地面单位倒是可以用第一种方式来产生。我们首先要设置一个敌机的产生位置,用空的object可以随意的定一个坐标。using UnityEngine;using System.Collections;public class EnemyManager : MonoBehaviour { public GameObject m_EnemyPre; public ...
阅读全文
Unity3D写雷电游戏--修改飞机尾部火焰
摘要:原来那个用Unity3D自带的火焰老改不出想要的效果,去看了一个教程,调出一个还好的感觉。 最后的效果是:
阅读全文
Unity3D写雷电游戏(四)
摘要:这次先加入子弹的发射吧,没用模型,先用的一个capsule的prefab代替吧。一想到各种武器之间的随意切换,就不由的想到了设计模式中的Strategy模式。有关策略模式的详细介绍可以通过百度和维基来学习。这个模式其实和State模式差不多。Weapon类是所有武器的基类,新的武器继承于它,设置发射点,子弹模型,然后实现Fire函数就可以了。WeaponManager用于管理所有武器,切换武器。using UnityEngine;using System.Collections;public class WeaponManager : MonoBehaviour { public...
阅读全文
一个简单的Shader
摘要:看了MS.Press.DirectX.9.Programmable.Graphics.Pipeline这书。开启Shader之路吧。#include <Windows.h>#include <d3dx9.h>#include <MMSystem.h>#define SAFE_RELEASE(p) {if(p){p->Release();p=NULL;}}#define SAFE_DELETE(p) {if(p){delete p;p=NULL;}}#define SAFE_DELETE_ARRAY(p) {if(p){delete [](p);p=NU
阅读全文
模型的同名材质冲突检测
摘要:#include <Ogre.h>using namespace Ogre;#include "OgreDefaultHardwareBufferManager.h"DefaultHardwareBufferManager* bufferManager = 0;std::ofstream outfile;int index = 0;class MyReGroupListener:public ResourceGroupListener{public: void resourceGroupScriptingStarted(const String& gro
阅读全文
一个简单的DX的例子
摘要:编辑器加载中#include <Windows.h>#include <d3dx9.h>#include <MMSystem.h>LPDIRECT3D9 g_pD3D;LPDIRECT3DDEVICE9 g_pd3dDevice;LPDIRECT3DVERTEXBUFFER9 g_pVB;struct CUSTOMVERTEX{ FLOAT x, y, z; DWORD color;};#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)HRESULT InitObject(){ CUSTOMVERT
阅读全文
随机生成路径(二)
摘要:对上一个版本更改了一下,使得原动作可以自定义。#baseAnimation.pyimport math#define world directionDir_Up, Dir_Right, Dir_Down, Dir_Left = range(0, 4)#define move direction to localMove_Left, Move_Forward, Move_Right = range(-1, 2)class BaseAnimation: def __init__(self, move_dir, v_step, h_step): #定义动作的横向和纵向跨度 ...
阅读全文
MFC+Flash图片浏览器
摘要:import flash.events.Event;import flash.display.MovieClip;import flash.events.MouseEvent;import flash.events.ContextMenuEvent;import flash.display.Loader;import fl.motion.MatrixTransformer;import flash.display.Sprite;import flash.display.Shape;import flash.system.LoaderContext;import flash.display.Di
阅读全文
Unity3D写雷电游戏(三)
摘要:现在开始真正的游戏元素的编写了。第一步,让飞机动起来。首先是飞机的前进,通常2D中的做就是背景的循环滚动。在3D中我们可以让摄像机移动,背景我们可以做超一个大地形。。在地形上摆一些固定的东西。 // Update is called once per frame void Update () { TurnLeft = false; TurnRight = false; if (Input.GetKey(KeyCode.W)) { Vector3 screenPos = Ca...
阅读全文
Unity3D写雷电游戏(二)
摘要:通过上一篇那些资料的学习,现在假定你能比较熟练的操作unity3D了。本人也是Unity3D的初学者,这边记录一下我的游戏制作经过,希望对别人有所帮助吧,欢迎大家一起讨论。一、搭建游戏的框架。一般的游戏都可以分为四个场景:1.开始界面2.游戏场景3.暂停界面4.结束界面开始界面,就是存放开始菜单的地方了,游戏场景就是游戏的主场景,游戏的主要元素都在这边体现,暂停和结束画面我就不多说了。更多的还有在开始和主游戏场景之间加入过场动画等等。当然你也可以在暂停界面中插入广告:)我们会发现这几个场景之间其实就是切换来切换去的关系。如果知道设计模式中的State模式,就会发现跟这个很象。可以通过State
阅读全文
Unity3D写雷电游戏(一)
摘要:一个课程项目,用Unity3D写雷电游戏,感觉有点大材小用。用3D的引擎来写一个2D小游戏,不过会方便许多,可以方便的添加三维的逻辑,比如有地面上的攻击单位,你却打不到它,也可以让飞机从地面升空之类的。国内有关unity3D的资源不是很多,如果遇到问题还是上google,可以找到挺多的解决方法。国内看到一个不错的Unity3D的网站:http://unity3d8.com/unity3d可以在这里找到挺多入门的资料,还有一些作品。好像几乎所有的引擎都是以FPS游戏入门的。。想想也是。。3D不就是为了在虚拟世界漫游,而FPS则就是在这基础之上设计的游戏。学习Unity3D也是如此,做一个FPS,
阅读全文
随机生成路径
摘要:问题:给定几个元动作及起始点、终止点、还有起始方向,生成一条随机行走的路径。暂时用最笨的解决方法,回溯法,找到一条就返回。现有元动作,左转,直行,右转.用pygame进行图形显示。扩展性有点差,每个方向都要根据当前的方向和元动作进行判断。import pygameimport mathimport randomblack = (0, 0, 0)white = (255, 255, 255)red = (255, 0, 0)green = (0, 255, 0)blue = (0, 0, 255)yellow = (255, 255, 0)done = False#define move dir
阅读全文