Unity 製造moba英雄聯盟戰爭迷霧2

2021-09-11 03:53:38 字數 3573 閱讀 6782

首先我們需要把這些生成的資料讀取出來儲存到乙個int二維陣列裡

**如下

public

vector2 startpos;

//地圖開始點

public

vector2 scale;

//地圖大小

public

texture2d rendertexture;

//用來渲染的戰爭迷霧貼圖

private

texture2d origntexture;

//原始沒迷霧貼圖

public node[

,] map;

//地圖可見度陣列

public

int[

,] bytemap;

//地圖障礙物和可行走點地圖

void

init()

//初始化因為是demo我沒有獨自去生成地圖資料然後讀取,所以開始遊戲的時候再去生成地圖資料

if( bytemap[j/ pre, i/ pre]

>0)

break;}

}if(!flag)

//如果不可以走就是讓bytemap對應點的值-40

if(bytemap[j / pre, i / pre]

<=0)

}}}

origntexture.filtermode = filtermode.point;

origntexture.wrapmode = texturewrapmode.clamp;

origntexture.()

;}

需要建立乙個node類這個類是當乙個點可以見的時候給對應的intensity賦值,intensity越大就是這個點能見度越大,x y是代表的對應地圖點下標

public

class

node

public

node()

public

int x

}public

int y

}public

int width

}public

int height

}}

/// 

///

///

/// 玩家的點

/// 障礙物的點

/// 要判斷是否可見的點

bool

isvisable

(node player,

node obstacle,

node target)if(

distance

(player,target)

>radius)if(

distance

(player, target)

<=

distance

(player, obstacle))if

(player.y == obstacle.y && target.y == obstacle.y)

if(obstacle.x < player.x && obstacle.x > target.x)}if

(obstacle.x==player.x&&target.x==obstacle.x)

if(obstacle.y < player.y && obstacle.y >target.y)}if

(player.x == obstacle.x && target.x == obstacle.x)

}//在下面我把目標點和障礙物位置分成四個象限然後每個象限用不同的計算方式來計算是否可見

int dir =0;

//0障礙物在人右邊,1在人左邊

dir = player.x > obstacle.x ?1:

0;double a =0;

bool isvisible =

true;if

(obstacle.y > player.y && dir ==0)

}else

if(obstacle.y > player.y && dir ==1)

}else

if(obstacle.y <= player.y && dir ==1)

}else

if(obstacle.y <= player.y && dir ==0)

}return isvisible;

}

先獲得要遍歷的點

//因為乙個英雄只關心自己周圍的點是否可見所以我們先獲得玩家的點和周圍要遍歷的點

int posx =

(int)(

(pos.x - eyemanager.instance.startpos.x)

/ eyemanager.instance.accuracy)

;//玩家的x下標

int posy =

(int)(

(pos.y - eyemanager.instance.startpos.y)

/ eyemanager.instance.accuracy)

;//玩家的y下標

int xstart =

(int

)(posx - radius <0?

0: posx - radius)

;//x軸開始遍歷的下標

int ystart =

(int

)(posy - radius <0?

0: posy - radius)

;//y軸開始遍歷的下標

int xend =

(int

)(posx + radius >= eyemanager.instance.scale.x ? eyemanager.instance.scale.x -

1: posx + radius)

;//x軸結束遍歷的下標

int yend =

(int

)(posy + radius >= eyemanager.instance.scale.y ? eyemanager.instance.scale.y -

1: posy + radius)

;//y軸結束遍歷的下標

public node[

]calcvisiblenodes

(int[,

] map)

//傳入地圖障礙物資料來計算

}}

for

(int i = xstart; i <= xend; i++)}

if(isvisible )

}}return visibles;

}

由以上方法我們可以獲得玩家周圍的可見點和可見度

for

(int i =

0; i < nodes.count; i++

) nodes.

clear()

; rendertexture.()

;//這就是我們要的戰爭迷霧貼圖

英雄聯盟英雄名單部分功能

html部分 英雄年齡性別 籍貫位置 台詞操作 盲僧2漢子 德瑪西亞 打野,上單 雙眼失明絲毫不影響我裝逼 詳情修改 刪除新增 亞索2漢子 德瑪西亞 上單,中單,輔助 死亡如風常伴吾身 詳情修改 刪除新增 琴女2妹子德瑪西亞 輔助我用意念傳達給你 詳情修改 刪除新增 css 段 a5 button ...

臨摹英雄聯盟網頁

臨摹英雄聯盟網頁 老師叫我們挑幾個網頁來做,我本來是想只挑一些簡單的做做就好了,沒想到做完這後老師叫我重新再找一張遊戲的網頁,這遊戲的名字叫 英雄聯盟 當時心想好像看起來也不算太難,就拿這張網頁給老師分析分析,結果給老師把很多細節給講了出來,當時我就懵了,我心想我為什麼要把那麼難的網頁給他看,一直覺...

華為OJ,英雄聯盟

題目描述 英雄聯盟是一款十分火熱的對戰類遊戲。每一場對戰有10位玩家參與,分為兩組,每組5人。每位玩家都有乙個戰鬥力,代表著這位玩家的厲害程度。為了對戰盡可能精彩,我們需要把玩家們分為實力盡量相等的兩組。一組的實力可以表示為這一組5位玩家的戰鬥力和。現在,給你10位玩家的戰鬥力,請你把他們分為實力盡...