菜鳥也學Ogre 超級打地鼠

2021-09-30 14:52:20 字數 1835 閱讀 6719

做為ogre學習的乙個小總結,最後把打地鼠這個小遊戲實現一下。要看懂**的話必須先把wiki上的初級教程都搞定。**的實現主要參考了打工仔的那本書,但在其上做了一些修改,使用的是wiki上的框架,環境是ubuntu11.10.下面是**:

主遊戲類:

//地鼠類

shrewmouse.h

#ifndef __shrewmouse_h__

#define __shrewmouse_h__

#include

class shrewmouse

;public:

shrewmouse(const std::string & name, ogre::scenemanager * sm, ogre::vector3 lpos);

~shrewmouse(void);

void update(float interval);

void enable(void);

state getstate(void);

bool hit(void);

private:

//bool _isenable;

ogre::entity * _ent;

float _time;

ogre::animationstate* _animstate;

state _state;

};#endif

shrewmouse.cpp

#include "shrewmouse.h"

shrewmouse::shrewmouse(const std::string & name, ogre::scenemanager * sm, ogre::vector3 pos):_time(0.f),_state(sleep)

void shrewmouse::update(float interval)

}shrewmouse::~shrewmouse(void)

void shrewmouse::enable(void)

}shrewmouse::state shrewmouse::getstate(void)

bool shrewmouse::hit(void)

return false;}

地鼠管理類

shrewmousemanager.h

#ifndef __shrewmousemanager_h__

#define __shrewmousemanager_h__

#include

class shrewmouse;

class shrewmousemanager

;#endif

shrewmousemanager.cpp

#include "shrewmousemanager.h"

#include "shrewmouse.h"

bool shrewmousemanager::hit(int num)

shrewmousemanager::shrewmousemanager(ogre::scenemanager * sm):_sm(sm), _time(0.f)}}

shrewmousemanager::~shrewmousemanager(void)}}

void shrewmousemanager::update(float interval)

for(int i=0; i<9; ++i)}}

cmakelists.txt

最後的的效果是9個地鼠輪番出現,qweasdzxc對應9個地鼠,打中的話地鼠就會變色,同時獲得10分。

菜鳥也來學演算法之氣泡排序

氣泡排序可以說是眾多排序演算法之中較簡單的一種,思想與選擇排序類似,選擇排序每一次遍歷取出最小的數放在首位 暫時這樣認為 而氣泡排序則每一次遍歷把最大的數放在陣列的最後乙個位置,舉個例子 12,56,34,789,8,28 第一次遍歷 12,34,56,8,28,789 第二次遍歷 12,34,8,...

菜鳥學脫殼

一般舊版upx脫殼 說明 upx典型的入口pushad,對應出口popad,一般都要經過jmp跨段跳躍到達程式的真正入口。工具 ollydbg v1.10 方法1 逐步跟蹤,f8一直往前走,不讓程式往回走,想往回就f4跳過,直到遇到popad後邊跟 乙個跨段跳躍 就是跳的很遠 的jmp,期間可能有多...

菜鳥 也談談多執行緒

做開發快一年了,大部分都是有的dan執行緒,也從來沒有考慮去去多執行緒處理一些東西。今天突然 看到 petshop的多執行緒 就貼出來吧 static void main console.writeline processing started.press enter to stop.console...