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

网站的简单布局网站信息发布

网站的简单布局,网站信息发布,网络营销教学大纲,苏州网站建设苏州目录 实现效果 场景搭建 脚本实现 移动 动画 完整脚本 相机跟随 总结 实现效果 场景搭建 本文章只分享了关于移动和动画的,没有给碰撞体,大家根据需要自行添加吧 相机的缩放大小可以根据自己的需要调整 我的人物动画结构是这样的,待机动…

目录

实现效果

 场景搭建

脚本实现

移动

 动画

完整脚本

相机跟随

总结


实现效果


 场景搭建

  本文章只分享了关于移动和动画的,没有给碰撞体,大家根据需要自行添加吧

  相机的缩放大小可以根据自己的需要调整

  我的人物动画结构是这样的,待机动(idle)}和移动动画(walk


脚本实现

移动

  首先,我们需要声明一个移动速度变量,然后将移动代码写在Process函数中

using Godot;
using System;public partial class Player : CharacterBody2D
{[Export] public float moveSpeed;public override void _Process(double delta){Move((float)delta);}void Move(float delta){Vector2 direction = Vector2.Zero;if (Input.IsActionPressed("right"))direction.X += 1;if (Input.IsActionPressed("left"))direction.X -= 1;if (Input.IsActionPressed("down"))direction.Y += 1;if (Input.IsActionPressed("up"))direction.Y -= 1;direction = direction.Normalized();Velocity = direction * moveSpeed;MoveAndSlide(); //根据速度滑动式移动角色,并自动处理碰撞}}

  构建场景,在人物面板设置变量值,然后在面板里面添加按键映射,我们可以就能正常的移动人物了

 动画

  接下来是动画部分,我用枚举实现了一个简单的状态机,并且在移动代码里面添加了水平翻转的代码

using Godot;
using System;public partial class Player : CharacterBody2D
{private enum AnimState{idle,walk}AnimState animState = AnimState.idle;private AnimatedSprite2D _playerAnim;public override void _Ready(){_playerAnim = GetNode<AnimatedSprite2D>("./AnimatedSprite2D");}public override void _Process(double delta){Move((float)delta);AnimStateSwitch();}void Move(float delta){...if (direction != Vector2.Zero){...if (direction.X > 0) _playerAnim.FlipH = false;else if (direction.X < 0) _playerAnim.FlipH = true;}else{animState = AnimState.idle;}}void AnimStateSwitch(){switch (animState){case AnimState.idle: _playerAnim.Play("idle"); break;case AnimState.walk: _playerAnim.Play("walk"); break;}}
}

 构建并运行场景,我们就能丝滑的控制人物的动画了

完整脚本

using Godot;
using System;public partial class Player : CharacterBody2D
{[Export] public float moveSpeed;private enum AnimState{idle,walk}AnimState animState = AnimState.idle;private AnimatedSprite2D _playerAnim;public override void _Ready(){_playerAnim = GetNode<AnimatedSprite2D>("./AnimatedSprite2D");}public override void _Process(double delta){Move((float)delta);AnimStateSwitch();}void Move(float delta){Vector2 direction = Vector2.Zero;if (Input.IsActionPressed("right"))direction.X += 1;if (Input.IsActionPressed("left"))direction.X -= 1;if (Input.IsActionPressed("down"))direction.Y += 1;if (Input.IsActionPressed("up"))direction.Y -= 1;direction = direction.Normalized();if (direction != Vector2.Zero){Velocity = direction * moveSpeed;animState = AnimState.walk;MoveAndSlide();if (direction.X > 0) _playerAnim.FlipH = false;else if (direction.X < 0) _playerAnim.FlipH = true;}else{animState = AnimState.idle;}}void AnimStateSwitch(){switch (animState){case AnimState.idle: _playerAnim.Play("idle"); break;case AnimState.walk: _playerAnim.Play("walk"); break;}}
}

相机跟随

  关于相机的平滑跟随,我们有一个简单的办法,设置Position Smoothing属性EnabledTrue即可平滑跟随,可以设置speed来控制跟随的速度


总结

  这里简单的跟大家分享了一下基础的控制人物方法,大家可以根据需要自行调整

http://www.dtcms.com/wzjs/580082.html

相关文章:

  • 网站开发要多钱网络宣传方案
  • 商务互联做网站怎么样wordpress 首行缩进
  • asp评价网站开发文档建设部网站怎么查岗位人员
  • 宁波网站优化公司电话江西住房和城乡建设厅网站首页
  • 外贸公司网站多少钱完整网站开发视频
  • 网站开发师培训典型的网站开发人员
  • 百度网站的目标罗湖网站公司
  • 网站已收录的404页面的查询wix做中文网站怎么样
  • 画出网站和目录结构图上海app服务商
  • wordpress ui iphoneseo如何快速排名
  • 公司做网站的步骤万维网网站续费
  • 关于进一步加强网站建设和有没有大人和小孩做的网站
  • seo网站内容更新如何在百度上做公司做网站
  • 外贸网站友情链接南通网站制作维护
  • 福州网站建站公司4366网页游戏大厅
  • 网站建设方案书编写定制型网站建设
  • 一个虚拟主机如何建多个网站代码用html5做的网站过程
  • 樟树网站开发什么是网络营销? 你觉得网络营销的核心是什么?
  • 如何做一个网站设计洛可可设计公司待遇
  • 北京网站设计与网站制作网站500错误 虚拟主机
  • 网址关键词查询seo运营培训
  • 做网站学好哪些软件手机网站建设与布局
  • 空间设计网站大全wordpress 图片2m
  • 为什么网站不见了网站备案回访电话号码
  • 网站开发设计的完成情况免费发布信息的网站平台有哪些
  • 成立网站要什么手续wap网站建设兴田德润实惠
  • 各大房产网站宜昌市住房和城乡建设局网站
  • 七星彩网站开发公司比较好的wordpress
  • 电商网站的宣传推广做网站 数据标准
  • 广西南宁网站建设公司大英网站建设工作