Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
:root { --root-clr: dimgray; --tile-line-height: 30px; --tile-size: 10px; --clr: gray; --pl-clr: radial-gradient(circle at 75% 50%, white 1px, transparent 2px), radial-gradient(circle at 25% 50%, white 1px, transparent 2px), radial-gradient(circle at 75% 40%, black 3px, transparent 4px), radial-gradient(circle at 25% 40%, black 3px, transparent 4px), white; } html, body { min-width: 100vw; min-height: 100vh; overflow: hidden; margin: 0; display: grid; place-items: center; background: #111; } #game_console { width: 100%; max-width: 1000px; aspect-ratio: 16 / 9; position: relative; background: linear-gradient(to bottom, rgba(0,0,0,.65), rgba(0,0,0,1)), var(--root-clr); text-align: center; line-height: var(--tile-line-height); font-size: 0; color: transparent; user-select: none; box-shadow: 0 20px 20px black; /* overflow: hidden; */ } #deaths_counter, #time_counter { padding: 0rem 1rem; font-size: 16px; font-family: system-ui, serif; line-height: 100%; color: white; /* background: rgba(0,0,0,.75); */ position: absolute; } #deaths_counter { top: 0; left: 0; transform: translate(0%,-125%); /* text-align: left; */ } #time_counter { top: 0; right: 0; transform: translate(0%,-125%); /* text-align: right; */ } #game_alert { padding: 1rem 2rem; font-size: 16px; font-family: system-ui, serif; line-height: 100%; color: white; background: rgba(0,0,0,.75); border: 1px dashed white; position: absolute; bottom: 0; left: 50%; transform: translate(-50%,125%); z-index: 99999; border-radius: 50px; transition: .5s; opacity: 0; pointer-events: none; user-select: none; } h2 { margin: 0; margin-bottom: 10px; } .tile { /* outline: 1px dashed rgba(0,0,0,.5); */ } .ground { background: var(--root-clr); box-sizing: border-box; border-top: 5px solid rgba(0,0,0,.25); border-right: 5px solid rgba(0,0,0,.65); border-bottom: 5px solid rgba(0,0,0,.65); border-left: 5px solid rgba(0,0,0,.25); outline: 0; z-index: 2; /* filter: brightness(.75); */ } .innerwall { background: var(--root-clr); outline: 0; } /* lava spikes */ .lava { background: conic-gradient(at 50% 0%, transparent 0deg 153deg, rgba(0,0,0,.5) 155deg 190deg, rgba(255,255,255,.5) 192deg 205deg, transparent 207deg 360deg), conic-gradient(at 50% 0%, transparent 0deg 153deg, var(--root-clr) 155deg 195deg, var(--root-clr) 197deg 205deg, transparent 207deg 360deg); } .spleft { transform: rotate(-90deg); } .sptop { transform: rotate(180deg); } .spright { transform: rotate(90deg); } .portal1:after, .portal2:after { content:''; width: 150%; height: 150%; position: absolute; top: -25%; left: 0; background: radial-gradient(circle at 50% 50%, rgba(0,0,0,1) 3px, rgba(0,0,0,.75) 6px, rgba(0,0,0,.75) 10px, rgba(0,0,0,.5) 11px, rgba(0,0,0,.5) 15px, rgba(0,0,0,.25) 16px, rgba(0,0,0,.25) 20px), var(--root-clr); animation: portal 2s linear infinite; /* box-shadow: inset 3px 0 0 3px rgb(0 0 0 / 25%), 3px 0px 0 2px rgb(255 255 255 / 50%); */ pointer-events: none; border-radius: 50%; } @keyframes portal { 50% { transform: scale(1.1); } } .nextlevel { /* background: linear-gradient(to bottom right, transparent 10%, var(--root-clr) 10% 30%, transparent 30% 60%, var(--root-clr) 60% 80%, transparent 80%); background-size: 25px 25px; */ } #player, #player:after { content:''; width: 25px; height: 25px; background: transparent; position: absolute; z-index: 10000; pointer-events: none; } #player:before { content:''; width: 25px; height: 25px; position: absolute; left: 0; top: 0; background: radial-gradient(circle at 85% 15%, LightSeaGreen 3px, transparent 4px), radial-gradient(circle at 15% 15%, LightSeaGreen 3px, transparent 4px), radial-gradient(circle at 65% 90%, LightSeaGreen 2px, transparent 3px), radial-gradient(circle at 35% 90%, LightSeaGreen 2px, transparent 3px); } #player:after { width: 20px; height: 25px; background: linear-gradient(to top, LightSeaGreen 0%, transparent 0%), radial-gradient(circle at 60% 40%, PaleTurquoise 2px, transparent 3px), radial-gradient(circle at 50% 50%, black 5px, transparent 6px), DarkTurquoise; position: absolute; top: -2.5px; left: 2.5px; z-index: 10000; border-radius: 50% 60% 50% 50% / 70% 70% 40% 40%; pointer-events: none; box-shadow: inset 2px 2px 3px 3px rgba(255,255,255,.5), inset -2px -2px 3px 3px rgba(0,0,0,.33); animation: blink 4s linear infinite; } @keyframes blink { 5% { background: linear-gradient(to bottom, LightSeaGreen 35%, transparent 35%), radial-gradient(circle at 60% 40%, PaleTurquoise 2px, transparent 3px), radial-gradient(circle at 50% 50%, black 5px, transparent 6px), DarkTurquoise; } 10% { background: linear-gradient(to bottom, LightSeaGreen 60%, transparent 60%), radial-gradient(circle at 60% 40%, PaleTurquoise 2px, transparent 3px), radial-gradient(circle at 50% 50%, black 5px, transparent 6px), DarkTurquoise; } 15% { background: linear-gradient(to bottom, LightSeaGreen 0%, transparent 0%), radial-gradient(circle at 60% 40%, PaleTurquoise 2px, transparent 3px), radial-gradient(circle at 50% 50%, black 5px, transparent 6px), DarkTurquoise; } } /* player 2 player 2 player 2 */ #player2, #player2:after { content:''; width: 25px; height: 25px; background: transparent; position: relative; z-index: 10000; pointer-events: none; } #player2:before { content:''; width: 25px; height: 25px; position: absolute; left: 0; top: 0; background: radial-gradient(circle at 65% 90%, white 2px, transparent 3px), radial-gradient(circle at 35% 90%, white 2px, transparent 3px); z-index: 10001; } #player2:after { width: 20px; height: 25px; background: radial-gradient(circle at 60% 30%, white 2px, transparent 3px), radial-gradient(circle at 50% 40%, black 5px, transparent 6px), linear-gradient(to top, white, gold, orangered 50%), orangered; position: absolute; top: -4px; left: 2.5px; z-index: 10000; border-radius: 15px 15px 4px 4px; pointer-events: none; animation: blink2 4s linear infinite; } @keyframes blink2 { 5% { background: linear-gradient(to top, transparent 75%, orangered 75%), radial-gradient(circle at 60% 30%, white 2px, transparent 3px), radial-gradient(circle at 50% 40%, black 5px, transparent 6px), linear-gradient(to top, white, gold, orangered 50%), orangered; } 10% { background: linear-gradient(to top, transparent 50%, orangered 50%), radial-gradient(circle at 60% 30%, white 2px, transparent 3px), radial-gradient(circle at 50% 40%, black 5px, transparent 6px), linear-gradient(to top, white, gold, orangered 50%), orangered; } 15% { background: linear-gradient(to top, transparent 100%, orangered 100%), radial-gradient(circle at 60% 30%, white 2px, transparent 3px), radial-gradient(circle at 50% 40%, black 5px, transparent 6px), linear-gradient(to top, white, gold, orangered 50%), orangered; } } .goleft:after { transform: skewX(10deg); } .goright:after { transform: skewX(-10deg); } .goleft:before, .goright:before { } .trailBall { position: absolute; width: 3px; height: 3px; background: darkorange; border-radius: 50%; opacity: .75; pointer-events: none; opacity: 1; animation: trail .75s linear forwards; } @keyframes trail { 100% { transform: translateY(-25px); opacity: 0; } }
JavaScript
const gc = document.querySelector('#game_console') const gc_loc = gc.getBoundingClientRect() const player = 'player2' var pl; var cols = 40 // multiple of 16 var rows = 22 // multiple of 9 const tile_size = gc_loc.width*(100/cols/100) const pl_size = tile_size*2 document.body.style.setProperty('--tile-line-height', pl_size+'px') gc.style.width = '1000px' gc.style.height = tile_size*rows+'px' var gravity = 8, kd, x_speed = 5, pb_y = 0, score = 0, rot = 0, data_p = 0, bonus = 1, dead = false, kd_list = [], d = {}, gp, gpa, dbljump = false, dash = false, timer = 0, level_num = -1; const levels = [ { start:'19.5,0', map: [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,9,9,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8] }, { start:'19.5,0', map: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,8,8,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8,8,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,8,8,8,8,8,8,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0, 8,8,8,8,0,1,1,1,1,1,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,1,1,1,1,0,8,8,8,8, 8,8,8,8,0,2,2,2,2,2,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,2,2,2,2,2,0,8,8,8,8, 8,8,8,8,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,8,8,8,8] }, { start:'2,13', map: [8,8,8,8,8,8,8,8,0,0,0,0,0,0,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 8,0,0,0,0,8,8,8,0,1,1,1,1,0,8,8,8,0,0,0,0,0,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,8,0,0,0,1,1,1,0,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,8,0,1,1,1,1,1,0,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8,8,8,8,8,8, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,8,8,8,8,8, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,3,0,8,8,8,8,8, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,8,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,0,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,8,8, 1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,8,8,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,8,8, 1,1,1,1,1,1,1,1,1,1,0,8,0,1,1,1,1,1,0,8,8,8,8,8,8,0,1,1,1,1,1,1,1,1,1,1,1,0,0,8, 0,0,0,0,0,1,1,1,1,1,0,8,0,2,2,2,2,2,0,8,8,8,8,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0, 8,8,8,8,0,1,1,1,1,1,0,8,0,0,0,0,0,0,0,8,8,8,8,8,8,0,2,2,2,1,1,1,1,1,1,1,1,1,1,0, 8,8,8,8,0,2,2,2,2,2,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,2,2,2,2,2,2,2,2,2,2,0, 8,8,8,8,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0] }, { start:'1,2', map: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0, 1,1,1,1,1,1,1,1,0,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,0,1,1,1,1,1,1,1,0, 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, 1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,6,1,1,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0, 0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0, 0,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,0, 0,1,1,1,1,0,2,2,0,2,2,2,0,2,2,2,2,2,2,0,0,2,2,2,2,2,2,0,2,2,2,0,2,2,0,1,1,1,1,0, 0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0, 0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,4,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,4,1,1,1,1,1,1,1,9, 0,1,7,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,0,0,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,9, 0,0,0,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0, 8,8,8,8,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,8,8,8,8, 8,8,8,8,0,2,2,2,0,2,2,2,0,2,2,2,2,2,2,0,0,2,2,2,2,2,2,0,2,2,2,0,2,2,2,0,8,8,8,8, 8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8] }, { start: '1,2', map: [0,0,0,0,0,8,8,8,0,0,0,0,0,0,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,0,0,0,0,0,4,4,4,4,0,8,8,8,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0, 1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0, 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0, 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0, 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 0,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0, 0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0, 0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0, 0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0, 0,1,1,1,0,0,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,0,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,9, 0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,8,0,1,1,1,1,1,1,1,1,1,0,1,1,1,9, 0,0,0,0,0,1,1,1,1,1,1,1,0,2,2,2,2,2,0,0,0,0,0,0,8,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 8,8,8,8,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,8,8,8,8,8,8,0,2,2,2,1,1,1,1,1,1,0,8,8,8,8, 8,8,8,8,0,2,2,2,2,2,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,1,1,1,1,1,1,0,8,8,8,8, 8,8,8,8,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8] }, { start: '2,13', map: [8,8,8,8,8,8,8,8,0,0,0,0,0,0,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 8,0,0,0,0,8,8,8,0,1,1,1,1,0,8,8,8,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,8,0,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,8,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,8,0,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,8,8,8,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,0,0,0,0,0,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9, 8,0,1,1,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8,8,8,8,8,8, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,8,8,8,8,8, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,8,8,8,8,8, 0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,8,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8,8, 1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,8,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,8,8, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,8, 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, 8,8,8,8,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 8,8,8,8,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0, 8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] } ] function buildGame(){ // clear tiles and update level number gc.innerHTML = "
" if(level_num < levels.length - 1) { level_num++ } else { level_num = 0 } let time = 0 let deaths = 0 let tc = document.querySelector('#time_counter') let dc = document.querySelector('#deaths_counter') tc.innerHTML = 'TIME
'+ time dc.innerHTML = 'DEATHS
'+ deaths // set random level color document.body.style.setProperty('--root-clr', 'hsl('+Math.random()*360+'deg,75%,50%)') // add tiles for new level for(var i=0;i
0) { if(!dbljump) { gravity = -9 } dbljump = true } if(gp){ var gpa = Math.round(gp.axes[0]) if(gpa == 0 || gravity == 0 ) { pl.className = '' pl.style.transform = 'rotate(0deg)' } } // track left/right movement if((d[37] || (gp && gpa == -1) ) && x > gc_loc.x) { if(!pl_xy3.classList.contains('ground')) { x -= x_speed pl.className = '' pl.classList.add('goleft') } else { if(gravity > 0) { dbljump = false gravity = 1 pl.style.transform = 'rotate(90deg)' } pl.className = '' } } // console.log(x_speed) if((d[39] || (gp && gpa == 1) ) && x + pl_loc.width < gc_loc.x + gc_loc.width) { if(!pl_xy4.classList.contains('ground')) { x += x_speed pl.className = '' pl.classList.add('goright') } else { if(gravity > 0) { dbljump = false gravity = 1 pl.style.transform = 'rotate(-90deg)' } pl.className = '' } } pl.style.left = x - gc_loc.left + 'px' // pl.style.left = x + x_speed - gc_loc.left + 'px' // set different interactions based on tile type if(pl_xy5.classList.contains('ground')) { gravity = 8 } if(pl_center.classList.contains('lava')) { // console.log('lava') pl.style.top = (tile_size*levels[level_num].start.split(',')[1]) + 'px' pl.style.left = (tile_size*levels[level_num].start.split(',')[0]) + 'px' pl_loc = pl.getBoundingClientRect() x = pl_loc.left deaths++ dc.innerHTML = 'DEATHS
'+ deaths } if(pl_center.classList.contains('portal1')) { let p2 = document.querySelector('.portal2') let p2_loc = p2.getBoundingClientRect() pl.style.top = p2_loc.top - gc_loc.top + 'px' pl.style.left = p2_loc.left - gc_loc.left + 'px' pl_loc = pl.getBoundingClientRect() x = pl_loc.left } if(pl_center.classList.contains('nextlevel')) { buildGame() } timer++ function secondsToTime(e){ var h = Math.floor(e / 3600).toString().padStart(2,'0'), m = Math.floor(e % 3600 / 60).toString().padStart(2,'0'), s = Math.floor(e % 60).toString().padStart(2,'0'); return h + ':' + m + ':' + s; //return `${h}:${m}:${s}`; } tc.innerHTML = 'TIME
' + secondsToTime(timer) playerTrail() setTimeout(updatePlayer, 1000/45) // update player 30-60 times a second } } updatePlayer() // add trail behind player b/c it's fun function playerTrail() { if(player == 'player') { let x = pl.getBoundingClientRect().x let y = pl.getBoundingClientRect().y let b = document.createElement('div') b.className = 'trailBall' b.style.left = x + 11 - gc_loc.left + 'px' b.style.top = y + 5 - gc_loc.top + 'px' b.onanimationend = function(){ b.remove() } gc.appendChild(b) } if(player == 'player2') { let x = pl.getBoundingClientRect().x let y = pl.getBoundingClientRect().y let b = document.createElement('div') b.className = 'trailBall' let xx = Math.floor(Math.random()*15) + 5 b.style.left = x + xx - gc_loc.left + 'px' b.style.top = y - 3 - gc_loc.top + 'px' b.onanimationend = function(){ b.remove() } gc.appendChild(b) } } // key tracking if(level_num > 0){ window.addEventListener('keydown', function(e) { d[e.which] = true; }) window.addEventListener('keyup', function(e) { d[e.which] = false; pl.className = '' pl.style.transform = 'rotate(0deg)' }) window.addEventListener("gamepadconnected", function(e) { var gp = navigator.getGamepads()[e.gamepad.index]; // console.log("A " + gp.id + " was successfully detected! There are a total of " + gp.buttons.length + " buttons.") }); } else { timer = 0 deaths = 0 } } window.addEventListener('load', buildGame) window.focus()
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>html5过关小游戏-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号