这个就叫做摸鱼神器,什么时候闲着蛋疼或者真的断网了,玩一玩打发时间
现在呢,是冬季限定版,如果是夏季就是在划水,冬季在滑雪。滑雪小游戏的玩法和冲浪小游戏的玩法是一样的,只是场景改变了、后面追逐的我们的怪物从八爪鱼变成了雪人
如何打开?
首先将你的edge浏览器更新至96版本,可通过右上角【…】-【设置】-【关于 Microsoft edge】查看当前的版本号;
更新完成后,在断网情况下点击【启动游戏】进入断网小游戏中;
也可以直接在地址栏输入【edge://surf】,回车后即可进入断网小游戏中;
进入之后首先会显示“一起来滑雪吧”,选择人物,空格键开始游戏
我们可以使用WASD或者方向键控制移动,也可以用鼠标控制移动,人物会自动去追光标。
连续按两次“下”开启加速,按“上”可以停止滑雪
有个滑板可以飞100米
每3000分会出现一个狗子,带上他可以获得护盾
每5000分会出现一大堆爱心和加速,这时可以补充能量~
过了一千分后,会有个怪物来追你,你必须使用加速或者走出风骚姿势来摆脱它,不然给他抓到就是game over。(其实很好摆脱的,你带着他往那些障碍物走,很快他就会被卡住)
碰见那个怪物不用慌,很容易甩掉的
右上角小齿轮可以选择游戏模式,共有三种模式
计时赛我只能玩到41秒
彩蛋(外挂)
在开始界面输入microsoft可激活无限生命,edge可激活无限升级
在开始界面输入:上上下下左右左右BA激活新角色
程序员的眼中看surf:(源代码)
//html
<!doctype html><html dir="ltr" lang="zh"><head><meta charset="utf-8"><if expr="is_ios or is_android"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"></if><script src="/base-error-reporting.js"></script><script src="/surf-error-reporting.js"></script><script src="edge://resources/js/assert.js"></script><script src="edge://resources/js/promise_resolver.js"></script><script src="edge://resources/js/cr.js"></script><script src="edge://resources/js/load_time_data.m.js" type="module"></script><script src="edge://resources/js/util.js"></script><script src="/strings.m.js" type="module"></script><link href="interface.css" rel="stylesheet" media="all"/></head><body><div id="hamburger-container"></div><div id="modal-root"></div><script src="/lib_react.chunk.js" type="module"></script><script src="/lib_common.chunk.js" type="module"></script><script src="/surf.bundle.js" type="module"></script></body></html>
//edge://surf/base-error-reporting.js
// Copyright (C) Microsoft Corporation. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
function hookErrorReporting(component) {
window.onerror = (message, source, lineno, columnNumber, error) => {
const errorInfo = {
column: columnNumber,
component,
line: lineno,
message: error.message,
name: error.name,
source_url: source,
stack: error.stack
};
chrome.errorReporting.reportError(errorInfo);
};
}
//edge://surf/surf-error-reporting.js
// Copyright (C) Microsoft Corporation. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
hookErrorReporting('webui-surf-game');
//edge://resources/js/assert.js
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview Assertion support.
*/
/**
* Verify |condition| is truthy and return |condition| if so.
* @template T
* @param {T} condition A condition to check for truthiness. Note that this
* may be used to test whether a value is defined or not, and we don't want
* to force a cast to Boolean.
* @param {string=} opt_message A message to show on failure.
* @return {T} A non-null |condition|.
* @closurePrimitive {asserts.truthy}
* @suppress {reportUnknownTypes} because T is not sufficiently constrained.
*/
/* #export */ function assert(condition, opt_message) {
if (!condition) {
let message = 'Assertion failed';
if (opt_message) {
message = message + ': ' + opt_message;
}
const error = new Error(message);
const global = function() {
const thisOrSelf = this || self;
/** @type {boolean} */
thisOrSelf.traceAssertionsForTesting;
return thisOrSelf;
}();
if (global.traceAssertionsForTesting) {
console.warn(error.stack);
}
throw error;
}
return condition;
}
/**
* Call this from places in the code that should never be reached.
*
* For example, handling all the values of enum with a switch() like this:
*
* function getValueFromEnum(enum) {
* switch (enum) {
* case ENUM_FIRST_OF_TWO:
* return first
* case ENUM_LAST_OF_TWO:
* return last;
* }
* assertNotReached();
* return document;
* }
*
* This code should only be hit in the case of serious programmer error or
* unexpected input.
*
* @param {string=} opt_message A message to show when this is hit.
* @closurePrimitive {asserts.fail}
*/
/* #export */ function assertNotReached(opt_message) {
assert(false, opt_message || 'Unreachable code hit');
}
/**
* @param {*} value The value to check.
* @param {function(new: T, ...)} type A user-defined constructor.
* @param {string=} opt_message A message to show when this is hit.
* @return {T}
* @template T
*/
/* #export */ function assertInstanceof(value, type, opt_message) {
// We don't use assert immediately here so that we avoid constructing an error
// message if we don't have to.
if (!(value instanceof type)) {
assertNotReached(
opt_message ||
'Value ' + value + ' is not a[n] ' + (type.name || typeof type));
}
return value;
}
/* #ignore */ console.warn('crbug/1173575, non-JS module files deprecated.');
//edge://resources/js/promise_resolver.js
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// #import {assertNotReached} from './assert.m.js';
/**
* @fileoverview PromiseResolver is a helper class that allows creating a
* Promise that will be fulfilled (resolved or rejected) some time later.
*
* Example:
* var resolver = new PromiseResolver();
* resolver.promise.then(function(result) {
* console.log('resolved with', result);
* });
* ...
* ...
* resolver.resolve({hello: 'world'});
*/
/** @template T */
// eslint-disable-next-line no-var
/* #export */ var PromiseResolver = class {
constructor() {
/** @private {function(T=): void} */
this.resolve_;
/** @private {function(*=): void} */
this.reject_;
/** @private {boolean} */
this.isFulfilled_ = false;
/** @private {!Promise<T>} */
this.promise_ = new Promise((resolve, reject) => {
this.resolve_ = /** @param {T=} resolution */ (resolution) => {
resolve(resolution);
this.isFulfilled_ = true;
};
this.reject_ = /** @param {*=} reason */ (reason) => {
reject(reason);
this.isFulfilled_ = true;
};
});
}
/** @return {boolean} Whether this resolver has been resolved or rejected. */
get isFulfilled() {
return this.isFulfilled_;
}
set isFulfilled(i) {
assertNotReached();
}
/** @return {!Promise<T>} */
get promise() {
return this.promise_;
}
set promise(p) {
assertNotReached();
}
/** @return {function(T=): void} */
get resolve() {
return this.resolve_;
}
set resolve(r) {
assertNotReached();
}
/** @return {function(*=): void} */
get reject() {
return this.reject_;
}
set reject(s) {
assertNotReached();
}
};
/* #ignore */ console.warn('crbug/1173575, non-JS module files deprecated.');
还有一些没爬完,再爬我数据库就爆了
如果你复制到了这里,请看看这个
这只企鹅只能让你想起Linux,不要去想腾讯!
原创文章,作者:Rosmontics,如若转载,请注明出处:https://rosmontis.com/archives/173
评论列表(3条)
上上下下左右左右ba属实老挂的
呃呃呃呃呃
额,手打代码有点...