Phaser3入门级程序开发-详细介绍

这篇博客详细介绍了如何使用Phaser3开发入门级游戏,包括项目资源、结构、主要代码解析,如config对象、预加载资源、创建场景、角色控制、物理引擎应用等,逐步引导读者理解Phaser3游戏开发流程。
摘要由CSDN通过智能技术生成

学习Phaser3入门教程:第一个Phaser3游戏(中文版)(一)系列后写的

这个项目是Phaser提供的入门级程序

1.项目资源

项目需要一些图片和phaser.js文件

  1. 图片可以通过原项目下载获得,也可以直接在这下载,Phaser3入门级程序所需图片

  2. phaser.js文件可以去Phaser官网下载,也可以在html引入网上的,还可以将网上的copy到本地使用。我用的是将网上的copy到本地使用。

<!--在html引入网上的-->
<script src="//cdn.jsdelivr.net/npm/phaser@3.11.0/dist/phaser.js"></script>

<!--copy到本地使用-->
<script src="assets/js/phaser.js"></script>

2.项目结构

在这里插入图片描述

3.项目详解

3.1 index.html

引入两个重要的javascript文件

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>星星大作战</title>
    <script src="assets/js/phaser.js"></script>
    <script src="assets/js/main.js"></script>
    <style type="text/css">
        body {
    
            margin: 0;
        }
    </style>
</head>
<body>

</body>
</html>

3.2 main.js主文件

3.2.1 初始摸版

初始摸版,不断向里面添加内容

var config = {
   
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    scene: {
   
        preload: preload,
        create: create,
        update: update
    }
};

var game = new Phaser.Game(config);

function preload (){
   }
 
function create (){
   }

function update (){
   }

3.2.2 config对象

定义了一个config对象配置Phaser 游戏

var config = {
   
    type: Phaser.AUTO,//渲染器
    width: 800,//画面尺寸
    height: 600,
    scene: {
    // 默认的场景
        preload: preload,
        create: create,
        update: update
    }
};

3.2.3 Phaser.Game实例

接着定义了一个叫作game变量来指向一个Phaser.Game实例,而对象config作为参数传入到该实例中,现在我们就启动了一个进程,开启了Phaser的生命周期。

var game = new Phaser.Game(config);

3.2.4 preload ()载入所需的资源

我们只需要在场景函数preload中加入Phaser的载入代码即可,Phaser将自动调用该函数并执行里面的内容。
这里载入4个图片和一个精灵表单。第一个参数是资源的名称,第二个参数是资源的路径

function preload (){
   
    this.load.image('sky', './assets/image/sky.png');
    this.load.image('ground', './assets/image/platform.png');
    this.load.image('star', './assets/image/star.png');
    this.load.image('bomb', './assets/image/bomb.png');
    this.load.spritesheet('dude', './assets/image/dude.png', {
    frameWidth: 32, frameHeight: 48 });
}

3.2.5 create ()显示图像

在create ()添加显示图像的代码,此时有效果1:

function create (){
   
    // 一个简单的游戏背景
    this.add.image(400, 300, 'sky');
}
  • 效果1:
    在这里插入图片描述

3.2.6 在场景中添加平台

var platforms; // 全局变量

function create (){
   
    this.add.image(400, 300, 'sky');
    
    //  平台组包括地面和三个我们可以跳上去的平台
    // his.physics:含义是我们要使用物理引擎,这句代码创建了一个静态物体组,在Arcade物理模式中,有两种属性的物体:动体和静体
    platforms = this.physics.add.staticGroup();

    //  这里我们创建地面,缩放它以适应游戏的宽度(原始精灵的大小是400x32)。
    // 调用方法setScale(2),将图片拉宽到两倍,refreshBody()告诉系统更新它。
    platforms.create(400, 568, 'ground').setScale(2).refreshBody();

    //  创建三个我们可以跳上去的平台
    platforms.create(
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容[1],该引用提到了使用TypeScript编写的3D库three.js和ammo.js,可用于Web、移动和PC平台,它可以为您的项目提供物理学特性,并为Phaser 3游戏引入三维功能。您可以访问相应的网站以获取文档和示例。 而根据引用,无法找到G:\html\threejs-test\phaser3-start\01-phaser\node_modules\src文件夹。请确认该路径是否正确,并确保该文件夹存在。如果该文件夹确实不存在,您可以尝试解决该问题的方法包括检查文件路径是否正确、重新安装相应的模块或库,以及确保您的项目配置正确。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [enable3d:用于Three.js的:joystick_selector:独立3D框架物理(使用ammo.js)Phaser 3的3D扩展](https://download.csdn.net/download/weixin_38750761/14948289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Google搜索关键字](https://blog.csdn.net/weixin_30359021/article/details/99600212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值