瀏覽代碼

Merge pull request #416 from aaronfranke/platformer-tweaks

Tweak the 2D platformer demos, particularly Physics Platformer
Aaron Franke 5 年之前
父節點
當前提交
f6c4a0000f

文件差異過大導致無法顯示
+ 0 - 13
2d/physics_platformer/Stage2.tscn


+ 16 - 13
2d/physics_platformer/enemy/Enemy.tscn

@@ -24,13 +24,13 @@ tracks/0/keys = {
 "values": [ 4 ]
 }
 tracks/1/type = "value"
-tracks/1/path = NodePath("Particles2D:emitting")
+tracks/1/path = NodePath("Explosion:emitting")
 tracks/1/interp = 1
 tracks/1/loop_wrap = true
 tracks/1/imported = false
 tracks/1/enabled = true
 tracks/1/keys = {
-"times": PoolRealArray( 3.47394 ),
+"times": PoolRealArray( 1 ),
 "transitions": PoolRealArray( 1 ),
 "update": 1,
 "values": [ true ]
@@ -42,7 +42,7 @@ tracks/2/loop_wrap = true
 tracks/2/imported = false
 tracks/2/enabled = true
 tracks/2/keys = {
-"times": PoolRealArray( 3.20357, 5.07305 ),
+"times": PoolRealArray( 0.8, 2 ),
 "transitions": PoolRealArray( 1, 1 ),
 "values": [ {
 "args": [  ],
@@ -59,7 +59,7 @@ tracks/3/loop_wrap = true
 tracks/3/imported = false
 tracks/3/enabled = true
 tracks/3/keys = {
-"times": PoolRealArray( 3.55, 4.32 ),
+"times": PoolRealArray( 0.5, 1.1 ),
 "transitions": PoolRealArray( 1, 1 ),
 "update": 0,
 "values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
@@ -103,23 +103,24 @@ tracks/0/keys = {
 radius = 7.0
 
 [sub_resource type="Gradient" id=6]
-offsets = PoolRealArray( 0, 0.564972, 1 )
-colors = PoolColorArray( 1, 1, 1, 1, 1, 1, 1, 0.915254, 1, 1, 1, 0 )
+offsets = PoolRealArray( 0.5, 1 )
+colors = PoolColorArray( 1, 1, 1, 0.501961, 0, 0, 0, 0 )
 
 [sub_resource type="GradientTexture" id=7]
 gradient = SubResource( 6 )
 
 [sub_resource type="ParticlesMaterial" id=8]
 emission_shape = 1
-emission_sphere_radius = 20.0
+emission_sphere_radius = 8.0
 flag_disable_z = true
 spread = 180.0
-gravity = Vector3( 0, 98, 0 )
-initial_velocity = 322.73
-angular_velocity = 1.5
+gravity = Vector3( 0, 0, 0 )
+initial_velocity = 120.0
+initial_velocity_random = 0.5
 orbit_velocity = 0.0
 orbit_velocity_random = 0.0
-scale = 2.4
+angle_random = 1.0
+scale_random = 1.0
 color_ramp = SubResource( 7 )
 
 [node name="Enemy" type="RigidBody2D"]
@@ -165,12 +166,14 @@ position = Vector2( 11, -4.672 )
 enabled = true
 cast_to = Vector2( 0, 22.5 )
 
-[node name="Particles2D" type="Particles2D" parent="."]
+[node name="Explosion" type="Particles2D" parent="."]
 modulate = Color( 1, 1, 1, 0.685843 )
 emitting = false
+amount = 32
 lifetime = 0.5
 one_shot = true
-explosiveness = 0.86
+speed_scale = 1.2
+explosiveness = 0.76
 process_material = SubResource( 8 )
 texture = ExtResource( 3 )
 

+ 1 - 1
2d/physics_platformer/enemy/enemy.gd

@@ -1,7 +1,7 @@
 class_name Enemy
 extends RigidBody2D
 
-const WALK_SPEED = 25
+const WALK_SPEED = 50
 
 enum State {
 	WALKING,

+ 4 - 4
2d/physics_platformer/player/player.gd

@@ -23,12 +23,12 @@ extends RigidBody2D
 #    - Friction cant be used, so floor velocity must be considered
 #      for moving platforms.
 
-const WALK_ACCEL = 400.0
-const WALK_DEACCEL = 400.0
-const WALK_MAX_VELOCITY = 100.0
+const WALK_ACCEL = 500.0
+const WALK_DEACCEL = 500.0
+const WALK_MAX_VELOCITY = 140.0
 const AIR_ACCEL = 100.0
 const AIR_DEACCEL = 100.0
-const JUMP_VELOCITY = 230
+const JUMP_VELOCITY = 380
 const STOP_JUMP_FORCE = 450.0
 const MAX_SHOOT_POSE_TIME = 0.3
 const MAX_FLOOR_AIRBORNE_TIME = 0.15

+ 3 - 2
2d/physics_platformer/project.godot

@@ -44,7 +44,7 @@ _global_script_class_icons={
 
 [application]
 
-config/name="Dynamic Character Control-Based Platformer"
+config/name="Physics-Based Platformer 2D"
 run/main_scene="res://Stage.tscn"
 config/icon="res://icon.png"
 
@@ -125,6 +125,7 @@ shoot={
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
 , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null)
 , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null)
+, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
  ]
 }
 spawn={
@@ -136,7 +137,7 @@ spawn={
 
 [physics]
 
-2d/default_gravity=350
+2d/default_gravity=900
 
 [rasterizer]
 

+ 1 - 1
2d/platformer/project.godot

@@ -159,7 +159,7 @@ toggle_pause={
 
 [physics]
 
-2d/default_gravity=350
+2d/default_gravity=900
 
 [rasterizer]
 

+ 2 - 2
2d/platformer/src/Actors/Actor.gd

@@ -5,8 +5,8 @@ extends KinematicBody2D
 # such as speed and are affected by gravity.
 
 
-export var speed = Vector2(400.0, 500.0)
-export(float) var gravity = ProjectSettings.get("physics/2d/gravity_default")
+export var speed = Vector2(150.0, 350.0)
+onready var gravity = ProjectSettings.get("physics/2d/default_gravity")
 
 const FLOOR_NORMAL = Vector2.UP
 

+ 5 - 7
2d/platformer/src/Actors/Enemy.tscn

@@ -42,7 +42,7 @@ tracks/2/loop_wrap = true
 tracks/2/imported = false
 tracks/2/enabled = true
 tracks/2/keys = {
-"times": PoolRealArray( 0, 0.3, 0.9 ),
+"times": PoolRealArray( 0, 0.5, 1.1 ),
 "transitions": PoolRealArray( 1, 1, 1 ),
 "update": 0,
 "values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
@@ -54,7 +54,7 @@ tracks/3/loop_wrap = true
 tracks/3/imported = false
 tracks/3/enabled = true
 tracks/3/keys = {
-"times": PoolRealArray( 0, 0.8 ),
+"times": PoolRealArray( 0, 1 ),
 "transitions": PoolRealArray( 1, 1 ),
 "update": 1,
 "values": [ false, true ]
@@ -66,7 +66,7 @@ tracks/4/loop_wrap = true
 tracks/4/imported = false
 tracks/4/enabled = true
 tracks/4/keys = {
-"times": PoolRealArray( 0.4, 0.8 ),
+"times": PoolRealArray( 0.6, 1 ),
 "transitions": PoolRealArray( 1, 1 ),
 "update": 0,
 "values": [ 1.0, 4.0 ]
@@ -90,7 +90,7 @@ tracks/6/loop_wrap = true
 tracks/6/imported = false
 tracks/6/enabled = true
 tracks/6/keys = {
-"times": PoolRealArray( 0.6 ),
+"times": PoolRealArray( 0.8 ),
 "transitions": PoolRealArray( 1 ),
 "update": 1,
 "values": [ true ]
@@ -176,7 +176,7 @@ height = 7.0
 blend_mode = 1
 
 [sub_resource type="Gradient" id=7]
-offsets = PoolRealArray( 0.562963, 1 )
+offsets = PoolRealArray( 0.5, 1 )
 colors = PoolColorArray( 1, 1, 1, 1, 0, 0, 0, 1 )
 
 [sub_resource type="GradientTexture" id=8]
@@ -193,7 +193,6 @@ initial_velocity = 120.0
 initial_velocity_random = 0.5
 orbit_velocity = 0.0
 orbit_velocity_random = 0.0
-angle = 720.0
 angle_random = 1.0
 scale_random = 1.0
 color_ramp = SubResource( 8 )
@@ -205,7 +204,6 @@ collision_layer = 2
 collision_mask = 24
 script = ExtResource( 5 )
 speed = Vector2( 75, 250 )
-gravity = 900.0
 
 [node name="PlatformDetector" type="RayCast2D" parent="."]
 position = Vector2( 0, 6 )

+ 0 - 2
2d/platformer/src/Actors/Player.tscn

@@ -189,8 +189,6 @@ extents = Vector2( 10, 14 )
 [node name="Player" type="KinematicBody2D"]
 collision_mask = 30
 script = ExtResource( 1 )
-speed = Vector2( 150, 350 )
-gravity = 900.0
 
 [node name="ShootAnimation" type="Timer" parent="."]
 process_mode = 0

部分文件因文件數量過多而無法顯示