37

使用 Pixi.js 构建一个视差滚动器(第一篇)

 6 years ago
source link: https://keelii.com/2019/03/16/building-a-parallax-scroller-with-pixijs-cn-1/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

翻译对照

原文: PART 1PART 2PART 3PART 4

译文:第一篇・第二篇・ 第三篇・ 第四篇

关注 @chriscaleb

这个系列的教程已经更新到了 PixiJS v4 版本。

曾经玩过 Canabalt 和  Monster Dash ,好奇他们是如何构建一个滚动游戏地图的?在这个教程中我们将向「构建一个视差滚动器」迈出第一步,我们将使用 JavaScript 和  pixi.js 这个 2D 渲染引擎。

你将学到什么…

  • Pixi.js 的基础知识
  • 如何处理纹理(textures)和精灵(sprites)
  • 如何实现简单的视差滚动

预备知识…

  • 了解 JavaScript 或者 ActionScript 的基础知识

JavaScript 无处不在,由于浏览器的不断改善和大量的 JavaScript 库,我们真的开始看到 HTML5 游戏领域开发蓬勃发展。但是当有很多库可用的时候,选择合适的并非易事。

这个系列的教程将向你介绍 JavaScript 游戏开发的基础,我们会聚焦到 pixijs。它是一个支持 WebGL 和 HTML5 Canvas 的渲染框架。教程最后你将完成如下的一个视差滚动地图程序:

vaae6v2.png!web

点击上面的链接启动最终版的程序,这就是你将要完成的。注意它包含了三个视差层:一个远景(far)层,一个中间(mid)层,一个前景(foreground)层。在第一篇教程中我们将集中精力构建远景层和中间层。当然为了做到这一点教程必须涉及 pixi.js 的基础,当然如果你还是个 JavaScript 新手,这会是个很好的开始学习 HTML5 游戏编程的地方。

vaae6v2.png!web

开始之前,点击上面的链接预览下这篇教程中将做成的效果。你也可以从 github 上下载这个程序的 源代码

起步

为了完成编码,你需要一个代码编辑器,我将使用一个体验版的 sublime text,可以在这里 下载到。

还需要一个浏览器来测试你的程序。任何现代浏览器都可以,我将用 Google Chrome,开发过程中将会涉及到一些开始者工具的使用。如果你还没有安装 Chrome,可以去这里 下载。

为了测试你的程序,你还需要在你的开发机上安装一个 web 服务器。如果你用的是 Window,可以 安装 IIS ,macOS 用户可以配置下系统默认的 Apache ,如果你的系统是 OS X Mountain Lion 配置 web 服务器可以会比较麻烦,可以参考这个 教程

如果你有自己托管的 web 服务器,就可以直接上传所以文件来测试,或者如果你有一个 Dropbox 账号,你可以通过  DropPages 服务来托管你的文件。

web 服务器建好后,创建一个目录 parallax-scroller 如果你使用 Windows。你的 web 服务器根目录应该类似  C:\inetpub\parallax-scroller 。如果你使用 OS X 则应该是  /Users/your_user_name/Sitesyour_user_name 就是你电脑的用户名。

最后,在教程中我们将使用几个图片素材,不用你自己去找,我已经为你打包好了一个 zip 文件 ,下载并解压好你的  parallax-scroller 目录。

下面就是你的 parallax-scroller 文件夹的样子(Windows):

2I3yUzR.png!web

如果你用的是 Mac OS X 则应该如下图:

3QJn6ry.png!web

现在我们已经准备好开始写代码了,启动 Sublime Text 2 或者你最喜欢的编辑器。

创建画布

所有的 pixijs 项目都以一个 HTML 文件开始。在这里我们将创建一个 canvas 元素以及引入 pixi.js 库。canvas 元素表示HTML页面上将呈现滚动条的区域。

在你的项目根目录 parallax-scroller 下使用编辑器新建一个文件,命名为 index.html ,并写入下面的代码:

<html>
  <head>
    <meta charset="UTF-8">
    <title>Parallax Scrolling Demo</title>
  </head>
  <body>
  </body>
</html>

现在看起来还非常奇怪,我们的 HTML 页面只有一个 <head><body> 元素。

现在让我们在页面上添加 HTML5 Canvas 元素,在 body 元素中添加如下的代码:

<body>
  <div align="center">
    <canvas id="game-canvas" width="512" height="384"></canvas>
  </div>
</body>

我们指定了 canvas 宽度 512 像素,高度 384 像素。这就是 pixi.js 为库渲染游戏的地方。注意我们给 canvas 了一个 id 属性,值为 game-canvas 这将使我们易于控制它,当 pixi.js 启动时也需要它

现在启动你的 web 服务器,在 浏览器中打开类似 http://localhost/parallax-scroller/index.html 或者  http://localhost/~**your_user_name**/parallax-scroller/index.html 的链接

你会发现并没有什么东西,我们来给 canvas 加点样式(style 标签):

<html>
  <head>
    <meta charset="UTF-8">
    <title>Endless Runner Game Demo</title>
    <style>
      body { background-color: #000000; }
      canvas { background-color: #222222; }
    </style>
  </head>
  <body>
  </body>
</html>

保存并刷新,你将会看见一个水平居中的灰色区域出现在页面上。

引入 pixi.js 类库


Recommend

  • 61
    • 掘金 juejin.im 6 years ago
    • Cache

    滚动视差?CSS 不在话下

    何为滚动视差 视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。 作为网页设计的热点趋势,越来越多的网站应用了这项技术。 通常而言,滚动视差在前端需要辅助 Javascript 才能实

  • 75

    何为滚动视差 视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。 作为网页设计的热点趋势,越来越多的网站应用了这项技术。 通常

  • 39

    翻译对照 原文: PART 1 ・ PART 2 ・ PART 3 ・

  • 36

    In this article, I will show you pixi.js, a super fast rending tool, also a swiss-army-knife tool with a friendly API. What is it? Pixi.js is a display tool that allows you to use the power of WebGL...

  • 31

    新项目用到了大量的视差滚动效果,今天写了控件做支持,并非成熟但适用大多数简单场景,把大致思路在这里写下。 什么是视差滚动, 简单说就是 不同组件按不同速度滚动 像这种效果:

  • 12

    Canvas2D渲染库简析:(三)Pixi 2019年12月30日 |

  • 10
    • www.cnblogs.com 4 years ago
    • Cache

    pixi.js 图像资源(svg)转纹理

    当Pixi使用WebGL去调用GPU渲染图像时,需要先将图像转化为GPU可以处理的版本。而能够被GPU处理的图像就叫做 纹理 ,在pixi中使用 纹理缓存 来存储和引用所有纹理。通过将纹理分配给精灵,再将精灵添加...

  • 5

    小tip: 纯CSS实现视差滚动效果 浏览:2147次  出处信息 一、效果Demo先行~...

  • 7

    V2EX  ›  程序员 使用 pixi.js 和 oixi2 开发微信小游戏   WLDragon · 1 天前 · 383 次点击...

  • 6

    使用 Pixi.js 构建一个视差滚动器(第三篇) 2019-3-19 19:20 PM ·

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK