Projectiles+bounce
I hate github desktop oh my god just let me create a new branch i gave up on creating a new branch It wont let me move to a new branch cause it thinks there are conflicts. what the fuck is the point of that It may say that there are conflicting files. push them through anyways, git is tweaking. I tested it myself, and the last commit to main was also from me so there's nothing to be conflicting with
This commit is contained in:
BIN
block/Assets/PlaceHolders/Blob.png
Normal file
BIN
block/Assets/PlaceHolders/Blob.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
40
block/Assets/PlaceHolders/Blob.png.import
Normal file
40
block/Assets/PlaceHolders/Blob.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bsjn11wcewgya"
|
||||
path="res://.godot/imported/Blob.png-3a1a5deaf3590dc1853ac0b0bd158753.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/PlaceHolders/Blob.png"
|
||||
dest_files=["res://.godot/imported/Blob.png-3a1a5deaf3590dc1853ac0b0bd158753.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
block/Assets/PlaceHolders/BuffMonk.png
Normal file
BIN
block/Assets/PlaceHolders/BuffMonk.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 224 KiB |
40
block/Assets/PlaceHolders/BuffMonk.png.import
Normal file
40
block/Assets/PlaceHolders/BuffMonk.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://xg0mu5mtpcgo"
|
||||
path="res://.godot/imported/BuffMonk.png-1bcf3f620dedfe8f64fe9de0addc56fe.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/PlaceHolders/BuffMonk.png"
|
||||
dest_files=["res://.godot/imported/BuffMonk.png-1bcf3f620dedfe8f64fe9de0addc56fe.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
block/Assets/PlaceHolders/FallGuy.png
Normal file
BIN
block/Assets/PlaceHolders/FallGuy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 470 KiB |
40
block/Assets/PlaceHolders/FallGuy.png.import
Normal file
40
block/Assets/PlaceHolders/FallGuy.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dfo7q0g3skud5"
|
||||
path="res://.godot/imported/FallGuy.png-02f4a1ba0f67e389b5e6e02f7fee4c6c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/PlaceHolders/FallGuy.png"
|
||||
dest_files=["res://.godot/imported/FallGuy.png-02f4a1ba0f67e389b5e6e02f7fee4c6c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
25
block/Scenes/Enemy1.tscn
Normal file
25
block/Scenes/Enemy1.tscn
Normal file
@@ -0,0 +1,25 @@
|
||||
[gd_scene format=3 uid="uid://db1oeukux1376"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://xg0mu5mtpcgo" path="res://Assets/PlaceHolders/BuffMonk.png" id="1_g6sln"]
|
||||
[ext_resource type="Script" uid="uid://d34snqiuscbv8" path="res://Scenes/enemy_1.gd" id="1_s7od6"]
|
||||
[ext_resource type="PackedScene" uid="uid://b3ngjk0lkeemd" path="res://Scenes/Projectile_1.tscn" id="2_n3m8v"]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_g6sln"]
|
||||
|
||||
[node name="Enemy1" type="CharacterBody2D" unique_id=1765361359]
|
||||
script = ExtResource("1_s7od6")
|
||||
Projectile = ExtResource("2_n3m8v")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=93765061]
|
||||
position = Vector2(22, -29)
|
||||
scale = Vector2(0.3, 0.3)
|
||||
texture = ExtResource("1_g6sln")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1856443411]
|
||||
scale = Vector2(6, 6)
|
||||
shape = SubResource("CapsuleShape2D_g6sln")
|
||||
|
||||
[node name="DirectionTimer" type="Timer" parent="." unique_id=509704860]
|
||||
autostart = true
|
||||
|
||||
[connection signal="timeout" from="DirectionTimer" to="." method="_on_timer_timeout"]
|
||||
49
block/Scenes/Projectile_1.gd
Normal file
49
block/Scenes/Projectile_1.gd
Normal file
@@ -0,0 +1,49 @@
|
||||
extends Node2D
|
||||
|
||||
const speed = 200
|
||||
@onready var player: CharacterBody2D = get_tree().get_first_node_in_group("player")
|
||||
var direction = Vector2.RIGHT
|
||||
#var debug_normal: Vector2 = Vector2.ZERO
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
#direction = (player.global_position - global_position).normalized()
|
||||
#look_at(player.global_position)
|
||||
# pass
|
||||
direction = (player.global_position - global_position).normalized()
|
||||
global_rotation=direction.angle()
|
||||
#direction= global_position.direction_to(player.global_position)
|
||||
#direction = Vector2.RIGHT.rotated(rotation+ get_angle_to(playerDirection))
|
||||
|
||||
func _draw():
|
||||
pass
|
||||
# draw_line(Vector2(1,0) * 1000, debug_normal * 50, Color.RED, 2.0)
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
position += direction * speed * delta
|
||||
#position += playerDirection * speed * delta
|
||||
look_at(player.global_position)
|
||||
|
||||
#look_at(direction)#
|
||||
|
||||
func get_facing_direction():
|
||||
# Get the direction vector based on the node's current rotation
|
||||
var direction_vector: Vector2 = Vector2.from_angle(rotation)
|
||||
return direction_vector
|
||||
|
||||
func changeTrajectory(direction_vector: Vector2):
|
||||
rotation = rad_to_deg(atan2(direction_vector.y, direction_vector.x))
|
||||
|
||||
func changeDirection(normal: Vector2):
|
||||
print("direction:", direction)
|
||||
# direction = direction.bounce(normal)
|
||||
direction = normal
|
||||
#direction = newDirection
|
||||
#direction = direction.bounce(perp_line)
|
||||
rotation = rad_to_deg(direction.angle())
|
||||
print("direction:", direction)
|
||||
|
||||
func bounce(normal: Vector2):
|
||||
direction = direction.bounce(normal)
|
||||
rotation = rad_to_deg(direction.angle())
|
||||
1
block/Scenes/Projectile_1.gd.uid
Normal file
1
block/Scenes/Projectile_1.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bxqq5rcm0twuk
|
||||
34
block/Scenes/Projectile_1.tscn
Normal file
34
block/Scenes/Projectile_1.tscn
Normal file
@@ -0,0 +1,34 @@
|
||||
[gd_scene format=3 uid="uid://b3ngjk0lkeemd"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bsjn11wcewgya" path="res://Assets/PlaceHolders/Blob.png" id="1_1rre0"]
|
||||
[ext_resource type="Script" uid="uid://bxqq5rcm0twuk" path="res://Scenes/Projectile_1.gd" id="1_lrei0"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_4ipem"]
|
||||
script/source = "extends Area2D
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
#func _ready() -> void:
|
||||
# pass # Replace with function body.
|
||||
|
||||
|
||||
"
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_v0834"]
|
||||
|
||||
[node name="Projectile1" type="Node2D" unique_id=1531719161]
|
||||
script = ExtResource("1_lrei0")
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="." unique_id=1629546418 groups=["Projectiles"]]
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
script = SubResource("GDScript_4ipem")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=286593893]
|
||||
scale = Vector2(1.1, 1.1)
|
||||
shape = SubResource("CircleShape2D_v0834")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Area2D" unique_id=1983633174]
|
||||
position = Vector2(-0.9999995, 1)
|
||||
scale = Vector2(0.17, 0.17)
|
||||
texture = ExtResource("1_1rre0")
|
||||
89
block/Scenes/enemy_1.gd
Normal file
89
block/Scenes/enemy_1.gd
Normal file
@@ -0,0 +1,89 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
class_name Enemy1
|
||||
enum States
|
||||
{
|
||||
IDLE,
|
||||
ROAM,
|
||||
CHASE,
|
||||
ATTACK,
|
||||
TAKING_DAMMAGE,
|
||||
DEAD
|
||||
}
|
||||
const max_distance = 750
|
||||
const SPEED = 300.0
|
||||
var is_enemy_chase: bool
|
||||
#
|
||||
var health = 100
|
||||
var health_max = 100
|
||||
var health_min = 0
|
||||
|
||||
var attack_dammage = 10
|
||||
|
||||
var dir: Vector2
|
||||
var knockback = 200
|
||||
var current_state = States.IDLE
|
||||
|
||||
|
||||
|
||||
|
||||
@onready var player: CharacterBody2D = get_tree().get_first_node_in_group("player")
|
||||
@export var Projectile: PackedScene
|
||||
|
||||
func _on_timer_timeout() -> void:
|
||||
$DirectionTimer.wait_time = chose([1,2,3])
|
||||
if current_state !=States.CHASE:
|
||||
dir = chose([Vector2.RIGHT, Vector2.LEFT])
|
||||
var newProjectile = Projectile.instantiate() as Node2D
|
||||
newProjectile.global_position=global_position
|
||||
# newProjectile.global_rotation=global_rotation
|
||||
get_tree().current_scene.add_child(newProjectile)
|
||||
|
||||
|
||||
|
||||
func chose(array):
|
||||
array.shuffle()
|
||||
return array.front()
|
||||
|
||||
func wraparound():
|
||||
var direction = global_position.direction_to(player.global_position)
|
||||
global_position += direction * max_distance*2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
look_at(player.global_position)
|
||||
#print(player.global_position)
|
||||
var distance = global_position.distance_to(player.global_position)
|
||||
if distance>max_distance:
|
||||
wraparound()
|
||||
|
||||
|
||||
"""
|
||||
if (global_position.x-player.global_position.x)>600:#player to the right
|
||||
global_position.x=player.global_position.x-600#move right
|
||||
elif(global_position.x-player.global_position.x)<-600:#player to the left
|
||||
global_position.x=player.global_position.x+600#move left
|
||||
|
||||
if (global_position.y-player.global_position.y)>600:#player to the up
|
||||
global_position.y=player.global_position.y-600#move up
|
||||
elif(global_position.y-player.global_position.y)<-600:#player to the down
|
||||
global_position.y=player.global_position.y+600#move down
|
||||
"""
|
||||
"""
|
||||
func _physics_process(delta: float) -> void:
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity += get_gravity() * delta
|
||||
# Get the input direction and handle the movement/deceleration.
|
||||
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||
var direction := Input.get_axis("ui_left", "ui_right")
|
||||
if direction:
|
||||
velocity.x = direction * SPEED
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||
"""
|
||||
1
block/Scenes/enemy_1.gd.uid
Normal file
1
block/Scenes/enemy_1.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://d34snqiuscbv8
|
||||
@@ -1,7 +1,11 @@
|
||||
[gd_scene format=3 uid="uid://du7hapc7kscm6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://b448mpav6ek52" path="res://Scenes/arena_game_manager.tscn" id="1_ebmjs"]
|
||||
[ext_resource type="PackedScene" uid="uid://db1oeukux1376" path="res://Scenes/Enemy1.tscn" id="2_qxrlw"]
|
||||
|
||||
[node name="Game" type="Node2D" unique_id=850692785]
|
||||
|
||||
[node name="ArenaGameManager" parent="." unique_id=1024187604 instance=ExtResource("1_ebmjs")]
|
||||
|
||||
[node name="Enemy1" parent="." unique_id=1765361359 instance=ExtResource("2_qxrlw")]
|
||||
position = Vector2(297, 101)
|
||||
|
||||
@@ -20,4 +20,4 @@ func _process(_delta: float) -> void:
|
||||
# look_at(get_global_mouse_position()) # uncompensated mouse control
|
||||
|
||||
var angle_to_mouse = get_angle_to(get_global_mouse_position())
|
||||
rotation += angle_to_mouse + deg_to_rad(90) #+90 to makes top of image face mouse, not side
|
||||
rotation += angle_to_mouse# + deg_to_rad(90) #+90 to makes top of image face mouse, not side
|
||||
|
||||
@@ -2,16 +2,40 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://bah031ailk0ha" path="res://Scenes/player.gd" id="1_cvnsp"]
|
||||
[ext_resource type="Texture2D" uid="uid://g0m835iol4mp" path="res://Assets/PlaceHolders/Screenshot 2024-11-24 210808.png" id="1_v0iea"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcmuqd6p3jhdw" path="res://Assets/PlaceHolders/Elmo.png" id="3_6t5aa"]
|
||||
[ext_resource type="Script" uid="uid://b7vgyn15fioeu" path="res://Scenes/shield_hitbox.gd" id="4_vgqql"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_v0iea"]
|
||||
|
||||
[node name="CharacterBody2D" type="CharacterBody2D" unique_id=1419412180]
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6t5aa"]
|
||||
|
||||
[node name="Player" type="CharacterBody2D" unique_id=1419412180 groups=["player"]]
|
||||
script = ExtResource("1_cvnsp")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=719417979]
|
||||
[node name="Body" type="Sprite2D" parent="." unique_id=719417979]
|
||||
scale = Vector2(0.114894986, 0.11449075)
|
||||
texture = ExtResource("1_v0iea")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1477808378]
|
||||
[node name="BodyColision" type="CollisionShape2D" parent="." unique_id=1477808378]
|
||||
scale = Vector2(4.2653956, 4.2653956)
|
||||
shape = SubResource("CircleShape2D_v0iea")
|
||||
|
||||
[node name="Shield" type="Sprite2D" parent="." unique_id=212386399]
|
||||
position = Vector2(50, 0)
|
||||
scale = Vector2(0.15, 0.15)
|
||||
texture = ExtResource("3_6t5aa")
|
||||
|
||||
[node name="ShieldColision" type="CollisionShape2D" parent="." unique_id=948717563]
|
||||
position = Vector2(50, 0)
|
||||
scale = Vector2(2.5, 6)
|
||||
shape = SubResource("RectangleShape2D_6t5aa")
|
||||
|
||||
[node name="ShieldHitbox" type="Area2D" parent="." unique_id=2121529100]
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
script = ExtResource("4_vgqql")
|
||||
|
||||
[node name="ShieldHitboxCol" type="CollisionShape2D" parent="ShieldHitbox" unique_id=1829894325]
|
||||
position = Vector2(50, 0)
|
||||
scale = Vector2(2.5, 6)
|
||||
shape = SubResource("RectangleShape2D_6t5aa")
|
||||
|
||||
45
block/Scenes/shield_hitbox.gd
Normal file
45
block/Scenes/shield_hitbox.gd
Normal file
@@ -0,0 +1,45 @@
|
||||
extends Area2D
|
||||
|
||||
var debug_normal: Vector2 = Vector2.ZERO
|
||||
var bounceTrajectory: Vector2
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
area_entered.connect(_on_area_entered)
|
||||
print("READY!")
|
||||
|
||||
|
||||
|
||||
func _draw():
|
||||
# pass
|
||||
draw_line(bounceTrajectory *1000, debug_normal * 50, Color.RED, 2.0) # normal
|
||||
# draw_line(Vector2(400,900), debug_normal * 50, Color.RED, 2.0) # normal
|
||||
# draw_line(Vector2.ZERO, debug_bounce * 50, Color.GREEN, 2.0) # bounce direction
|
||||
# draw_line(Vector2.ZERO, debug_incoming * 50, Color.BLUE, 2.0) # incoming projectile
|
||||
|
||||
|
||||
func _on_area_entered(area):
|
||||
if area.is_in_group("Projectiles"):
|
||||
draw_line(Vector2(400,900), debug_normal * 50, Color.RED, 2.0) # normal
|
||||
|
||||
print("projectile has hit player shield")
|
||||
#gets the proper velocity
|
||||
var projectile_velocity = area.get_parent().get_facing_direction()
|
||||
print("projectile speed......................", projectile_velocity)
|
||||
var shield_normal = global_transform.x.normalized()
|
||||
#var bounceTrajectory: Vector2 = projectile_velocity.bounce(shield_normal)
|
||||
bounceTrajectory = projectile_velocity.bounce(shield_normal)
|
||||
print("Shield Normal: ", shield_normal)
|
||||
if area.get_parent().has_method("changeDirection"):
|
||||
draw_line(bounceTrajectory, debug_normal * 50, Color.RED, 2.0)
|
||||
# area.changeDirection(bounceTrajectory)
|
||||
# area.get_parent().changeTrajectory(bounceTrajectory)
|
||||
area.get_parent().changeDirection(bounceTrajectory)
|
||||
#if area.has_method("bounce"):
|
||||
# area.bounce(bounceTrajectory)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta: float) -> void:
|
||||
# pass
|
||||
1
block/Scenes/shield_hitbox.gd.uid
Normal file
1
block/Scenes/shield_hitbox.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b7vgyn15fioeu
|
||||
@@ -15,6 +15,11 @@ run/main_scene="uid://du7hapc7kscm6"
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[global_group]
|
||||
|
||||
player="Making this for an easy reference to the player in the enemies code"
|
||||
Projectiles="Tell if the object is a projectile or not"
|
||||
|
||||
[input]
|
||||
|
||||
move_up={
|
||||
|
||||
57
todoList
57
todoList
@@ -12,3 +12,60 @@ Done
|
||||
|
||||
Current imported assests:
|
||||
https://screamingbrainstudios.itch.io/tiny-texture-pack
|
||||
|
||||
|
||||
|
||||
x1*x2+y1*y2
|
||||
|
||||
along normal speedx*sp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var proje_normal = global_transform.x.normalized()
|
||||
#proje_normal.y = -proje_normal.y
|
||||
print("Proje Normal: ", proje_normal)
|
||||
var speed_perp: float = proje_normal.dot(normal)
|
||||
var perp_line: Vector2 = Vector2(normal.y,-normal.x)
|
||||
var speed_para: float = proje_normal.dot(perp_line)
|
||||
print("speed perp: ", speed_perp)
|
||||
print("speed para: ", speed_para)
|
||||
# this is just to check my math
|
||||
# should be aproximately 1 (there will be some bit depth precision errors)
|
||||
print("speed hype: ", speed_para*speed_para + speed_perp*speed_perp)
|
||||
|
||||
var newDirection: Vector2 = Vector2(
|
||||
(speed_perp * normal.x) + (speed_para * normal.y),
|
||||
(speed_perp * normal.y) + (speed_para *-normal.x))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var projectile_velocity = area.get_parent().get_facing_direction()
|
||||
print("projectile speed......................", projectile_velocity)
|
||||
var shield_normal = global_transform.x.normalized()
|
||||
print("Shield Normal: ", shield_normal)
|
||||
#shield_normal.y = -shield_normal.y
|
||||
# if abs(projectile_velocity.y)>abs(projectile_velocity.x):
|
||||
# shield_normal = global_transform.y.normalized()
|
||||
#shield_normal.y = -shield_normal.y
|
||||
#shield_normal.x = -shield_normal.x
|
||||
# var shield_perp = Vector2(shield_normal.y,-shield_normal.x)
|
||||
# if area.has_method("bounce"):
|
||||
# if projectile_velocity.dot(shield_perp) < 0:
|
||||
# area.bounce(shield_normal)
|
||||
if area.has_method("bounce"):
|
||||
#if projectile_velocity.dot(shield_normal) < 0:
|
||||
area.bounce(shield_normal)
|
||||
Reference in New Issue
Block a user