js+css实现跳跃闯关类游戏代码

代码语言:html

所属分类:游戏

代码描述:js+css实现跳跃闯关类游戏代码

代码标签: css 闯关 跳跃 游戏

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />

    <style>
        :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;
    }
    
   .........完整代码请登录后点击上方下载按钮下载查看

网友评论0