Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
b35453bb
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b35453bb
编写于
9月 05, 2017
作者:
M
Mr.doob
提交者:
GitHub
9月 05, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12134 from Mugen87/dev3
Examples: Fix movement in misc_controls_pointerlock.html
上级
1199094b
5622f786
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
34 addition
and
35 deletion
+34
-35
examples/misc_controls_pointerlock.html
examples/misc_controls_pointerlock.html
+34
-35
未找到文件。
examples/misc_controls_pointerlock.html
浏览文件 @
b35453bb
...
...
@@ -74,9 +74,7 @@
<script>
var
camera
,
scene
,
renderer
;
var
geometry
,
material
,
mesh
;
var
controls
;
var
camera
,
scene
,
renderer
,
controls
;
var
objects
=
[];
...
...
@@ -106,9 +104,7 @@
controls
.
enabled
=
false
;
blocker
.
style
.
display
=
'
-webkit-box
'
;
blocker
.
style
.
display
=
'
-moz-box
'
;
blocker
.
style
.
display
=
'
box
'
;
blocker
.
style
.
display
=
'
block
'
;
instructions
.
style
.
display
=
''
;
...
...
@@ -160,6 +156,7 @@
var
prevTime
=
performance
.
now
();
var
velocity
=
new
THREE
.
Vector3
();
var
direction
=
new
THREE
.
Vector3
();
function
init
()
{
...
...
@@ -243,39 +240,39 @@
// floor
g
eometry
=
new
THREE
.
PlaneGeometry
(
2000
,
2000
,
100
,
100
);
g
eometry
.
rotateX
(
-
Math
.
PI
/
2
);
var
floorG
eometry
=
new
THREE
.
PlaneGeometry
(
2000
,
2000
,
100
,
100
);
floorG
eometry
.
rotateX
(
-
Math
.
PI
/
2
);
for
(
var
i
=
0
,
l
=
g
eometry
.
vertices
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
floorG
eometry
.
vertices
.
length
;
i
<
l
;
i
++
)
{
var
vertex
=
g
eometry
.
vertices
[
i
];
var
vertex
=
floorG
eometry
.
vertices
[
i
];
vertex
.
x
+=
Math
.
random
()
*
20
-
10
;
vertex
.
y
+=
Math
.
random
()
*
2
;
vertex
.
z
+=
Math
.
random
()
*
20
-
10
;
}
for
(
var
i
=
0
,
l
=
g
eometry
.
faces
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
floorG
eometry
.
faces
.
length
;
i
<
l
;
i
++
)
{
var
face
=
g
eometry
.
faces
[
i
];
var
face
=
floorG
eometry
.
faces
[
i
];
face
.
vertexColors
[
0
]
=
new
THREE
.
Color
().
setHSL
(
Math
.
random
()
*
0.3
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
face
.
vertexColors
[
1
]
=
new
THREE
.
Color
().
setHSL
(
Math
.
random
()
*
0.3
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
face
.
vertexColors
[
2
]
=
new
THREE
.
Color
().
setHSL
(
Math
.
random
()
*
0.3
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
}
m
aterial
=
new
THREE
.
MeshBasicMaterial
(
{
vertexColors
:
THREE
.
VertexColors
}
);
var
floorM
aterial
=
new
THREE
.
MeshBasicMaterial
(
{
vertexColors
:
THREE
.
VertexColors
}
);
mesh
=
new
THREE
.
Mesh
(
geometry
,
m
aterial
);
scene
.
add
(
mesh
);
var
floor
=
new
THREE
.
Mesh
(
floorGeometry
,
floorM
aterial
);
scene
.
add
(
floor
);
// objects
g
eometry
=
new
THREE
.
BoxGeometry
(
20
,
20
,
20
);
var
boxG
eometry
=
new
THREE
.
BoxGeometry
(
20
,
20
,
20
);
for
(
var
i
=
0
,
l
=
g
eometry
.
faces
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
boxG
eometry
.
faces
.
length
;
i
<
l
;
i
++
)
{
var
face
=
g
eometry
.
faces
[
i
];
var
face
=
boxG
eometry
.
faces
[
i
];
face
.
vertexColors
[
0
]
=
new
THREE
.
Color
().
setHSL
(
Math
.
random
()
*
0.3
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
face
.
vertexColors
[
1
]
=
new
THREE
.
Color
().
setHSL
(
Math
.
random
()
*
0.3
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
face
.
vertexColors
[
2
]
=
new
THREE
.
Color
().
setHSL
(
Math
.
random
()
*
0.3
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
...
...
@@ -284,17 +281,16 @@
for
(
var
i
=
0
;
i
<
500
;
i
++
)
{
material
=
new
THREE
.
MeshPhongMaterial
(
{
specular
:
0xffffff
,
flatShading
:
true
,
vertexColors
:
THREE
.
VertexColors
}
);
var
boxMaterial
=
new
THREE
.
MeshPhongMaterial
(
{
specular
:
0xffffff
,
flatShading
:
true
,
vertexColors
:
THREE
.
VertexColors
}
);
boxMaterial
.
color
.
setHSL
(
Math
.
random
()
*
0.2
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
var
mesh
=
new
THREE
.
Mesh
(
geometry
,
material
);
mesh
.
position
.
x
=
Math
.
floor
(
Math
.
random
()
*
20
-
10
)
*
20
;
mesh
.
position
.
y
=
Math
.
floor
(
Math
.
random
()
*
20
)
*
20
+
10
;
mesh
.
position
.
z
=
Math
.
floor
(
Math
.
random
()
*
20
-
10
)
*
20
;
scene
.
add
(
mesh
);
var
box
=
new
THREE
.
Mesh
(
boxGeometry
,
boxMaterial
);
box
.
position
.
x
=
Math
.
floor
(
Math
.
random
()
*
20
-
10
)
*
20
;
box
.
position
.
y
=
Math
.
floor
(
Math
.
random
()
*
20
)
*
20
+
10
;
box
.
position
.
z
=
Math
.
floor
(
Math
.
random
()
*
20
-
10
)
*
20
;
material
.
color
.
setHSL
(
Math
.
random
()
*
0.2
+
0.5
,
0.75
,
Math
.
random
()
*
0.25
+
0.75
);
objects
.
push
(
mesh
);
scene
.
add
(
box
);
objects
.
push
(
box
);
}
...
...
@@ -324,13 +320,14 @@
requestAnimationFrame
(
animate
);
if
(
controlsEnabled
)
{
if
(
controlsEnabled
===
true
)
{
raycaster
.
ray
.
origin
.
copy
(
controls
.
getObject
().
position
);
raycaster
.
ray
.
origin
.
y
-=
10
;
var
intersections
=
raycaster
.
intersectObjects
(
objects
);
var
isO
nObject
=
intersections
.
length
>
0
;
var
o
nObject
=
intersections
.
length
>
0
;
var
time
=
performance
.
now
();
var
delta
=
(
time
-
prevTime
)
/
1000
;
...
...
@@ -340,16 +337,18 @@
velocity
.
y
-=
9.8
*
100.0
*
delta
;
// 100.0 = mass
if
(
moveForward
)
velocity
.
z
-=
400.0
*
delta
;
if
(
moveBackward
)
velocity
.
z
+=
400.0
*
delta
;
direction
.
z
=
Number
(
moveForward
)
-
Number
(
moveBackward
);
direction
.
x
=
Number
(
moveLeft
)
-
Number
(
moveRight
);
direction
.
normalize
();
// this ensures consistent movements in all directions
if
(
move
Left
)
velocity
.
x
-=
400.0
*
delta
;
if
(
move
Right
)
velocity
.
x
+=
400.0
*
delta
;
if
(
move
Forward
||
moveBackward
)
velocity
.
z
-=
direction
.
z
*
400.0
*
delta
;
if
(
move
Left
||
moveRight
)
velocity
.
x
-=
direction
.
x
*
400.0
*
delta
;
if
(
isOnObject
===
true
)
{
velocity
.
y
=
Math
.
max
(
0
,
velocity
.
y
);
if
(
onObject
===
true
)
{
velocity
.
y
=
Math
.
max
(
0
,
velocity
.
y
);
canJump
=
true
;
}
controls
.
getObject
().
translateX
(
velocity
.
x
*
delta
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录