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/10 11:04]
jango [Mode]
godot [2025/01/31 10:18] (aktuell)
jango [Links]
Zeile 185: Zeile 185:
  
 ====Raycast2D==== ====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> <code>
Zeile 198: Zeile 214:
     add_child(raycast)     add_child(raycast)
  
-func is_on_ground(): +func _process(delta): 
-    return raycast.is_colliding() +    if raycast.is_colliding(): 
- +        print("Der Raycast kollidiert.")
-func _physics_process(delta): +
-    if is_on_ground(): +
-        print("Der Spieler steht auf dem Boden.")+
     else:     else:
-        print("Der Spieler ist in der Luft.")+        print("Der Raycast kollidiert nicht.")
 </code> </code>
  
Zeile 232: 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 603: Zeile 627:
  
 <code> <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) @rpc(mode, sync, transfer, channel)
 func rpc_function(): func rpc_function():
-    pass +    var sender = multiplayer.get_remote_sender_id() 
-     +    if sender == get_multiplayer_authority(): 
-rpc_function.rpc() +        do_stuff()
-rpc_function.rpc_id(peer_id)+
 </code> </code>
  
Zeile 621: Zeile 650:
 auf einer per-Peer-Basis konfigurieren. auf einer per-Peer-Basis konfigurieren.
  
-  * authority: Funktion kann **nur vom Multiplayer Server** ausgeführt werden, nicht von anderen peers+  * 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   * any_peer: Funktion kann **von jedem peer** ausgeführt werden
  
Zeile 654: Zeile 683:
   * [[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://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.1736503484.txt.gz · Zuletzt geändert: 2025/01/10 11:04 von jango