🐵指尖猴全新升级
第19课:网页游戏JS
🌐

网页游戏JS

浏览器就是游戏机,全世界点开就玩

📖知识引入

📱哪里都能玩
网页游戏不挑设备:手机、平板、电脑,打开浏览器就能玩。你做的那份game.html,其实已经是「跨平台游戏」了!
🎨canvas=魔法画布
网页里有一块叫canvas(画布)的区域,JS可以在上面随意涂画:矩形、圆形、图片都行,再配合每帧重画,画面就动起来了。
🔁网页版游戏循环
浏览器提供requestAnimationFrame(请求动画帧):告诉浏览器「准备好下一帧就叫我」。用它写主循环,和Pygame的循环一个道理。
📦一个文件就是整个游戏
网页游戏可以打包成单个.html文件:代码、样式全在里面。拷给同学、发到群里,对方双击就能玩——传播零门槛。
🚀发布的主通道
itch.io上大量独立游戏都是网页版:上传html,全球玩家点链接即玩。第28课发布作品时,你就走这条路!
💡
网页游戏=一个html文件走天下,分享零门槛!

🔍网页游戏的完整骨架

// 网页游戏的最小循环骨架
let canvas = document.getElementById('game');
let g = canvas.getContext('2d');   // 拿到画笔
let x = 180;

function loop() {
  // 1. 更新逻辑
  x += 1;
  if (x > 380) x = 0;             // 出右边回左边

  // 2. 绘制画面
  g.clearRect(0, 0, 400, 500);    // 清空画布
  g.fillStyle = 'tomato';
  g.fillRect(x, 100, 40, 40);     // 画一个会跑的方块

  // 3. 请求下一帧,循环继续
  requestAnimationFrame(loop);
}

loop();  // 点火启动!

还记得第4课的接金币吗? 现在解剖它的结构:

<html> 一栋楼
  <canvas> 留出一面墙当画布
  <script> 魔法都写在这里
     │
     ▼
   游戏循环(requestAnimationFrame)
     ├─ 更新逻辑
     │    金币下落 coinY += 5
     │    碰撞检测 isCrash()
     │    分数生命 score += 10
     │
     └─ 绘制画面
          清空画布 clearRect
          画金币、画篮子、画分数

对照其他工具:

Pygame : while循环 + clock.tick 网页JS : requestAnimationFrame Scratch : 重复执行积木

三兄弟长得不一样, 干的都是同一件事: 一圈一圈转循环!🔄

🎯小测验

第1题:网页游戏最大的传播优势是?

第2题:网页游戏里负责「画画」的区域叫?

第3题:网页版游戏循环靠什么驱动?

📝本课知识点

  • ✓浏览器就是跨平台游戏机
  • ✓canvas画布+JS画笔
  • ✓requestAnimationFrame驱动循环
  • ✓单html文件=整个游戏
  • ✓itch.io是网页游戏的主场
第19课完成!继续探索下一课吧 🚀