Phaser笔记-scene中的preload、create、update、player、键盘控制

这篇具有很好参考价值的文章主要介绍了Phaser笔记-scene中的preload、create、update、player、键盘控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一般phaser最简单的配置文件如下:

let config = {
        type: Phaser.AUTO,
        width: 800,
        height:600,
        scene: {
            preload: preload,
            create: create,
            update: update
        },
        physics:{
            default: 'arcade',
            arcade: {
                gravity: { y: 300},
                debug: false
            }
        }
    };

其中scene有3个函数:preload、create、update

preload:是在create函数前调用的,一般用于资源的加载;

create:preload完成后,就会调用到这函数,这个函数一般用于构造界面,关联玩家键盘,游戏大部分逻辑事件等等等;

update:会按周期进行调用,一般用于键盘控制玩家,玩家坐标更新等。

下面是player键盘控制,首先定义变量:

let player;

create函数中奖player构造成精灵,并且设置好回弹参数以将碰撞属性设置为true:

player = this.physics.add.sprite(100, 450, 'dude');
player.setBounce(0.2);
player.setCollideWorldBounds(true);

如果给出的精灵是这样的:

Phaser笔记-scene中的preload、create、update、player、键盘控制

那么还需要创建动画,方便后边的键盘操作,上面的精灵是个横版的图,左边4幅是左,中间那一幅是停止的,右边4幅是右走。

this.anims.create({

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

this.anims.create({

    key: 'turn',
    frames: [{key: 'dude', frame: 4}],
    frameRate: 20
});


this.anims.create({

    key: 'right',
    frames: this.anims.generateFrameNumbers('dude', {start: 5, end: 8}),
    frameRate: 10,
    repeat: -1
});

 比如横版游戏中有个platforms,玩家可以站在平台上:

this.physics.add.collider(stars, platforms);

在平台上有些加分道具(如stars),当玩家捡到(重叠)到加分道具会执行对应的回调函数:

this.physics.add.overlap(player, stars, collectStar, null, this);

其中stars是变量,collectStar是回调函数。

同样平台上还会有一些敌人,如果玩家接触到这些敌人也会触发对应的回调函数:

this.physics.add.collider(player, bombs, hitBomb, null, this);

其中hitBomb就是回调函数。

关于键盘首先定义cursor变量:

let cursors;

在create函数中创建光标:

cursors = this.input.keyboard.createCursorKeys();

在update函数中通过按下不同的键盘干不同的事情:

function update(){

    if(cursors.left.isDown){
    }
    else if(cursors.right.isDown){
    }
    else{
    }

    if(cursors.up.isDown && player.body.touching.down) {
    }

}

分别是左键被按下,右键被按下,跳起一次。

如将玩家(精灵)在不同操作下,设置不同的X,Y轴坐标,以及播放不同的动画。文章来源地址https://www.toymoban.com/news/detail-512658.html

function update(){

    if(cursors.left.isDown){

        player.setVelocityX(-160);
        player.anims.play('left', true);
    }
    else if(cursors.right.isDown){

        player.setVelocityX(160);
        player.anims.play('right', true);
    }
    else{

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

    if(cursors.up.isDown && player.body.touching.down) {

            player.setVelocityY(-330);
    }
}

到了这里,关于Phaser笔记-scene中的preload、create、update、player、键盘控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 论文笔记: NSG: Neural Scene Graphs for Dynamic Scenes

    对动态场景进行渲染,完成动态前景与背景分离、背景inpainting、动态前景编辑和新视角生成。 之前的方法如nerf只能够渲染静态场景(利用的是静态场景在多视角下的一致性),如将整张图像场景中的所有物体编码进单个神经网络中,缺乏表征动态物体和将这些物体分解为单

    2024年01月16日
    浏览(42)
  • Unity笔记(2):Make Game Scene【2D】

    目录 1、创建一个2D项目 2、导入游戏素材 3、搭建游戏场景 (1)单个添加物体 (2)瓦片添加物体 如何自己绘制瓦片素材? 素材链接:Free Platform Game Assets | 2D Environments | Unity Asset Store  (1)单个添加物体         添加land:直接将资源文件中的png文件拖拽到场景中。      

    2024年02月08日
    浏览(42)
  • Unity Addressables学习笔记(3)---加载远程场景Scenes

    我是创建在Resources/Scenes目录下,如图: Game1Group就是我新创建的一个Group用来存放场景1的所有资源,分组的配置跟Remote一样,都是远程的,加载地址是我本地启动的web服务器地址,URL里WebGL那个目录也不是必须的,根据自己实际的来。 上边的图就是拖完的状态。 我是在最开始

    2024年01月25日
    浏览(74)
  • 并发工具类Phaser

    在面试这一篇我们介绍过CountDownLatch和CyclicBarrier,它们都是jdk1.5提供的多线程并发控制类,内部都是用AQS这个同步框架实现。 在我们的实际项目中,有很多场景是需要从数据库查询一批数据,多线池执行某些操作,并且要统计结果,我们对这个过程做了一些封装,由于要统计

    2024年02月13日
    浏览(29)
  • [Win11]解决PS/2标准键盘带感叹号,笔记本键盘无法使用。代码19:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个

    I8042prt 实现了 I8042prt 服务,并 i8042prt.sys 了其可执行映像。 I8042prt 的功能包括: 与硬件相关,同时操作 PS/2 样式键盘和鼠标设备。 键盘和鼠标共享 i/o 端口,但使用不同的中断、中断服务例程 (ISR) 和 ISR 调度完成例程。 即插即用、电源管理和 WMI 旧设备的操作。 键盘类服务

    2023年04月25日
    浏览(258)
  • 【学习笔记】Unity基础(十)【Unity界面之Scene窗口工具栏】

    转载请注明出处:🔗https://blog.csdn.net/weixin_44013533/article/details/131707918 主要参考: 官方手册 Scene视图 注:本文使用的unity版本是2021.3.25f Scene 视图是正在创建的世界的交互式视图。Scene 视图可用于选择和定位景物、角色、摄像机、光源和所有其他类型的游戏对象。 本节将详细

    2024年02月06日
    浏览(49)
  • Super Resolve Dynamic Scene from Continuous Spike Streams论文笔记

    近期,脉冲相机在记录高动态场景中展示了其优越的潜力。不像传统相机将一个曝光时间内的视觉信息进行压缩成像,脉冲相机连续地输出二的脉冲流来记录动态场景,因此拥有极高的时间分辨率。而现有的脉冲相机重建方法主要集中在重建和脉冲相机相同分辨率的图像上。

    2024年02月10日
    浏览(49)
  • 【论文笔记】Scene Reconstruction From 4D Radar Data with GAN and Diffusion

    原文链接:https://kth.diva-portal.org/smash/get/diva2:1799731/FULLTEXT01.pdf 本文使用深度生成模型(DGM)实现以4D雷达为条件的图像生成,以提供雷达数据的另一可视化方法并增强可解释性。 实验中的雷达和RGB相机固定在路面上方并经过时空同步。雷达和图像的数据对会作为网络的训练数

    2024年02月03日
    浏览(51)
  • Django rest_framework Serializer中的create、Views中的create/perform_create的区别

    对于后端来说,前后端分离的方式能让前后端的开发都爽。和所有的爽一样,每爽一次都要付出一定的代价。而前后端分离的代价,就是后端要面对巨量的模块化的功能组件以及这些组件的常规用法与重写复用。有一点经验,关于[Django rest_framework ] Serializer 中的create()、 Vie

    2024年02月13日
    浏览(35)
  • 详解python中的update函数

    update() 函数是Python字典对象的一个内置方法,用于将一个字典的内容更新到另一个字典中。 update() 函数的语法如下: 其中, dictionary 是要更新的字典对象, iterable 是一个可迭代对象, 通常是另一个字典、一个包含键值对的元组列表、或者是另一个可迭代的字典。 update() 函

    2024年02月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包