mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat: 添加子弹生成和动画功能,创建铅笔子弹及其资源
This commit is contained in:
@@ -0,0 +1 @@
|
||||
extends BulletBase
|
||||
@@ -1 +1,17 @@
|
||||
extends EntityBase
|
||||
class_name Bear
|
||||
|
||||
func ai():
|
||||
pass
|
||||
func attack(type):
|
||||
if type == 0:
|
||||
var weaponPos = findWeaponAnchor("normal")
|
||||
return BulletBase.generate(preload("res://components/Bullets/PurpleCrystal.tscn"), self, weaponPos, (get_global_mouse_position() - weaponPos).angle())
|
||||
func sprint():
|
||||
move(Vector2(
|
||||
Input.get_axis("m_left", "m_right"),
|
||||
Input.get_axis("m_up", "m_down")
|
||||
) * sprintMultiplier, true)
|
||||
func heal(count: float):
|
||||
health += count
|
||||
DamageLabel.create(-count, false, damageAnchor.global_position + MathTool.randv2_range(GameRule.damageLabelSpawnOffset))
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
extends EntityBase
|
||||
class_name Rooster
|
||||
|
||||
func _ready():
|
||||
super._ready()
|
||||
|
||||
func ai():
|
||||
texture.play("walk")
|
||||
var direction = Vector2(
|
||||
|
||||
@@ -12,6 +12,9 @@ class_name BulletBase
|
||||
@export var canDamageSelf: bool = false # 是否可以伤害发射者
|
||||
@export var needEnergy: float = 4.0 # 发射时需要消耗的能量
|
||||
|
||||
@onready var animator = $"%animator"
|
||||
@onready var hitbox = $"%hitbox"
|
||||
|
||||
var launcher: EntityBase = null
|
||||
var spawnInWhen: float = 0
|
||||
var spawnInWhere: Vector2 = Vector2.ZERO
|
||||
@@ -20,6 +23,8 @@ func _ready():
|
||||
area_entered.connect(hit)
|
||||
spawnInWhen = Time.get_ticks_msec()
|
||||
spawnInWhere = position
|
||||
animator.play("spawn")
|
||||
spawn()
|
||||
func _process(_delta: float) -> void:
|
||||
if lifeTime > 0:
|
||||
if Time.get_ticks_msec() - spawnInWhen >= lifeTime:
|
||||
@@ -51,6 +56,8 @@ func ai():
|
||||
pass
|
||||
func destroy():
|
||||
queue_free()
|
||||
func spawn():
|
||||
pass
|
||||
|
||||
static func generate(
|
||||
bullet: PackedScene,
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
class_name TickTool
|
||||
|
||||
static func millseconds(ms: int):
|
||||
return await WorldManager.tree.create_timer(ms / 1000.0).timeout
|
||||
Reference in New Issue
Block a user