当前位置: 首页 > java >正文

Godot开发2D冒险游戏——第二节:主角光环整起来!

变量的作用域

全局变量,局部变量,导出变量(可以在检查器当中快速查看)

为玩家添加移动动画 

现在游戏的玩家还只是在滑行,我们需要再添加玩家每个方向上的移动效果

删除原先的Item节点,创建一个动画精灵节点

 

如何显示动画帧

 

创建一个动画帧 

左侧是动画列表,右侧是每个动画的具体内容

 

将精灵表拆分成单独的动画

将资源添加进来

添加你需要的动画 

 

移动速率:每秒播放多少帧

 

同理可以添加新的动画,注意fps要保持一致

 

动画有了,但是什么时候播放他们呢?

使用代码来控制其执行流程,也就是什么时候执行,执行什么的问题

引用其他的节点 

现在动画位于动画节点里面,人物如果想要访问该节点资源的话,需要使用$符号来引用该节点

记得将玩家添加到游戏场景当中:

将game_scene场景作为主场景运行,设置错了可以去项目配置里面修改

 

但是运行之后,玩家虽然能正常移动了,但是玩家一走就停不下来了

解决方案:判断速度是否为0,为0就不走了

人物滑行问题的解决

新的问题:单独的前、后、左、右都没问题了,但是如果2个方向同时按下的话,人物会滑行

这是因为if语句2个条件都成立,2个动画会同时被播放

改进:使用if..elif...else语句

改进后的代码:

func _process(delta: float) -> void:var move_vector:Vector2=Input.get_vector("move_left","move_right","move_up","move_down")velocity = move_vector * move_speedif velocity.x > 0:$AnimatedSprite2D.play("move_right")elif velocity.x < 0:$AnimatedSprite2D.play("move_left")elif velocity.y < 0:$AnimatedSprite2D.play("move_up")elif velocity.y > 0:$AnimatedSprite2D.play("move_down")else:$AnimatedSprite2D.stop()move_and_slide()

这样我们的玩家就比较完美地移动起来了:

okok,今天的你就到此为止吧,明天还要接着🐺啊!🎈🎈🧡

 

http://www.xdnf.cn/news/1718.html

相关文章:

  • C# new Bitmap(32043, 32043, PixelFormat.Format32bppArgb)报错:参数无效,如何将图像分块化处理?
  • STM32F103_HAL库+寄存器学习笔记20 - CAN发送中断+ringbuffer + CAN空闲接收中断+接收所有CAN报文+ringbuffer
  • Python爬虫去重策略:增量爬取与历史数据比对
  • VulnHub-DC-2靶机渗透教程
  • zip是 Python 中 `zip` 函数的一个用法
  • 数模学习:一,层次分析法
  • flutter 小知识
  • 在Ubuntu 18.04 和 ROS Melodic 上编译 UFOMap
  • 跨浏览器音频录制:实现兼容的音频捕获与WAV格式生成
  • Spring Security认证流程
  • LabVIEW实现Voronoi图绘制功能
  • 【MQ篇】初识RabbitMQ保证消息可靠性
  • 信息系统项目管理工程师备考计算类真题讲解七
  • KMS工作原理及其安全性分析
  • Java Agent 注入 WebSocket 篇
  • java方法引用
  • kotlin和MVVM的结合使用总结(二)
  • 一种Spark程序运行指标的采集与任务诊断实现方式
  • CE第二次作业
  • NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve
  • Git 的基本概念和使用方式
  • C++跨平台开发要点
  • Spring AI 核心概念
  • 【Linux】网络基础和socket
  • HGDB安全版单机修改用户密码
  • spring-ai使用Document存储至milvus的数据结构
  • dockercompose文件仓库
  • [Java]动态代理
  • CSS基础
  • Ubuntu系统下交叉编译iperf3