mirror of
https://github.com/Steffo99/pineapple-surf.git
synced 2024-11-21 15:34:17 +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="."]
|
||||
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")]
|
||||
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
|
||||
|
||||
[node name="CameraViewportContainer" type="SubViewportContainer" parent="Head/Viewport"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
@ -168,6 +169,7 @@ theme = SubResource("Theme_smyke")
|
|||
|
||||
[node name="FPS_Label" type="Label" parent="HUD"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
|
@ -180,7 +182,7 @@ horizontal_alignment = 2
|
|||
script = SubResource("GDScript_iiadi")
|
||||
|
||||
[node name="PointsSpawner" type="Control" parent="HUD"]
|
||||
layout_mode = 3
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
|
@ -191,6 +193,7 @@ grow_vertical = 2
|
|||
script = SubResource("GDScript_5d122")
|
||||
|
||||
[node name="AmmoLabel" type="Label" parent="HUD"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
|
@ -213,13 +216,18 @@ copy_mode = 2
|
|||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="HUD"]
|
||||
modulate = Color(1, 0.596078, 1, 1)
|
||||
show_behind_parent = true
|
||||
z_index = 4096
|
||||
z_as_relative = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
stretch = true
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="HUD/SubViewportContainer"]
|
||||
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")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.581502, 0)
|
||||
visible = false
|
||||
cull_mask = 4
|
||||
cull_mask = 2
|
||||
fov = 80.0
|
||||
near = 0.001
|
||||
script = SubResource("GDScript_7qy62")
|
||||
MainCamera = NodePath("../../../../Head/Viewport/CameraViewportContainer/GameViewport/Camera")
|
||||
|
||||
[node name="Crosshair" type="ColorRect" parent="HUD"]
|
||||
material = SubResource("ShaderMaterial_2p6rt")
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
extends Node
|
||||
extends Node3D
|
||||
class_name BaseWeapon
|
||||
|
||||
enum WeaponSlot {
|
||||
|
@ -12,12 +12,13 @@ enum AmmoType {
|
|||
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 weaponSlot: WeaponSlot = WeaponSlot.ONE
|
||||
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():
|
||||
pass
|
||||
|
@ -26,13 +27,26 @@ func on_switch_out():
|
|||
pass
|
||||
|
||||
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(
|
||||
-avg_mvmt.y,
|
||||
avg_mvmt.x,
|
||||
0,
|
||||
self.mouse_movement.x*0.05,
|
||||
-self.mouse_movement.y*0.05,
|
||||
), delta / MOUSE_MOVEMENT_BOB_AMOUNT)
|
||||
), MOUSE_MOVEMENT_BOB_AMOUNT / delta)
|
||||
|
||||
self.last_mouse_movement = Vector2.ZERO
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventMouseMotion:
|
||||
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.
|
||||
func _process(_delta: float) -> void:
|
||||
super.bob_weapon(self, _delta)
|
||||
var current_time = Time.get_ticks_msec()
|
||||
|
||||
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="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="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")]
|
||||
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
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
||||
stream = ExtResource("4_uhlty")
|
||||
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
|
||||
|
||||
_global_script_classes=[{
|
||||
"base": "Node",
|
||||
"base": "Node3D",
|
||||
"class": &"BaseWeapon",
|
||||
"language": &"GDScript",
|
||||
"path": "res://player/onhand/BaseWeapon.gd"
|
||||
|
@ -115,6 +115,8 @@ fire={
|
|||
|
||||
[layer_names]
|
||||
|
||||
3d_render/layer_1="Default"
|
||||
3d_render/layer_2="OnHand"
|
||||
3d_physics/layer_1="Default"
|
||||
3d_physics/layer_2="Pickups"
|
||||
3d_physics/layer_3="Player"
|
||||
|
|
Loading…
Reference in a new issue