牆體拉伸部分**如下:
function () else
//p、p0、p1為兩條連線的三個點
var p = polygons[i].points[k].point
.clone();
var p0 = polygons[i].points[j].point
.clone();
if (j + 1 >= polygons[i].points
.length) else
var p1 = polygons[i].points[k].point
.clone();
//根據p,p0,p1得出兩條線
var a01 = p.clone().sub(p0.clone());
var a02 = p1.clone().sub(p0.clone());
var matrix = new three.matrix4();
//計算兩條線的夾角,《180°
var angle = math.acos(a01.clone().normalize().dot(a02.clone().normalize()));
var dir = ( p1.x - p.x ) * a01.z - (p1.z - p.z) * a01.x
; //當在下面時,兩方旋轉方向相反,計算出的兩個點也會相反
if(dir>0)
else
cdistance = (300 / 2) / math.sin(angle / 2);
//單位化向量後設定向量的長度使向量到外線的距離為牆體的寬度
a03.normalize();
a04.normalize();
//向量長度相乘
a03.multiplyscalar(cdistance);
a04.multiplyscalar(cdistance);
//得到點並push到陣列中
a03.add(p0);
a04.add(p0);
points.push(a03, a04);
}else else
cdistance = (300 / 2) / math.sin(angle / 2);
a03.normalize();
a04.normalize();
a03.multiplyscalar(cdistance);
a04.multiplyscalar(cdistance);
a03.add(p0);
a04.add(p0);
points.push(a04, a03);}}
}
遊戲開發Day02
在角色對應的指令碼lxmovement中重寫update方法 debug.log horizontal value input.getaxis horizontal vector3 direction input.getaxis horizontal transform.right input.ge...
day02 資料儲存
librarys c和c 的 庫 linux kernel 操作硬體裝置 開發步驟 1.建立android專案 2.設計布局 3.新增事件監聽 4.發布執行 資料儲存 openfileinput string filename 開啟 data data 包名 files目錄下檔案對應的輸入流 sd卡...
設計模式Day02
1 生成器模式 生成器模式也稱為建造者模式。生成器模式的意圖在於將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。生成器模式的程式設計步驟 1 定義乙個產品類 由於不在該類完成product類物件的建立,所以無需顯示定義構造方法。2 定義n個生成器build類 生成器是用來生成p...