Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide sur Godot

    28 juillet 2017 à 18:01:39

    Bonjour

    J'essaie de me faire la main avec le godot engine en réalisant un petit "jeu" avec une map un perso tps / fps qui peut bouger sauter etc

    Mais j'ai un problème avec les déplacement (j'utilise le plugin Terrain Editor de Zilann pour la map)

    Il a fait un exemple que je ne comprends pas trop :

    extends KinematicBody
    
    export var speed = 5.0
    export var gravity = 9.8
    export(NodePath) var head = null
    
    var _velocity = Vector3()
    var _grounded = false
    var _head = null
    
    
    func _ready():
    	set_fixed_process(true)
    	_head = get_node(head)
    
    
    func _fixed_process(delta):
    	
    	var forward = _head.get_transform().basis.z
    #________________________________________________________
    	forward = Plane(Vector3(0, 1, 0), 0).project(forward)
    #________________________________________________________
    	var right = _head.get_transform().basis.x
    	var motor = Vector3()
    	
    	if Input.is_key_pressed(KEY_UP) or Input.is_key_pressed(KEY_Z) or Input.is_key_pressed(KEY_W):
    		motor -= forward
    	if Input.is_key_pressed(KEY_DOWN) or Input.is_key_pressed(KEY_S):
    		motor += forward
    	if Input.is_key_pressed(KEY_LEFT) or Input.is_key_pressed(KEY_Q) or Input.is_key_pressed(KEY_A):
    		motor -= right
    	if Input.is_key_pressed(KEY_RIGHT) or Input.is_key_pressed(KEY_D):
    		motor += right
    	
    	motor = motor.normalized() * speed
    	
    	_velocity.x = motor.x
    	_velocity.z = motor.z
    	_velocity.y -= gravity * delta
    	
    	if _grounded and Input.is_key_pressed(KEY_SPACE):
    		_velocity.y = 4.0
    		_grounded = false
    	
    	var motion = _velocity * delta
    	
    #________________________________________________________
    	var rem = move(motion)
    	
    	if is_colliding():
    		var n = get_collision_normal()
    		var k = 1.0#clamp(n.y, 0, 1)
    		rem = n.slide(rem)*k
    		_velocity = n.slide(_velocity)*k
    		_grounded = true
    		move(rem)
    	else:
    		_grounded = false
    #________________________________________________________
    	#get_node("debug").set_text("Grounded=" + str(_grounded))



    j'ai mis des lignes de "___" en commentaire autour de ce que je ne comprends pas

    Merci;)

    -
    Edité par Faymon 28 juillet 2017 à 18:04:00

    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2017 à 12:49:33

      (J'y connais rien à Godot et vu qu'apparemment pas grand monde non plus je te conseille de poster sur https://godotengine.org/community si tu parles assez bien l'anglais)

      -
      Edité par Random Coder 99 14 août 2017 à 12:50:27

      • Partager sur Facebook
      • Partager sur Twitter
        14 août 2017 à 17:50:10

        Godot est très peu connu des francais. A tord.

        Je vois même avec les gérants de godot pour créer une communauté Francais. Ceux-ci sont chaud.
        Mais pour la traduction de la doc, faudra attendre la version 3 qui va bientôt sortir.

        -
        Edité par LavaPower 14 août 2017 à 17:50:59

        • Partager sur Facebook
        • Partager sur Twitter

        Développeur C# et Python principalement mais aussi Java, Web et débutant en C++

        Aide sur Godot

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown