phaser 基本入门使用

这篇博客介绍了如何初始化一个基于Phaser的游戏开发项目,包括安装Webpack、配置开发环境,设置.babelrc和tsconfig.json文件,以及创建基本的index.html、index.ts和webpack.config.js文件,最终实现一个简单的游戏效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始化项目

npm init  -y

安装webpack

npm i webpack@next -D  //yarn add  webpack@next

安装webpack cli

npm i webpack-cli@next -D  //yarn add  webpack-cli@next

配置 “dev”: “webpack --mode development”

安装phaser

npm i phaser -D  //yarn  add  phaser

安装babel-load

npm i @babel/preset-env -D //yarn  add
npm i @babel/core -D
npm i @babel/preset-typescript -D

index.ts

import { AUTO, Game, Scene } from "phaser";
class Demo extends Scene {
    constructor() {
        super("demo");//继承父类 并传入名字
    }
    public preload() { //j静态资源
        this.load.setBaseURL('http://labs.phaser.io');//
        this.load.image('sky', 'assets/skies/space3.png');//静态资源 图片地址 官方
        this.load.image('logo', 'assets/sprites/phaser3-logo.png');
        this.load.image('red', 'assets/particles/red.png');
    }
    public create() {//生命周期
        this.add.image(400, 300, "sky");//图片坐标 及对象
        const particles = this.add.particles("red");//创建粒子
        const emitter = particles.createEmitter({ //粒子发射器 可以官网导出配置
            speed: 100,//速度
            scale: { start: 1, end: 0 },//缩放
            blendMode: "ADD",
        });
        const logo = this.physics.add.image(400, 100, "logo");//创建物理引擎 并添加展示对象
        logo.setVelocity(100, 200);//运动速度 抛物线
        logo.setBounce(1, 1);//弹性系数
        logo.setCollideWorldBounds(true);//碰撞检测
        emitter.startFollow(logo);//光影跟随
    }
}
const  config: Phaser.Types.Core.GameConfig =  {
    type: AUTO,
    width: 800,
    height: 600,
    parent: "main",
    physics: {
        default: "arcade",
        arcade: {
            gravity: {
                y: 200
            }
        }
    },
    scene: Demo
}
const game = new Game(config);

###index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>game demo</title>
    <style>
      :root{
        --yd:()=>{
          console.log(123);
        }
      }
      /* css in js */
    </style>
  </head>
  <body>
    <div id="main"></div>
  </body>
</html>

webpack.config.js

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
  entry: {
    app: resolve('src/web/index.ts'),
  },
  module: {
    rules: [
      {
        test: /\.ts$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
        },
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      filename: 'index.html',
      template: resolve(__dirname, './src/web/index.html'),
    }),
  ],
};

.babelrc

{
    "presets": ["@babel/preset-env", "@babel/preset-typescript"]//编译ts
  }
  

tsconfig.json

{
    "compilerOptions": {
      "target": "ES5" //编译环境
    },
    "include": ["src"],
    "exclude": ["node_modules"]//排除
  }
  

简单效果
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值