Godot基础教程04:实例-控制大炮

本节将讲解如何做一个简单的实例:

  • 用方向键左右控制大炮左右移动
  • 用方向键上下控制大炮炮口方向
  • 用空格键发射炮弹

大概就是这个效果:
运行效果
嗯。。你是不是想说画面好丑。。由于本人画功清奇,大家先将就着看。。

素材准备

先准备以下素材:
准备素材
第一个是大炮的架子,我实在不会画,先整个方块代替一下。
第三个是炮管,第四个是炮弹。

场景布置

新建一个项目,再新建一个2D场景,在2D场景中创建如下节点:
主场景

说明
Node2D : 根节点,Node2D类型
----dapao : 大炮节点,Sprite类型,加载资源dapao.png
--------paoguan : 炮管,Sprite类型,加载资源pao.png
------------zidanguadian : 子弹挂点,Node2D类型
--------lunzi : 轮子,Sprite类型,加载资源lunzi.png

细心的同鞋可能发现了,为什么没有炮弹节点呢?这是因为炮弹是在发射时动态创建出来的,而且场景中有可能会出现多个炮弹。
按上面的说明,为每一个Sprite加载好资源,然后移动每个节点的位置,让它变成这样:
场景摆放效果
选中paoguan节点,在右侧属性面板展开offset,修改offset属性,使炮管的中心点处于根部。再在属性面板中找到Transform并展开,拖动Rotation Degrees右侧的滑块,即可旋转炮管。
选中zidanguadian节点,在右侧属性面板中找到Transform并展开,修改x坐标,使这个节点的位置正好处于炮口处

zidanguadian节点仅仅是用于定位,当发射炮弹时,只需要获得这个节点的坐标,作为炮弹的初始坐标即可
当炮管旋转时,因为子弹挂点是炮管的子节点,所以其位置会受到炮管的影响,而始终处于炮口位置,这样就省去了计算炮口位置的麻烦

保存这个场景,名为main.tscn
新建一个场景,增加子节点如下:
子弹场景
Node2D节点下新建一个Sprite节点,并为其添加炮弹的图片资源,不要修改它的位置。
将这个新场景保存为zidan.tscn

主场景添加脚本

这下重头戏来了,我们先在main.tscn场景中,为根节点添加一个脚本,名为main.gd,内容如下:

extends Node2D

#定义变量时在前面加 export,表示可以在编辑器中直接修改
#大炮左右移动的速度 px/s
export var speed = 100

#炮管旋转速度 角度/s
export var rotation_speed = 60

#发射CD s
export var cd = 0.3

#炮管最高仰角
export var max_rotation = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值