2021-08-26 Godot Engine > Pong with GDScrite >paddle 이동에 적합한 y 방향으로 변경

5231 단어 Godot
작업 환경
Windows 10 Pro v21H1
Godot Engine v3.3.2.stable.official
Pong with GDScript
Pong의 실현.
코드를 보면 Y방향의 이동량은 랜덤수이다.
paddle.gd
area.direction = Vector2(_ball_dir, randf() * 2 - 1).normalized()
paddle 이동에 따라 y 방향으로 처리 변경
paddle가 이동하는 y 방향으로 변경해 보십시오.
  • _relative_speed의 추가

  • 계산area.direction에 추가_relative_speed
  • paddle.gd
    extends Area2D
    
    const MOVE_SPEED = 100
    
    var _ball_dir
    var _up
    var _down = 0
    
    var _relative_speed  # パドルの相対速度
    
    onready var _screen_size_y = get_viewport_rect().size.y
    
    func _ready():
        var n = String(name).to_lower()
        _up = n + "_move_up"
        _down = n + "_move_down"
        if n == "left":
            _ball_dir = 1
        else:
            _ball_dir = -1
    
    
    func _process(delta):
        # Move up and down based on input.
        var input = Input.get_action_strength(_down) - Input.get_action_strength(_up)
        position.y = clamp(position.y + input * MOVE_SPEED * delta, 16, _screen_size_y - 16)
        _relative_speed = input * MOVE_SPEED * delta
    
    func _on_area_entered(area):
        if area.name == "Ball":
            # Assign new direction.
            #area.direction = Vector2(_ball_dir, randf() * 2 - 1).normalized()
            area.direction = Vector2(_ball_dir, _relative_speed).normalized()  # 相対速度を考慮した打ち返し
    
    패드의 움직임에 따라 공이 움직이기 시작했다.

    시험을 준비하다
    엄격하게 고려한 실시가 아니다.

    좋은 웹페이지 즐겨찾기