Andorid AlertDialog 点击后自动消失_开始制作第一个游戏(2)(放置点击类游戏)...

34459e599835cc606617ec48c0b63bd3.png

首先我们做一个点一下数字+1

首先需要有个文本ui在画面上,于是我们加个两个label 加入场景,

555e5f70cab7920d84bcbdff775718ce.png

外面呢个里面的文字是”当前饼干:“这个常量文字,里面的是数字

dab73075103c8ff1e070b30f786ead40.png

但是发现label里面text当输入中文的时候是不显示的,因为默认的字体是不支持中文的。

于是要改一下这个label的字体,支持ttf格式

36404863b424e2346719bf8a61ea5954.png

找一个支持中文的字体,没有的可以在最下面连接里面下载,然后

ad62db84720d44370e1d37581675ed9c.png

9c846d2de84b71e23ed9223cb5fe7a77.png

在custom font里面新建一个dynamicfont 然后font data里面选择这个ttf

728db5601efb880bb5b8d950faba6bce.png
就可以显示中文了

为了防止以后每次新建需要文本的节点都要区设置一下font 于是右键dynamifont 然后save

4d03d1d319b1c1a28e8f239e8f728672.png

保存进一个你记得住的目录里面下次可以用。

然后修改下脚本,移动下位置。

3f17dbca538e6bb1cebf0c5139a917fe.png

这个时候在运行,你就会发现当你点击一下饼干,饼干上面的数字也会跟着增加。

8b02512a7363f385b99bb46fa1688531.png

但是这样看上去太单调了,至少加个点击反馈会感觉好一点。

创建一个动画节点。

5caa7a3e88f3ab8299cf2c6f97218c83.png

就是我选择的这个,他非常方便,一切皆可动画。

cea122284d7c1fb9e5868b7101289e4c.png

然后选择动画节点,点击下面的animation new 新建一个动画随便取个名字,

fc01cc9de8b3807564f12f4848c07c95.png

然后你会发现当你选择动画节点后,中间下面出来的这个动画框你不把她关掉的话,所有属性都会在最后有一个钥匙的图案。

d6b9f614dd12ed727b5a55dc7a7b65a4.png

当你点击钥匙时,就会在这个动画框里面新建一个帧。

6d23e700342ac1dce2bd05b394bd47e6.png

我这里选择了饼干的的rect_scale 属性然后ctrl +d 可以复制 或者可以吧呢个线拉到后面 再添加一贞,然后你可以选择后面的呢个再熟悉栏里面修改大一点比如4然后点击动画兰里面的运行,或者手动拖拉这个线就可以看到效果。

但是这个时候放大会发现,它不是中间放大的,会偏移。可以调整中心点

28f1da78126ecaaae52e8a480c4baa33.png

535c8bff2a739b9b3207a88ac5389dbd.png

吧中心点设置中间,就可以中心放大了。

然后就是再脚本里面播放动画。

473221c437492ba766d862c7e6f53efe.png
再点击的函数里多添加一行播放动画

现在运行下看看

发现效果不好只有变大效果,再加个变小的效果,然后时间紧凑一点

f4817081b6a9d9c6163e51a85022ad58.gif
帧动画

这个时候会发现他的速度时恒定的,可以通过改变右边的easing 来改变动画先快后慢还是先慢后快,1时动画前后速度一样块这个自己玩一下就知道了。

181a17c33b16099f90eb96654316cce4.png

最后我调出来的效果。

cae68f3136b154ec9906ae80fd07c659.gif

虽然感觉不是很完美,但是大家知道意思就行了,因为这是个艺术问题,而不是一个技术问题。

然后再脚本中修改一下前面的播放动画。

927344f8ecb7d07e9cb376aca9170cec.png

这样在运行就完美了。

23505bceff9404793a7288930c54094a.gif

但是这样还是差点感觉,反馈似乎还是有点欠缺。

我准备再加一个”+1“的效果。当饼干被点击时出现一个+1 往上漂浮然后消失。

我的思路是这样,先创建一个场景它里面有一个文本+1 一个动画,然后动画时让+1 往上漂浮 然后过一秒中释放他,然后点一下饼干就创建这个场景到主场景。

首先创建一个节点label和ani结构如图,

31762d106b17b27d22fc29e5160b337d.png

然后制作动画,

6486005794a7cc4a2b0da8aadba3cc06.gif

效果差不多这样。一个是移动了位置还有一个是改变了颜色的透明。

然后把它勾上自动播放动画。

96c17eaaa340adb508dba48428259351.png

就是这个。

然后保存他为场景

8487ce842a6070f75526d53fd45958b2.png

e6e39a450ec89c65ddec86e68353c9eb.png

保存完毕后它就变成了这样,不能编辑了。但是可以在

1a9a53f09f87a726835d9b9add87fd51.png

保存的路径里打开它再去编辑他。

6f497447c1a710e00a24482a3ed7d396.png

现在给这个+1的节点加个脚本,呢就是0.5s 后让他自己销毁。

可以加一个时间的节点

cc8f2eb487e86984772554b3788b19bd.png
主要是记时功能

3c7c483e04ed5903f0a9d4e1bb0b5fcc.png

wait time设置0.5s 因为动画是0.5s 播放玩动画自己销毁。

36e5d553641b36b10d294d082eb1a68b.png

加入脚本。

然后再回到前面的main主场景

917ba27fd5f9a53292f4459b36f6f453.png

修改饼干的脚本。

运行并看下效果

2859a47c14f7bd20b0afe2de743fd2f3.png

发现有几个问题,第一+1被放大了,因为+1被加到饼干里面所以是他的子节点,所以父节点变大,子节点也会变大,第二位置不是想要的位置。

这个时候位置可以通过手动tscn.rect_position.x=xxx,tscn.rect_position.y=xxx来手动调整位置。

和tscn.rect_scale.x .... 来手动调制大小。

但是有个更方便的方法。

c06d885a2b98974a5cc823a6e876a562.png

创建一个control节点并把他移动到想要的位置上,然后+1就放到它的里面。

3e7346abcaa3297e47e60c1305148157.png

然后脚本里面修改下修改到加到pos节点里,然后运行看下效果。

abf7e1c34bd99bdcaefbd23c6d54e08c.png

突然感觉还是大一点比较好。

如果想要修改字体大小的话可以在这里,

c89b999b48988416355b5b9a5fd5fe37.png

但是有一点要注意,你修改了后,所有用到此字体的都会修改。为此你要事先make unique一下如下图。

50e4ecaba5c5d867fdc8724496b28c0b.png

这样这个资源就是独一的了你修改后不会影响到其他节点。

最后代码

#+1的场景

extends Label

func _ready():
	#时间节点超时0.5s 调用_on_timeout
	$time.connect("timeout",self,"_on_timeout")
	pass
func _on_timeout():
	#自己销毁
	queue_free()
	pass

#饼干

extends Button
#默认饼干数量0
var cookies_num = 0
#+1的场景
var _1=load("res://scene/+1.tscn")
func _ready():
	#创建按钮按下信号到_on_pressed方法上
	connect("pressed",self,"_on_pressed")
	pass 
func _on_pressed():
	#按下时饼干数量+1
	cookies_num+=1
	#获取我的上一级里面的文字节点里面的数量节点改变它的text  
	#cookies_num 是数字类型 要转换成文字类型才能赋值给.text
	$"../文字/数量".text=str(cookies_num)
	#先暂停之气那播放的动画
	$"../ani".stop()
	#播放ani节点的click动画
	$"../ani".play("click")
	#添加+1的效果
	add_1()
	pass
func add_1():
	#实例化_1的场景
	var tscn = _1.instance()
	#添加到当前场景
	$"../pos".add_child(tscn)

68a1006786741da6eeb1638526993dd0.gif
最后的效果

最后我稍微调制了一下上图为最后的效果,录制gif的软件有可能效果不大好。。

最后可以想想如何让这个现在虽然看上去很单调的游戏变得好玩起来,发挥你对游戏独到的见解。比如饼干可以购买道具,然后道具可以自动购买饼干等等。

点击这里下载本次资源​kylacpp.cn

如果你对这个引擎或是我的教程感兴趣的话可以加入我的qq群:691534145

虽然里面有很多水货,但这应该是国内最活跃的godot engine 并且讨论游戏的讨论群了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值