實現乙個均勻Tile的卷軸顯示引擎

2021-05-24 00:51:42 字數 774 閱讀 5702

遊戲的卷軸效果主要有兩種形式,一種是將遊戲分為若干個場景的頁面卷軸,比如fc上的洛克人,當人物走到邊緣時,就會切換整個場景;一種就是魂斗羅式的那種均勻平鋪的卷軸,這種捲動更為平滑。因為我要用在2.5d顯示引擎中,只能選擇第二種卷軸技術——均勻tile卷軸。

1. 卷軸要捲動哪些東西

首先要清楚捲動的是什麼東西,比如下面的乙個kok1的截圖:

這是乙個典型的2.5d遊戲介面,這個介面上的所有元素全都是由位圖所組成的,但是不難分析出實際要捲動的只有地面的點陣圖。因為傳送門和柱子、樹等等都是可以遮擋住人的,即渲染順序是:

(1) 根據世界座標捲動的地面貼圖

(2) 玩家單位、建築、環境元素單位以從上至下的順序渲染,這樣就會產生2.5d效果,即近景遮擋住遠景。

2. 均勻平鋪顯示引擎的設計與實現

由上圖的地板不難看出,其實這些地面是由一小塊一小塊拼接而成的,這樣可以使位圖得以重用,就像紅警95的地圖編輯器一樣,乙個地形可以在地圖中反覆出現。所以我們實際要有乙個位**件來存放這些一塊一塊的地板,比如我隨便畫了這個(第乙個是我自己用畫筆畫的,後面兩個是截圖截的,效果都一般,可見優秀美工的重要性),有三塊86*40的地板:

然後在程式中,我們需要建立乙個顯示表面的陣列來分別存放這三個地板。

接著,定義乙個int陣列來存放地圖中地形的索引,比如我打算要建立乙個3×3塊地板的地圖,則:

這樣這個地圖等於是第一行都是第0塊地板,第二行都是第1塊地板,第三行都是第2塊地板。

現在就要建立世界表面,把世界載入到乙個單獨的大表面上:

3. 放上乙個截圖,是完成的效果。

乙個均勻繫結 cpu 的 shell

有時,由於架構設計或其他業務本身特點原因,導致有些應用是由cpu很不均衡 處理集中在乙個cpu是上 白白浪費其他cpu在睡覺。乙個簡單辦法就是繫結到多個cpu 繫結 cpu 是乙個不錯技巧,但是不是殺手鐗,一般能提高10 效能 更好地辦法是優化架構,對於網路處理性程式,繫結網絡卡中斷。這裡分享乙個小...

生成乙個均勻的 隨機的圓形

posted on 2015年5月24日 by jinchao 最近在工作中遇到這麼乙個問題 在遊戲場景中有乙個怪物生成點,這個生長點產生的怪物均勻分布在半徑為r的圓形內,這個隨機演算法應該如何生成?看起來很簡單,隨手寫了乙個 define rand float rand rand max void...

乙個顯示選單的程式

建立這個程式的步驟 1 在命令列提示符後鍵入vi mymenu 這個命令啟動vi,並將程式命名為mymenu。2 在空白也出現後按i。這個命令切換到插入模式下工作。3 在空白頁上輸入如下的linux bin bash clear echo echo the telephone book echo e...