Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Cloud IDE
2048
提交
4d294cf9
2048
项目概览
Cloud IDE
/
2048
通知
101
Star
9
Fork
69
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
2048
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4d294cf9
编写于
3月 22, 2014
作者:
G
Gabriele Cirulli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove space to restart game, refactor code slightly
上级
08c50df9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
38 addition
and
33 deletion
+38
-33
index.html
index.html
+1
-1
js/keyboard_input_manager.js
js/keyboard_input_manager.js
+37
-32
未找到文件。
index.html
浏览文件 @
4d294cf9
...
...
@@ -22,7 +22,7 @@
<div
class=
"best-container"
>
0
</div>
</div>
</div>
<p
class=
"game-intro"
>
Join the numbers and get t
o t
he
<strong>
2048 tile!
</strong></p>
<p
class=
"game-intro"
>
Join the numbers and get the
<strong>
2048 tile!
</strong></p>
<a
class=
"restart-button"
>
New Game
</a>
<div
class=
"game-container"
>
<div
class=
"game-message"
>
...
...
js/keyboard_input_manager.js
浏览文件 @
4d294cf9
...
...
@@ -39,16 +39,17 @@ KeyboardInputManager.prototype.listen = function () {
39
:
1
,
// Right
40
:
2
,
// Down
37
:
3
,
// Left
75
:
0
,
//
vim keybindings
76
:
1
,
74
:
2
,
72
:
3
,
75
:
0
,
//
Vim up
76
:
1
,
// Vim right
74
:
2
,
// Vim down
72
:
3
,
// Vim left
87
:
0
,
// W
68
:
1
,
// D
83
:
2
,
// S
65
:
3
// A
};
// Respond to direction keys
document
.
addEventListener
(
"
keydown
"
,
function
(
event
)
{
var
modifiers
=
event
.
altKey
||
event
.
ctrlKey
||
event
.
metaKey
||
event
.
shiftKey
;
...
...
@@ -59,38 +60,32 @@ KeyboardInputManager.prototype.listen = function () {
event
.
preventDefault
();
self
.
emit
(
"
move
"
,
mapped
);
}
if
(
event
.
which
===
32
)
self
.
restart
.
bind
(
self
)(
event
);
}
});
var
retry
=
document
.
querySelector
(
"
.retry-button
"
);
retry
.
addEventListener
(
"
click
"
,
this
.
restart
.
bind
(
this
));
retry
.
addEventListener
(
this
.
eventTouchend
,
this
.
restart
.
bind
(
this
));
var
restart
=
document
.
querySelector
(
"
.restart-button
"
);
restart
.
addEventListener
(
"
click
"
,
this
.
restart
.
bind
(
this
));
restart
.
addEventListener
(
"
touchend
"
,
this
.
restart
.
bind
(
this
));
var
keepPlaying
=
document
.
querySelector
(
"
.keep-playing-button
"
);
keepPlaying
.
addEventListener
(
"
click
"
,
this
.
keepPlaying
.
bind
(
this
));
keepPlaying
.
addEventListener
(
"
touchend
"
,
this
.
keepPlaying
.
bind
(
this
));
// Respond to button presses
this
.
bindButtonPress
(
"
.retry-button
"
,
this
.
restart
);
this
.
bindButtonPress
(
"
.restart-button
"
,
this
.
restart
);
this
.
bindButtonPress
(
"
.keep-playing-button
"
,
this
.
keepPlaying
);
//
Listen
to swipe events
//
Respond
to swipe events
var
touchStartClientX
,
touchStartClientY
;
var
gameContainer
=
document
.
getElementsByClassName
(
"
game-container
"
)[
0
];
gameContainer
.
addEventListener
(
this
.
eventTouchstart
,
function
(
event
)
{
if
((
!
window
.
navigator
.
msPointerEnabled
&&
event
.
touches
.
length
>
1
)
||
event
.
targetTouches
>
1
)
return
;
if
(
window
.
navigator
.
msPointerEnabled
){
touchStartClientX
=
event
.
pageX
;
touchStartClientY
=
event
.
pageY
;
if
((
!
window
.
navigator
.
msPointerEnabled
&&
event
.
touches
.
length
>
1
)
||
event
.
targetTouches
>
1
)
{
return
;
// Ignore if touching with more than 1 finger
}
if
(
window
.
navigator
.
msPointerEnabled
)
{
touchStartClientX
=
event
.
pageX
;
touchStartClientY
=
event
.
pageY
;
}
else
{
touchStartClientX
=
event
.
touches
[
0
].
clientX
;
touchStartClientY
=
event
.
touches
[
0
].
clientY
;
touchStartClientX
=
event
.
touches
[
0
].
clientX
;
touchStartClientY
=
event
.
touches
[
0
].
clientY
;
}
event
.
preventDefault
();
});
...
...
@@ -99,15 +94,19 @@ KeyboardInputManager.prototype.listen = function () {
});
gameContainer
.
addEventListener
(
this
.
eventTouchend
,
function
(
event
)
{
if
((
!
window
.
navigator
.
msPointerEnabled
&&
event
.
touches
.
length
>
0
)
||
event
.
targetTouches
>
0
)
return
;
if
((
!
window
.
navigator
.
msPointerEnabled
&&
event
.
touches
.
length
>
0
)
||
event
.
targetTouches
>
0
)
{
return
;
// Ignore if still touching with one or more fingers
}
var
touchEndClientX
,
touchEndClientY
;
if
(
window
.
navigator
.
msPointerEnabled
){
touchEndClientX
=
event
.
pageX
;
touchEndClientY
=
event
.
pageY
;
if
(
window
.
navigator
.
msPointerEnabled
)
{
touchEndClientX
=
event
.
pageX
;
touchEndClientY
=
event
.
pageY
;
}
else
{
touchEndClientX
=
event
.
changedTouches
[
0
].
clientX
;
touchEndClientY
=
event
.
changedTouches
[
0
].
clientY
;
touchEndClientX
=
event
.
changedTouches
[
0
].
clientX
;
touchEndClientY
=
event
.
changedTouches
[
0
].
clientY
;
}
var
dx
=
touchEndClientX
-
touchStartClientX
;
...
...
@@ -132,3 +131,9 @@ KeyboardInputManager.prototype.keepPlaying = function (event) {
event
.
preventDefault
();
this
.
emit
(
"
keepPlaying
"
);
};
KeyboardInputManager
.
prototype
.
bindButtonPress
=
function
(
selector
,
fn
)
{
var
button
=
document
.
querySelector
(
selector
);
button
.
addEventListener
(
"
click
"
,
fn
.
bind
(
this
));
button
.
addEventListener
(
this
.
eventTouchend
,
fn
.
bind
(
this
));
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录