从零开始的Godot游戏开发日记(三)

这两天重构了一遍代码,整体思路是使用信号输入输出去代替射线物理碰撞的检测,从而用更少的代码实现拖动卡牌等一系列基本操作。事实证明gui_input()确实可以大大减少代码量,在实现上也比较简单易懂。然而实际添加功能时还是遇到了几个问题,这其中最具代表性的是当一张卡牌拖动完毕后,如果鼠标没有移出卡牌的范围,卡牌是处于无法点选的状态的,并且也没有悬停时的高亮放大效果。这一问题是由于鼠标离开信号和卡牌状态重置进行了绑定。诸如这样的问题多如牛毛,由于笔者编程经验不足,实际花费了很长时间才解决这些问题。这时回顾物理检测方式,才终于感到物理检测方式也有其优势。

功能上,添加了简易的卡牌阴影效果,使卡牌在明亮背景下更具立体感;添加了当卡牌随鼠标拖动时轻微向拖动方向摆动的动画效果,可以提供一点拖动交互时的质感。

目前能够想到的优化点和待办有:

  1. 添加摆动幅度随鼠标拖动幅度改变的机制。鼠标拖动幅度越大,鼠标移动速度越快,卡牌的摆动幅度也更大。目前卡牌的摆动幅度是一个固定值。如果添加上述效果,交互感会更好。
  2. 添加手牌区和桌面卡位。手牌区实现基本的卡牌容器功能,设置固定的手牌数量上限,手牌展示于用户界面的最下方。桌面卡位可以放置并吸附卡牌,且一经放置,玩家将无法互动取出已放置的卡牌。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇