浏览代码

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

master
Bryan Miller 4 年前
父节点
当前提交
3ae59e9147
找不到此签名对应的密钥
共有 7 个文件被更改,包括 113 次插入5 次删除
  1. 二进制
      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

二进制
Assets/Graphics/road.png 查看文件

之前 之后
宽度: 256  |  高度: 256  |  大小: 131KB

+ 34
- 0
Assets/Graphics/road.png.import 查看文件

[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 查看文件

var steering_angle = 0.0 var steering_angle = 0.0
var engine_power = 0.0 var engine_power = 0.0
var breaking_power = 0.0 var breaking_power = 0.0
var reverse = true
var reverse = false


onready var camera = $Camera2D onready var camera = $Camera2D


if speed >= traction_fast_speed: if speed >= traction_fast_speed:
traction = traction_fast traction = traction_fast
elif speed >= traction_slow_speed: 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) traction = traction_slow + ((traction_fast - traction_slow) * d)
return traction return traction


var heading = (fore_wheel - rear_wheel).normalized() var heading = (fore_wheel - rear_wheel).normalized()
var traction = _generate_traction() var traction = _generate_traction()
var d = heading.dot(velocity.normalized()) 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) 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 = velocity.linear_interpolate(-heading * velocity.length(), traction)
#velocity = heading * velocity.length() #velocity = heading * velocity.length()
rotation = (heading.angle() + deg2rad(90)) rotation = (heading.angle() + deg2rad(90))

+ 36
- 0
Scripts/Autoloads/consolectrl.gd 查看文件

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 查看文件

[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
文件差异内容过多而无法显示
查看文件


+ 4
- 0
project.godot 查看文件

run/main_scene="res://World.tscn" run/main_scene="res://World.tscn"
config/icon="res://icon.png" config/icon="res://icon.png"


[autoload]

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

[display] [display]


window/size/width=1920 window/size/width=1920

正在加载...
取消
保存