- 出道即巅峰,先做个盈利千万的小项目
- 新建 Godot 项目
- Godot 界面介绍
- FlappyBird:1.Hello World
- FlappyBird:2.坠落吧,小鸟
- FlappyBird:3.在哪坠落就在哪飞起来
- FlappyBird:4. 无限地面
- FlappyBird:4.1 无限地面之 Godot 青年 (AnimationPlayer) 版
- FlappyBird:4.2 无限地面之普通青年版
- FlappyBird:4.3 无限地面之文艺青年(shader) 版
- FlappyBird:5.1 无尽水管子滚滚来(一)
- Godot Engine:5 种碰撞体以及 RigidBody 的 4 种模式
- Godot Engine:碰撞和碰撞检测的简单实例(RigidBody2D 与 Area2D 碰撞)
- Godot Engine:碰撞和碰撞检测的简单实例(RigidBody2D 与 StaticBody2D 碰撞)
- FlappyBird:5.2 无尽水管子滚滚来(二)
- Godot Engine:Timer 节点使用范例
- FlappyBird:6 来点 MUSIC(音效系统)
- Godot Engine:用自动加载(AutoLoad) 实现单例模式(Singleton Pattern)
- FlappyBird:7 心里有数(计分系统)
- Godot Engine:本地数据存取的帮助类(加密/非加密)
- FlappyBird:8 让数据说话(显示分数)
- Godot Engine:如何使用外部字体和 Label 节点制作一个计时器
- FlappyBird:9.1 天下没有不 OVER 的 GAME(上)
- Godot Engine:两行代码实现观察者模式(Observer Pattern),就问你服不服?
- FlappyBird:9.2 天下没有不 OVER 的 GAME(下)
- FlappyBird:10 大不了从头再来(新局启动)
- Godot Engine:用 Call Method Track(方法回调轨道)实现动画回调
- FlappyBird:11 番外篇:罗永浩都抖音了,要不咱们也抖一抖?(屏幕震动)
- Godot Engine:屏幕振动效果的实现
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
FlappyBird:4.3 无限地面之文艺青年(shader) 版
本章节效果图
原理
这种方法是通过 Shader 的 UV 动画实现的
步骤
1. 重新导入素材
Godot 默认的图片导入模式是非重复的,由于我们要移动 UV,因此要把"back.png"设为 Repeat
然后将它重新导入一下
2.写 Shader
新建一个叫“Shaders”的文件夹,专门存放着色器代码
创建 Shader 文件
命名为“2d_uv_scroll.shader”
“2d_uv_scroll.shader” 的代码
shader_type canvas_item;
render_mode unshaded;
uniform float speed : hint_range(0.00,1.00) = 0.0;
void vertex(){
UV.x += speed*TIME;
}
3. 新建材质
为”Floor“新建材质,来覆盖默认材质
把"2d_uv_scroll.shader"赋给 Floor 的材质
把数值调整到合适大小
于是就得到了效果图的样子
小结
Shader 版是个人最推荐的版本
- 它实现了装饰性效果和游戏逻辑的解耦合
- 不需要复制多余的“Floor”节点
- “2d_uv_scroll.shader”可以重复利用,简单地调整一下数值就可以方便地多重滚动的效果
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论