Benutzer-Werkzeuge

Webseiten-Werkzeuge


godot

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
godot [2025/01/01 22:04]
jango [CharacterBody3D]
godot [2025/01/31 10:18] (aktuell)
jango [Links]
Zeile 1: Zeile 1:
 [[https://github.com/godotengine/godot|Godot]] ist eine kostenlose Open Source [[gameengine|Game Engine]] unter [[https://github.com/godotengine/godot/blob/master/LICENSE.txt|MIT Lizenz]]. [[https://github.com/godotengine/godot|Godot]] ist eine kostenlose Open Source [[gameengine|Game Engine]] unter [[https://github.com/godotengine/godot/blob/master/LICENSE.txt|MIT Lizenz]].
  
-{{https://godotengine.org/assets/features/editor-frame.png}}+[[https://www.youtube.com/watch?v=9i6uxm_ioG0|Clipping]]
  
 =====Bodies===== =====Bodies=====
Zeile 182: Zeile 182:
  if position.x > 5.0 or position.x < -5.0:  if position.x > 5.0 or position.x < -5.0:
  speed = -speed  speed = -speed
 +</code>
 +
 +====Raycast2D====
 +
 +<code>
 +extends Raycast2D
 +
 +var raycast_length = 10.0 
 +
 +func _ready():
 +    raycast.target_position = Vector2(0, raycast_length)
 +    raycast.enabled = true
 +
 +func _physics_process(delta):
 +    if is_colliding():
 +        print("Der Raycast kollidiert.")
 +    else:
 +        print("Der Raycast kollidiert nicht.")
 +</code>
 +
 +<code>
 +extends CharacterBody2D
 +
 +var raycast_length = 10.0 
 +var raycast: RayCast2D
 +
 +func _ready():
 +    raycast = RayCast2D.new()
 +    raycast.target_position = Vector2(0, raycast_length)
 +    raycast.enabled = true
 +    add_child(raycast)
 +
 +func _process(delta):
 +    if raycast.is_colliding():
 +        print("Der Raycast kollidiert.")
 +    else:
 +        print("Der Raycast kollidiert nicht.")
 </code> </code>
  
Zeile 208: Zeile 245:
 </code> </code>
  
 +<code>
 +func shoot():
 +    var space = get_world_3d().direct_space_state
 +    var query = PhysicsRayQueryParameters3D.create(
 +    global_position,
 +    global_position - global_transform.basis.z * 2
 +    )
 +    var collision = space.intersect_ray(query)
 +    if collision:
 +        print(collision.collider.name)
 +</code>
 =====Signals===== =====Signals=====
  
Zeile 516: Zeile 564:
 extends CharacterBody3D extends CharacterBody3D
  
-@export var maxSpeed :float = 10.0+@export var maxSpeed :float = 1.0
 @export var turnRate :float = 0.1 @export var turnRate :float = 0.1
 @onready var Gravity = ProjectSettings.get_setting("physics/3d/default_gravity") @onready var Gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
Zeile 537: Zeile 585:
 func _rotate(): func _rotate():
  var yaw = Input.get_axis("move_right", "move_left") # Y Axis  var yaw = Input.get_axis("move_right", "move_left") # Y Axis
- var roll = 0 #Input.get_axis("RollLeft", "RollRight") # Z Axis + var roll = Input.get_axis("ui_left", "ui_right") # Z Axis 
- var pitch = 0 #Input.get_axis("PitchUp", "PitchDown") # X Axis+ var pitch = Input.get_axis("ui_down", "ui_up") # X Axis
  var direction = Vector3(pitch, yaw, roll) * turnRate  var direction = Vector3(pitch, yaw, roll) * turnRate
  if direction:   if direction: 
Zeile 570: Zeile 618:
                 child.engine_force = engine_force                 child.engine_force = engine_force
 </code> </code>
 +
 +
 +=====Networking=====
 +
 +====RPC====
 +
 +[[https://www.youtube.com/watch?v=frjU-WC_pwg|Youtube]]
 +
 +<code>
 +func _process():
 +    rpc("rpc_function") # will transfer reliable
 +    rpc_unreliable("rpc_function") # will transfer unreliable
 +    rpc_function.rpc()
 +    rpc_function.rpc_id(peer_id) # call it on a specified peer
 +    
 +@rpc(mode, sync, transfer, channel)
 +func rpc_function():
 +    var sender = multiplayer.get_remote_sender_id()
 +    if sender == get_multiplayer_authority():
 +        do_stuff()
 +</code>
 +
 +===Mode===
 +
 +Von wem kann die Funktion ausgeführt werden. Default ist "authority". Man kann die Multiplayer Authority mit der Funktion
 +
 +<code>
 +Node.set_multiplayer_authority()
 +</code>
 +
 +auf einer per-Peer-Basis konfigurieren.
 +
 +  * authority: Funktion kann **nur von dem Peer der die Multiplayer Authority hat** ausgeführt werden, nicht von anderen peers
 +  * any_peer: Funktion kann **von jedem peer** ausgeführt werden
 +
 +===Sync===
 +
 +Wo wird die Funktion ausgeführt. Nur remote oder auch lokal.
 +
 +  * call_remote: Funktion kann **nur Remote** ausgeführt werden
 +  * call_local: Funktion wird beim Aufruf **remote und auch lokal** ausgeführt
 +
 +===Transfer===
 +
 +  * unreliable: UDP
 +  * unreliable_ordered: UDP
 +  * reliable: TCP
 +
 +===Channel===
 +
 +Muss immer das letzte Argument sein.
 =====Links===== =====Links=====
  
Zeile 578: Zeile 677:
   * [[https://www.youtube.com/watch?v=Wj1FfilAe2Y|Godot 4 VehicleBody3d Tutorial]]   * [[https://www.youtube.com/watch?v=Wj1FfilAe2Y|Godot 4 VehicleBody3d Tutorial]]
   * [[https://www.youtube.com/watch?v=xIKErMgJ1Yk|First Person CharacterController]]   * [[https://www.youtube.com/watch?v=xIKErMgJ1Yk|First Person CharacterController]]
 +  * [[https://www.youtube.com/watch?v=h8BmeRRGWxI|First-Person Shooter in Godot 4.0 - Overview]]
   * [[https://www.youtube.com/watch?v=4nOEVPjVmjc|Bezier Curves und Splines]]   * [[https://www.youtube.com/watch?v=4nOEVPjVmjc|Bezier Curves und Splines]]
   * [[https://github.com/TheDuckCow/godot-road-generator|Godot Road Generator AddOn]]   * [[https://github.com/TheDuckCow/godot-road-generator|Godot Road Generator AddOn]]
   * [[https://www.youtube.com/watch?v=n8D3vEx7NAE|Godot Multiplayer FPS Tutorial + project source]]   * [[https://www.youtube.com/watch?v=n8D3vEx7NAE|Godot Multiplayer FPS Tutorial + project source]]
   * [[https://www.youtube.com/watch?v=_ItA2r69c-Q|Godot 4 Makes Multiplayer EASY!]]   * [[https://www.youtube.com/watch?v=_ItA2r69c-Q|Godot 4 Makes Multiplayer EASY!]]
 +  * [[https://www.youtube.com/watch?v=K62jDMLPToA|ENet Multiplayer in 3 Minutes]]
 +  * [[https://github.com/mohsenph69/Godot-MTerrain-plugin|MTerrain Plugin]]
 +  * [[https://www.youtube.com/watch?v=s1s1zdTGliQ|MTerrain Curve Deformation]]
godot.1735765498.txt.gz · Zuletzt geändert: 2025/01/01 22:04 von jango