mirror of
https://github.com/Steffo99/pineapple-surf.git
synced 2024-11-21 23:34:21 +00:00
🛠️ Add bobbing to peashooter
This commit is contained in:
parent
12b5cdd1b9
commit
1fcca314e2
11 changed files with 134 additions and 21 deletions
Binary file not shown.
|
@ -89,6 +89,7 @@ environment = SubResource("Environment_302o8")
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, -0.249636, 0.96834, 0, -0.96834, -0.249636, 0, 7.44648, 0)
|
transform = Transform3D(1, 0, 0, 0, -0.249636, 0.96834, 0, -0.96834, -0.249636, 0, 7.44648, 0)
|
||||||
|
light_color = Color(1, 0.698039, 0.470588, 1)
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("3_5378m")]
|
[node name="Player" parent="." instance=ExtResource("3_5378m")]
|
||||||
transform = Transform3D(-1, 3.48787e-16, -8.74228e-08, 3.48787e-16, 1, -3.48787e-16, 8.74228e-08, -3.48787e-16, -1, 2.08165e-12, 4.896, 2.08165e-12)
|
transform = Transform3D(-1, 3.48787e-16, -8.74228e-08, 3.48787e-16, 1, -3.48787e-16, 8.74228e-08, -3.48787e-16, -1, 2.08165e-12, 4.896, 2.08165e-12)
|
||||||
|
|
|
@ -129,6 +129,7 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
|
||||||
[node name="CameraViewportContainer" type="SubViewportContainer" parent="Head/Viewport"]
|
[node name="CameraViewportContainer" type="SubViewportContainer" parent="Head/Viewport"]
|
||||||
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
@ -168,6 +169,7 @@ theme = SubResource("Theme_smyke")
|
||||||
|
|
||||||
[node name="FPS_Label" type="Label" parent="HUD"]
|
[node name="FPS_Label" type="Label" parent="HUD"]
|
||||||
visible = false
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
anchors_preset = 1
|
anchors_preset = 1
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -180,7 +182,7 @@ horizontal_alignment = 2
|
||||||
script = SubResource("GDScript_iiadi")
|
script = SubResource("GDScript_iiadi")
|
||||||
|
|
||||||
[node name="PointsSpawner" type="Control" parent="HUD"]
|
[node name="PointsSpawner" type="Control" parent="HUD"]
|
||||||
layout_mode = 3
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
|
@ -191,6 +193,7 @@ grow_vertical = 2
|
||||||
script = SubResource("GDScript_5d122")
|
script = SubResource("GDScript_5d122")
|
||||||
|
|
||||||
[node name="AmmoLabel" type="Label" parent="HUD"]
|
[node name="AmmoLabel" type="Label" parent="HUD"]
|
||||||
|
layout_mode = 1
|
||||||
anchors_preset = 3
|
anchors_preset = 3
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
anchor_top = 1.0
|
anchor_top = 1.0
|
||||||
|
@ -213,13 +216,18 @@ copy_mode = 2
|
||||||
metadata/_edit_lock_ = true
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="HUD"]
|
[node name="SubViewportContainer" type="SubViewportContainer" parent="HUD"]
|
||||||
|
modulate = Color(1, 0.596078, 1, 1)
|
||||||
show_behind_parent = true
|
show_behind_parent = true
|
||||||
|
z_index = 4096
|
||||||
|
z_as_relative = false
|
||||||
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
stretch = true
|
stretch = true
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="HUD/SubViewportContainer"]
|
[node name="SubViewport" type="SubViewport" parent="HUD/SubViewportContainer"]
|
||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
|
@ -229,14 +237,15 @@ render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="WeaponCamera" type="Camera3D" parent="HUD/SubViewportContainer/SubViewport" node_paths=PackedStringArray("MainCamera")]
|
[node name="WeaponCamera" type="Camera3D" parent="HUD/SubViewportContainer/SubViewport" node_paths=PackedStringArray("MainCamera")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.581502, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.581502, 0)
|
||||||
visible = false
|
cull_mask = 2
|
||||||
cull_mask = 4
|
fov = 80.0
|
||||||
near = 0.001
|
near = 0.001
|
||||||
script = SubResource("GDScript_7qy62")
|
script = SubResource("GDScript_7qy62")
|
||||||
MainCamera = NodePath("../../../../Head/Viewport/CameraViewportContainer/GameViewport/Camera")
|
MainCamera = NodePath("../../../../Head/Viewport/CameraViewportContainer/GameViewport/Camera")
|
||||||
|
|
||||||
[node name="Crosshair" type="ColorRect" parent="HUD"]
|
[node name="Crosshair" type="ColorRect" parent="HUD"]
|
||||||
material = SubResource("ShaderMaterial_2p6rt")
|
material = SubResource("ShaderMaterial_2p6rt")
|
||||||
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
extends Node
|
extends Node3D
|
||||||
class_name BaseWeapon
|
class_name BaseWeapon
|
||||||
|
|
||||||
enum WeaponSlot {
|
enum WeaponSlot {
|
||||||
|
@ -12,12 +12,13 @@ enum AmmoType {
|
||||||
SINGLE
|
SINGLE
|
||||||
}
|
}
|
||||||
|
|
||||||
@export_range(0,1) var MOUSE_MOVEMENT_BOB_AMOUNT := 0.5
|
@export_range(0,0.002) var MOUSE_MOVEMENT_BOB_AMOUNT := 0.002
|
||||||
|
|
||||||
var player: Player
|
var player: Player
|
||||||
var weaponSlot: WeaponSlot = WeaponSlot.ONE
|
var weaponSlot: WeaponSlot = WeaponSlot.ONE
|
||||||
var ammoType: AmmoType = AmmoType.NONE
|
var ammoType: AmmoType = AmmoType.NONE
|
||||||
var mouse_movement := Vector2.ZERO
|
var last_mouse_movement := Vector2.ZERO
|
||||||
|
var mouse_movements := [Vector2.ZERO] as Array[Vector2]
|
||||||
|
|
||||||
func on_switch_in():
|
func on_switch_in():
|
||||||
pass
|
pass
|
||||||
|
@ -26,13 +27,26 @@ func on_switch_out():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func bob_weapon(node: Node3D, delta: float):
|
func bob_weapon(node: Node3D, delta: float):
|
||||||
|
if len(self.mouse_movements) >= 5:
|
||||||
|
self.mouse_movements.pop_front()
|
||||||
|
self.mouse_movements.push_back(Vector2(
|
||||||
|
self.last_mouse_movement.y * 0.05,
|
||||||
|
self.last_mouse_movement.x * 0.05
|
||||||
|
))
|
||||||
|
|
||||||
|
var avg_mvmt = self.mouse_movements \
|
||||||
|
.reduce(func(accum, number): return accum + number) \
|
||||||
|
/ len(self.mouse_movements) as Vector2
|
||||||
node.position = Vector3.ZERO.lerp(Vector3(
|
node.position = Vector3.ZERO.lerp(Vector3(
|
||||||
|
-avg_mvmt.y,
|
||||||
|
avg_mvmt.x,
|
||||||
0,
|
0,
|
||||||
self.mouse_movement.x*0.05,
|
), MOUSE_MOVEMENT_BOB_AMOUNT / delta)
|
||||||
-self.mouse_movement.y*0.05,
|
|
||||||
), delta / MOUSE_MOVEMENT_BOB_AMOUNT)
|
self.last_mouse_movement = Vector2.ZERO
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event is InputEventMouseMotion:
|
if event is InputEventMouseMotion:
|
||||||
var vec = event.relative
|
var vec = event.relative
|
||||||
self.mouse_movement = Vector2(vec.y, vec.x)
|
self.last_mouse_movement = event.relative
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ func _ready() -> void:
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _process(_delta: float) -> void:
|
func _process(_delta: float) -> void:
|
||||||
|
super.bob_weapon(self, _delta)
|
||||||
var current_time = Time.get_ticks_msec()
|
var current_time = Time.get_ticks_msec()
|
||||||
|
|
||||||
if Input.is_action_just_pressed("fire") and current_time > (last_fired + FIRE_RATE*1000):
|
if Input.is_action_just_pressed("fire") and current_time > (last_fired + FIRE_RATE*1000):
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
[gd_scene load_steps=5 format=3 uid="uid://cu53ekfgwammu"]
|
[gd_scene load_steps=4 format=3 uid="uid://cu53ekfgwammu"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://player/onhand/PeaShooter.gd" id="1_bl35a"]
|
[ext_resource type="Script" path="res://player/onhand/PeaShooter.gd" id="1_bl35a"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bjjjpgtdtub3r" path="res://assets/peashooter/peashooter.gltf" id="2_131r2"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bcl83sr2mgwaf" path="res://player/onhand/peashooter_model.tscn" id="2_ra8vl"]
|
[ext_resource type="PackedScene" uid="uid://bcl83sr2mgwaf" path="res://player/onhand/peashooter_model.tscn" id="2_ra8vl"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bp07vx515hkr2" path="res://assets/peashooter/peashooter.wav" id="4_uhlty"]
|
[ext_resource type="AudioStream" uid="uid://bp07vx515hkr2" path="res://assets/peashooter/peashooter.wav" id="4_uhlty"]
|
||||||
|
|
||||||
|
@ -16,11 +15,11 @@ collide_with_areas = true
|
||||||
|
|
||||||
[node name="peashooter2" parent="." instance=ExtResource("2_ra8vl")]
|
[node name="peashooter2" parent="." instance=ExtResource("2_ra8vl")]
|
||||||
transform = Transform3D(-0.5, 0, -7.54979e-08, 0, 0.5, 0, 7.54979e-08, 0, -0.5, 0.6, -0.8, 0.5)
|
transform = Transform3D(-0.5, 0, -7.54979e-08, 0, 0.5, 0, 7.54979e-08, 0, -0.5, 0.6, -0.8, 0.5)
|
||||||
|
|
||||||
[node name="peashooter" parent="." instance=ExtResource("2_131r2")]
|
|
||||||
transform = Transform3D(-0.5, 0, -7.54979e-08, 0, 0.5, 0, 7.54979e-08, 0, -0.5, 0.6, -0.8, 0.5)
|
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
||||||
stream = ExtResource("4_uhlty")
|
stream = ExtResource("4_uhlty")
|
||||||
volume_db = -7.517
|
volume_db = -7.517
|
||||||
|
|
||||||
|
[node name="model" parent="." instance=ExtResource("2_ra8vl")]
|
||||||
|
transform = Transform3D(-0.5, 1.74393e-16, 4.37114e-08, 1.74393e-16, 0.5, -1.74393e-16, -4.37114e-08, -1.74393e-16, -0.5, 0.6, -0.8, 0.5)
|
||||||
|
|
BIN
player/onhand/peashooter_model.exr
Normal file
BIN
player/onhand/peashooter_model.exr
Normal file
Binary file not shown.
28
player/onhand/peashooter_model.exr.import
Normal file
28
player/onhand/peashooter_model.exr.import
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="2d_array_texture"
|
||||||
|
type="CompressedTexture2DArray"
|
||||||
|
uid="uid://d6tfm0fr3nuk"
|
||||||
|
path.etc2="res://.godot/imported/peashooter_model.exr-6bb301faafe319f062fc21ef485e69c0.etc2.ctexarray"
|
||||||
|
path.s3tc="res://.godot/imported/peashooter_model.exr-6bb301faafe319f062fc21ef485e69c0.s3tc.ctexarray"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["etc2", "s3tc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://player/onhand/peashooter_model.exr"
|
||||||
|
dest_files=["res://.godot/imported/peashooter_model.exr-6bb301faafe319f062fc21ef485e69c0.etc2.ctexarray", "res://.godot/imported/peashooter_model.exr-6bb301faafe319f062fc21ef485e69c0.s3tc.ctexarray"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/channel_pack=1
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
slices/horizontal=1
|
||||||
|
slices/vertical=1
|
BIN
player/onhand/peashooter_model.lmbake
Normal file
BIN
player/onhand/peashooter_model.lmbake
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@
|
||||||
config_version=5
|
config_version=5
|
||||||
|
|
||||||
_global_script_classes=[{
|
_global_script_classes=[{
|
||||||
"base": "Node",
|
"base": "Node3D",
|
||||||
"class": &"BaseWeapon",
|
"class": &"BaseWeapon",
|
||||||
"language": &"GDScript",
|
"language": &"GDScript",
|
||||||
"path": "res://player/onhand/BaseWeapon.gd"
|
"path": "res://player/onhand/BaseWeapon.gd"
|
||||||
|
@ -115,6 +115,8 @@ fire={
|
||||||
|
|
||||||
[layer_names]
|
[layer_names]
|
||||||
|
|
||||||
|
3d_render/layer_1="Default"
|
||||||
|
3d_render/layer_2="OnHand"
|
||||||
3d_physics/layer_1="Default"
|
3d_physics/layer_1="Default"
|
||||||
3d_physics/layer_2="Pickups"
|
3d_physics/layer_2="Pickups"
|
||||||
3d_physics/layer_3="Player"
|
3d_physics/layer_3="Player"
|
||||||
|
|
Loading…
Reference in a new issue