Phaser笔记-鼠标点击获取坐标键盘控制sprite

news2025/1/15 16:55:41

代码如下:

import 'phaser';


class PlayGame extends Phaser.Scene {

    constructor() {

        super("PlayGame");
    }

    preload() {

        this.load.spritesheet('run', 'assets/_Run.png', {frameWidth: 120, frameHeight: 80});
        this.load.spritesheet('idle', 'assets/_Idle.png', {frameWidth: 120, frameHeight: 80});
        this.load.spritesheet('roll', 'assets/_Roll.png', {frameWidth: 120, frameHeight: 80});
    }

    create() {

        this.player = this.physics.add.sprite(100, 300, 'idle');
        this.player.setScale(2);


        this.floor = this.add.graphics();
        this.floor.lineStyle(1, 0x000, 1);

        this.floor.lineBetween(0, 600, 800, 600);


        this.anims.create({

            key: 'jump',
            frames: this.anims.generateFrameNumbers('jump', {start: 0, end: 2}),
            frameRate: 10,
            repeat: -1
        });

        this.anims.create({

            key: 'run',
            frames: this.anims.generateFrameNumbers('run', {start: 0, end: 9}),
            frameRate: 10,
            repeat: -1
        });

        this.anims.create({

           key: 'idle',
           frames: this.anims.generateFrameNumbers('idle', {start: 0, end: 9}),
            frameRate: 10,
            repeat: -1
        });

        this.anims.create({

            key: 'roll',
            frames: this.anims.generateFrameNumbers('roll', {start: 0, end: 11}),
            frameRate: 10,
            repeat: -1
        });

        this.input.on('pointerdown', function (pointer) {

            console.log(pointer.x, pointer.y);
        }, this);

        this.direct = 1;

        this.cursors = this.input.keyboard.createCursorKeys();
        this.player.setCollideWorldBounds(true);
    }

    update() {

        if(this.cursors.left.isDown){

            this.direct = 0;
            this.player.flipX = true;
            this.player.setVelocityX(-160);
            this.player.anims.play('run', true);
        }
        else if(this.cursors.right.isDown){

            this.direct = 1;
            this.player.flipX = false;
            this.player.setVelocityX(160);
            this.player.anims.play('run', true);
        }
        else if(this.cursors.up.isDown) {

            if(this.direct == 1)
                this.player.setVelocityX(320);
            else
                this.player.setVelocityX(-320);

            this.player.anims.play('roll', true);
        }
        else{

            this.player.setVelocityX(0);
            this.player.anims.play('idle', true);
        }


        if(this.cursors.space.isDown && this.player.body.blocked.down){

            this.player.setVelocityY(-300);
        }

    }
}

let config = {
    width: 800,
    height: 600,
    parent: 'thegame',
    scene: PlayGame,
    backgroundColor: '#fff',
    physics:{
        default: 'arcade',
        arcade: {
            gravity: { y: 300},
            debug: false
        }
    }
};

new Phaser.Game(config);

项目结构如下:

运行截图如下:

这里说明下:

if(this.cursors.space.isDown && this.player.body.blocked.down){

    this.player.setVelocityY(-300);
}

跳的话可以使用this.cursors.space.isDown。

然后再是this.player.body.blocked.down

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GEE:对Sentinel-2遥感影像进行处理,水体提取与可视化

作者:CSDN _养乐多_ 本文介绍了通过Google Earth Engine平台,并使用哨兵数据提取水体掩膜的方法和代码。通过裁剪和去除云等处理步骤,最终得到具有水体掩膜的影像,并进行可视化和导出。这种方法基于归一化水体指数(N…

MIT 6.S081 (BOOK-RISCV-REV1)教材第一章内容

MIT 6.S081 教材第一章内容 引言第一章 操作系统接口进程和内存I/O和文件描述符管道文件系统真实世界 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第一章教材内容翻译加整理。 本课程前置知识主要涉及: C语言(建议阅读C程序语言设计—第二版)RISK-V汇编推荐阅读: 程…

JavaScript 数据透视表 DHTMLX Pivot Crack

DHTMLX Pivot JavaScript 数据透视表 - 强大的数据汇总和报告 使用我们的高速 JavaScript/HTML5 Pivot 组件可视化您的复杂数据,从而提高您的商业智能。 它可以帮助您以方便的方式汇总大型数据集。 主要特征 纯 JavaScript 库,可轻松与任何服务器端集成…

Linux安装Mysql8,过程详细(离线安装mysql)

因公司需要,需要在服务器上安装一个mysql,但是机器没有外网权限,所以记录一下安装过程,供大家参考。 官网下载安装包 地址:https://dev.mysql.com/downloads/ 如图示,选择MySQL Community Server 如图示&a…

git新手将网页设计代码提交到github上

以下是将代码提交到Github上的一些步骤。如果中途遇到问题或不会的需要我帮忙,可以文章底部联系我。 1. 创建Github账户 首先,您需要在Github上注册一个账户。 如果您已经有账户了,请跳过这一步。 2. 创建一个新的repository 在您的Githu…

格式化数字的实用命令:numfmt

在 Linux 系统中,numfmt 是一个用于格式化数字的实用工具。它可以将数字转换为不同的表示方式,如十进制、二进制、字节单位等。本文将详细介绍 numfmt 命令的使用方法,并提供一些适合初学者的示例。 Numfmt 命令语法 numfmt 命令的基本语法如…

搭建stm32电机控制代码框架(四)——单路PWM生成

STM32中单路PWM的生成一般是基于某一个通用定时器,本次小实验选取TIM2通用定时器,选择PA5作为PWM端口输出。配置步骤如下: 第一步:配置外部晶振与基本的时钟,如下图所示。 (1)选择外部晶振 &a…

关于java k8s容器环境中的jvm配置与优化

1. 前言 环境 版本 备注 k8s v1.22 配置cpu/mem limit、健康/就绪检查 openjdk 8 openjdk version "1.8.0_342" k8s容器化(docker)环境更好的解决了 java app 运行环境的封装问题。但存在着一些限制,比如 Java 并不能发现…

流马平台连接数据库

新增数据库配置 在环境管理处对于环境下新增数据库配置 编辑SQL 在用例管理-步骤编辑-逻辑控件处添加前置SQL,编辑SQL 选择数据库名称,查询语句,填写要保存的变量名,并在下方填写查询语句 示例从user表中取出username和passwo…

Semi-supervised Learning(半监督学习)

目录 Introduction Why semi-supervised learning help? Semi-supervised Learning for Generative Model Supervised Generative Model Semi-supervised Generative Model Low-density Separation Assumption Self Training Entropy-based Regularization(基…

docker启动MYSQL8并挂载数据目录

1.创建需要docker挂载的数据目录 mkdir -p /datah/mydata/mysql/conf mkdir -p /datah/mydata/mysql/data mkdir -p /datah/mydata/mysql/log mkdir -p /datah/mydata/mysql/mysql-files 2. 在目录下面 /datah/mydata/mysql/conf 创建配置文件 my.cnf [client] default-charact…

VH6501使用

目录 1.VH6501接口介绍 2.使用场景 2.1当VH6501作为硬件接口卡作通信/监测使用时,使用CH1的任意接口与总线连接即可 2.2针对单节点干扰时,使用CH1的任意接口与被测节点连接即可 2.3针对多节点干扰时,需要通过CH1的两个接口将VH6501串联到…

C++ ---- 模板

目录 泛型编程 函数模板 函数模板语法 模板使用 函数模板原理 函数模板的实例化 隐式实例化 显示实例化 模板参数的匹配原则 类模板 类模板的定义语法 类模板的实例化 非类型模板参数 类模板的特化 全特化 半特化(部分特化) 两个参数偏…

排查Javascript内存泄漏案例(一)

Chrome DevTools里的Performance面板和Memory面板可以用来定位内存问题。 如何判断应用发生内存泄漏? 为了证明螃蟹的听觉在腿上,一个专家捉了只螃蟹并冲它大吼,螃蟹很快就跑了。然后捉回来再冲它吼,螃蟹又跑了。最后专家把螃蟹的…

浅谈 ChatGPT —— 现代巴别塔

theme: nico 一、用 ChatGPT 一搜就到你这了 ChatGPT 在去年 11 月发布以后,上线 5 天后就有了 100 万用户,上线两个月后已有上亿用户,可谓一炮而红。起初我对 ChatGPT 是没有什么感知的,我单纯认为人工智能还没有发展到完全超越人…

数字经济等相关概念与官方文档

一、数字经济 数字经济,作为一个内涵比较宽泛的概念,凡是直接或间接利用数据来引导资源发挥作用,推动生产力发展的经济形态都可以纳入其范畴。在技术层面,包括大数据、云计算、物联网、区块链、人工智能、5G通信等新兴技术。在应…

美食菜谱类APP小程序开发功能有哪些?

想要开发出一款靠谱好用的美食菜谱APP小程序系统,需要具备哪些基本功能呢? 1、视频教学。对于美食的教学教学方法最直接受用的就是视频教学,用户浏览起来更加方便而且可以直接跟着视频操作,效果更佳。用户也可以自己拍摄制…

JVM垃圾回收篇之相关概念和算法

垃圾回收相关概念 什么是垃圾 垃圾就是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收掉的垃圾,如果不及时进行清理,越积越多就会导致内存溢出. 为什么需要GC 不进行回收,早晚会导致内存溢出,Java自动管理垃圾回收,不需要开发人员手动干预,这就有可能导致开…

【记录】OLAP和OLTP

下面为提炼的重点内容,全部内容参考:OLAP和OLTP OLAP和OLTP的不同设计要求 对于OLTP系统和OLAP系统有哪些不同的要求?要说清楚这个,首先需要分析一下这两个系统的关键特征。 对于OLTP系统来说,最重要的事情是&#…

LIS系统字典模块功能

字典管理模块: 系统参数功能简介:集中设置系统使用过程中所需的参数值,一般由开发或实施人员进行设置。 标本管理功能简介:标本管理是对检验业务中涉及的检验标本类型进行初始化设置, …