花里胡哨源码分享:兔子快跑,基于three.js和GSAP的3D小游戏源码

bb0909db992864ffccf766d6b292a301.gif

今天给大家带来的源码分享主题是《兔子快跑:勇敢者的花式逃亡》。这个小游戏不仅名字有趣,玩法也非常简单刺激。玩家控制一只英勇的小兔子,在一片充满挑战的森林中飞奔,途中需要避开刺猬的阻拦并尽可能多地收集胡萝卜,简直就是一场“命悬一线”的紧张冒险!

1. 技术概览

这款游戏的核心技术栈包括 Three.jsGSAP。Three.js 用于创建和渲染3D场景,让游戏画面更具立体感;而 GSAP 则负责动画效果,使得小兔子的跳跃、跑动等动作更加流畅和生动。

  • Three.js:这是一个强大的 3D 渲染库,可以轻松构建复杂的3D场景。在这个游戏中,Three.js 负责绘制小兔子、刺猬、胡萝卜等所有的3D模型。

  • GSAP:这是一款高性能的动画库,广泛应用于各种Web动画项目。在游戏中,GSAP 负责处理小兔子的跑动动画、跳跃动画以及碰撞后的特效。

2. 游戏玩法

玩家需要点击屏幕让小兔子跳跃,避开沿途的刺猬障碍,并收集胡萝卜。随着时间的推移,游戏的速度会逐渐加快,增加了挑战难度。游戏结束后,可以点击重新开始,再次挑战更高的分数。

3. 源码部分

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r80/three.js"></script>
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TweenMax.min.js"></script>
    <script defer src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/264161/OrbitControls.js"></script>
    <script defer src="main.js"></script>
    <title>兔子快跑 </title>
</head>
<body>
    <div id="world"></div>
<div id="gameoverInstructions">
  Game Over
</div>
<div id="dist">
    <div class="label">distance</div>
    <div id="distValue">000</div>
</div>

<div id="instructions">Click to jump<span class="lightInstructions"> — Grab the carrots / avoid the hedgehogs</span></div>


<div id="credits">
  <p><a href="#" target="blank">other codepens</a> | <a href="#" target="blank">前端达人</a></p>
</div>
</body>
</html>

css代码

/* author: https://codepen.io/Yakudoo/pen/YGxYej
Karim Maaloul
 */

@import url("https://fonts.googleapis.com/css?family=Voltaire");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


#world {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #dbe6e6;
  overflow: hidden;
}

#gameoverInstructions {
  position: absolute;
  font-family: "Voltaire", sans-serif;
  font-weight: bold;
  text-transform: uppercase;
  font-size: 120px;
  text-align: center;
  color: #ffc5a2;
  opacity: 0;
  left: 50%;
  top: 50%;
  width: 100%;
  transform: translate(-50%, -100%);
  user-select: none;
  transition: all 500ms ease-in-out;
}
#gameoverInstructions.show {
  opacity: 1;
  transform: translate(-50%, -50%);
  transition: all 500ms ease-in-out;
}

#dist {
  position: absolute;
  left: 50%;
  top: 50px;
  transform: translate(-50%, 0%);
  user-select: none;
}

.label {
  position: relative;
  font-family: "Voltaire", sans-serif;
  text-transform: uppercase;
  color: #ffa873;
  font-size: 12px;
  letter-spacing: 2px;
  text-align: center;
  margin-bottom: 5px;
}

#distValue {
  position: relative;
  text-transform: uppercase;
  color: #dc5f45;
  font-size: 40px;
  font-family: "Voltaire";
  text-align: center;
}

#credits {
  position: absolute;
  width: 100%;
  margin: auto;
  bottom: 0;
  margin-bottom: 20px;
  font-family: "Voltaire", sans-serif;
  color: #544027;
  font-size: 12px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  text-align: center;
  user-select: none;
}

#credits a {
  color: #544027;
}

#credits a:hover {
  color: #dc5f45;
}

#instructions {
  position: absolute;
  width: 100%;
  bottom: 0;
  margin: auto;
  margin-bottom: 50px;
  font-family: "Voltaire", sans-serif;
  color: #dc5f45;
  font-size: 16px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-align: center;
  user-select: none;
}

.lightInstructions {
  color: #5f9042;
}

js代码

由于代码内容过长,请下载源码查看

源码下载

链接: https://pan.baidu.com/s/1fDU0atw4n9NNlCjrT4_Emw?pwd=bge5

提取码: bge5

结束

这个小游戏非常适合作为学习 Three.js 和 GSAP 的入门项目。通过阅读和分析源码,你可以了解到如何构建一个完整的 3D 游戏场景,以及如何通过动画库来丰富游戏体验。如果你对 Web 开发或游戏开发感兴趣,这个项目绝对是一个不错的起点。

希望大家通过这次分享,能够激发起对 3D 游戏开发的兴趣,并且动手尝试实现自己的创意!如果你有任何问题或者心得,欢迎在评论区讨论哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值