Browse Source

Experimenting with a Line2D road. Some very minor tweaks to Vehicle. Started work on an in-game 'Console' for debugging.

master
Bryan Miller 3 years ago
parent
commit
3ae59e9147
No known key found for this signature in database
7 changed files with 113 additions and 5 deletions
  1. BIN
      Assets/Graphics/road.png
  2. +34
    -0
      Assets/Graphics/road.png.import
  3. +4
    -4
      Objects/Vehicle/Vehicle.gd
  4. +36
    -0
      Scripts/Autoloads/consolectrl.gd
  5. +24
    -0
      UI/Console/Console.tscn
  6. +11
    -1
      World.tscn
  7. +4
    -0
      project.godot

BIN
Assets/Graphics/road.png View File

Before After
Width: 256  |  Height: 256  |  Size: 131KB

+ 34
- 0
Assets/Graphics/road.png.import View File

@@ -0,0 +1,34 @@
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/road.png-ba2e03c5623fd0c007ce17d39a38addd.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/Graphics/road.png"
dest_files=[ "res://.import/road.png-ba2e03c5623fd0c007ce17d39a38addd.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=1
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

+ 4
- 4
Objects/Vehicle/Vehicle.gd View File

@@ -27,7 +27,7 @@ var acceleration = Vector2.ZERO
var steering_angle = 0.0
var engine_power = 0.0
var breaking_power = 0.0
var reverse = true
var reverse = false

onready var camera = $Camera2D

@@ -176,7 +176,7 @@ func _generate_traction() -> float:
if speed >= traction_fast_speed:
traction = traction_fast
elif speed >= traction_slow_speed:
var d = speed / (traction_fast_speed - traction_slow_speed)
var d = (speed - traction_slow_speed) / (traction_fast_speed - traction_slow_speed)
traction = traction_slow + ((traction_fast - traction_slow) * d)
return traction

@@ -188,9 +188,9 @@ func _calculate_heading(delta : float) -> void:
var heading = (fore_wheel - rear_wheel).normalized()
var traction = _generate_traction()
var d = heading.dot(velocity.normalized())
if d > 0:
if d > 0 and not (reverse or breaking_power > 0):
velocity = velocity.linear_interpolate(heading * velocity.length(), traction)
if d < 0:
if d < 0 and (reverse or breaking_power > 0):
velocity = velocity.linear_interpolate(-heading * velocity.length(), traction)
#velocity = heading * velocity.length()
rotation = (heading.angle() + deg2rad(90))

+ 36
- 0
Scripts/Autoloads/consolectrl.gd View File

@@ -0,0 +1,36 @@
extends Node

signal message(msg)
signal value_passed(name, v)

const EMIT_RATE = 0.1

var _timer_message : float = 0.0
var _timer_pass_val : float = 0.0

var _msg_buffer = []
var _pass_val_buffer = []

func _msgformat(msg : String, args : Array) -> String:
for i in range(0, args.size()):
msg = msg.format(args[i], "$" + String(i))
return msg

func message(msg : String, args : Array = []) -> void:
if _timer_message <= 0.0:
emit_signal("message", _msgformat(msg, args))
_timer_message = EMIT_RATE
else:
_msg_buffer.append(_msgformat(msg, args))


func pass_value(name : String, val) -> void:
emit_signal("value_passed", name, val)

func _process(delta : float) -> void:
if _timer_message > 0.0:
_timer_message = max(0.0, _timer_message - delta)
if _timer_message == 0.0 and _msg_buffer.size() > 0:
emit_signal("message", _msg_buffer)
_msg_buffer = []


+ 24
- 0
UI/Console/Console.tscn View File

@@ -0,0 +1,24 @@
[gd_scene format=2]

[node name="Console" type="CanvasLayer"]

[node name="ScreenSplit" type="VBoxContainer" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
__meta__ = {
"_edit_use_anchors_": false
}

[node name="Messages" type="ScrollContainer" parent="ScreenSplit"]
margin_right = 1920.0
margin_bottom = 538.0
size_flags_vertical = 3

[node name="Label" type="Label" parent="ScreenSplit/Messages"]
margin_bottom = 14.0

[node name="Control" type="Control" parent="ScreenSplit"]
margin_top = 542.0
margin_right = 1920.0
margin_bottom = 1080.0
size_flags_vertical = 3

+ 11
- 1
World.tscn
File diff suppressed because it is too large
View File


+ 4
- 0
project.godot View File

@@ -30,6 +30,10 @@ config/name="Vehicle"
run/main_scene="res://World.tscn"
config/icon="res://icon.png"

[autoload]

ConsoleCTRL="*res://Scripts/Autoloads/consolectrl.gd"

[display]

window/size/width=1920

Loading…
Cancel
Save