3D, 贴地运动

贴地运动,想要做好一款游戏,需要非常多的数学知识 

https://kidscancode.org/godot_recipes/4.x/3d/3d_align_surface/index.html

 

 


func align_with_y(xform, new_y):
  xform.basis.y = new_y
  xform.basis.x = -xform.basis.z.cross(new_y)
  xform.basis = xform.basis.orthonormalized()
  return xform

 

func _physics_process(delta):
  velocity += gravity * delta
  get_input(delta)
  velocity = move_and_slide_with_snap(velocity, Vector3.DOWN*2, Vector3.UP, true)
  var n = $RayCast.get_collision_normal()
  var xform = align_with_y(global_transform, n)
  global_transform = global_transform.interpolate_with(xform, 12 * delta)

posted @   porter_代码工作者  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
历史上的今天:
2018-07-09 Android手机刘海屏(附工具类)
点击右上角即可分享
微信分享提示