首頁  >  文章  >  web前端  >  一招教你使用HTML/CSS和Three.js的噴火龍小遊戲(程式碼分享)

一招教你使用HTML/CSS和Three.js的噴火龍小遊戲(程式碼分享)

奋力向前
奋力向前轉載
2021-09-15 10:31:562403瀏覽

之前的文章《教你使用HTML、CSS和JS創建響應式可過濾的遊戲(附代碼)》中,跟大家介紹怎麼使用JS創建響應式可過濾的遊戲。以下這篇文章跟大家介紹怎麼使用Three.js的噴火龍小遊戲,夥伴們來看看。

一招教你使用HTML/CSS和Three.js的噴火龍小遊戲(程式碼分享)

噴火龍小遊戲

現場示範

如果你想了解這個噴火龍小遊戲是如何運作的,那你可以嘗試下面的示範。在這裡,我提供了所需的原始程式碼,以便你可以複製程式碼並在你自己的學習(開小差)、工作(摸魚)中使用它。

示範網址:http://haiyong.site/penhuolong(用瀏覽器開啟)

一招教你使用HTML/CSS和Three.js的噴火龍小遊戲(程式碼分享)

##如你在上圖所看到的,這裡我使用HTML、CSS 和JavaScript 製作了一個簡單的噴火龍小遊戲。

HTML程式碼

<body>
    <div id="world"></div>
    <div id="instructions">
        <span class="lightInstructions">你点击的时间越长,它打喷嚏的力度越大</span><br />
        <span class="lightInstructions">- 按住并拖动可转身 -</span></div>
    <div id="credits">
        <p>Prints on <a class="society6" href="https://juejin.cn/user/2040341402229751" target="blank">haiyong</a>
            | <a href="http://haiyong.site/game" target="blank">Game</a>
            | <a href="http://haiyong.site" target="blank">haiyong.site</a>
        </p>
    </div>
    <div id="power">00</div>
</body>

CSS程式碼


設定整體

divworld的樣式

#world {
  background: #652e37;
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

設定顯示文字:

你點擊的時間越長,它打噴嚏的力度越大

#按住並拖曳可轉身-

#instructions {
  position: absolute;
  width: 100%;
  top: 50%;
  margin: auto;
  margin-top: 120px;
  font-family: "Open Sans", sans-serif;
  color: #fdde8c;
  font-size: 0.8em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.5;
  user-select: none;
}
.lightInstructions {
  color: #f89a78;
  font-size: 1.6em;
}
為了讓它適應小螢幕,字體不會那麼小,將元素在小螢幕中分開佈局,我在這裡設定了媒體查詢。

@media screen and (max-width:600px) {
  #instructions {
    top: 50%;
  }
  .lightInstructions {
    font-size: 1.5em;
  }
}

@media screen and (max-width:470px) {
  #instructions {
    top: 60%;
  }
  .lightInstructions {
    font-size: 1.3em;
  }
}

JS程式碼


先建立基本場景,在Three.js中有三個要素:場景、攝影機和渲染器,只有以上三者結合才能渲染出可見的內容。當然在這之前你需要先下載Three.js文件,直接百度搜尋Three.js到官網下載即可,下載完成之後新建一個html檔案並且引入Three.js即可。這裡我直接引用的別人的。

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.min.js"></script>

初始化THREE JS, 螢幕與滑鼠事件

function init() {
    powerField = document.getElementById("power");

    scene = new THREE.Scene();
    scene.fog = new THREE.Fog(0x652e37, 350, 500);

    HEIGHT = window.innerHeight;
    WIDTH = window.innerWidth;
    aspectRatio = WIDTH / HEIGHT;
    fieldOfView = 60;
    nearPlane = 1;
    farPlane = 2000;
    camera = new THREE.PerspectiveCamera(
    fieldOfView,
    aspectRatio,
    nearPlane,
    farPlane
    );
    camera.position.x = -300;
    camera.position.z = 300;
    camera.position.y = 100;
    camera.lookAt(new THREE.Vector3(0, 0, 0));
    renderer = new THREE.WebGLRenderer({
    alpha: true,
    antialias: true
    });
    renderer.setPixelRatio(window.devicePixelRatio);
    renderer.setSize(WIDTH, HEIGHT);
    renderer.shadowMapEnabled = true;
    container = document.getElementById("world");
    container.appendChild(renderer.domElement);
    windowHalfX = WIDTH / 2;
    windowHalfY = HEIGHT / 2;
    window.addEventListener("resize", onWindowResize, false);
    document.addEventListener("mouseup", handleMouseUp, false);
    document.addEventListener("touchend", handleTouchEnd, false);
    //*
    controls = new THREE.OrbitControls(camera, renderer.domElement);
    controls.minPolarAngle = -Math.PI / 2;
    controls.maxPolarAngle = Math.PI / 2;
    controls.noZoom = true;
    controls.noPan = true;
    //*/
}

JS程式碼太長,這裡就不一一展示了,完整程式碼我會放在GitHub上,或者大家直接在我網站海擁上F12 然後CV 即可

推薦學習:

HTML/CSS影片教學JS影片教學

以上是一招教你使用HTML/CSS和Three.js的噴火龍小遊戲(程式碼分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.im。如有侵權,請聯絡admin@php.cn刪除