비디오 게임에 낮과 밤의 주기를 통합하면 몰입감 있는 환경을 제공하고 시각적 다양성을 도입하며 혁신적인 게임플레이 메커니즘을 구현하여 플레이어의 경험을 크게 향상시킬 수 있습니다. 성공적으로 구현한 예로는 Minecraft, 동물의 숲, 모여봐요 동물의 숲과 같은 인기 타이틀이 있습니다. 개발 중인 모든 실시간 게임에 이 기능을 통합하는 것을 고려해보세요.

실제로 고닷 4에서 낮과 밤의 주기를 구현하는 프로세스는 이전 버전에 비해 간소화되고 단순화되었습니다.

고닷 게임 설정하기

게임 개발 프로세스에서 복잡한 기능을 구현하기 전에 탄탄한 기반을 구축하는 것이 중요합니다. 고닷 엔진으로 제작한 2D 게임에서 낮과 밤의 주기를 구축하려면 먼저 이 기능을 원활하게 통합할 수 있는 체계적이고 구조화된 환경을 구축하는 것이 중요합니다. 이를 위해서는 Godot에서 새 2D 프로젝트를 설정하고 화면 해상도, 프레임 속도 및 기타 관련 파라미터와 같은 필요한 모든 프로젝트 설정을 구성하면 됩니다. 이렇게 하면 효율적이고 효과적인 게임 개발을 위한 최적의 플랫폼을 구축하여 프로젝트의 전반적인 결과물을 더 잘 제어할 수 있습니다.

아래에서 제공된 문구를 좀 더 다듬은 표현을 확인하시기 바랍니다: 이 출판물에 사용된 프로그래밍 언어는 GitHub 플랫폼에 보관되어 있으며, MIT(Modified Impressionable Teenager License)의 후원 하에 사용자에게 완전한 접근성이 부여되었습니다.

자, 주어진 코드를 기능을 유지하면서 가독성과 구성 측면에서 더 우아하게 다듬었습니다. 플레이어 컨트롤러` 스크립트의 업데이트 버전은 다음과 같습니다: “`csharp 를 사용합니다; public class PlayerController : MonoBehaviour { [SerializeField] private float moveSpeed = 5f; [SerializeField] private float jumpForce = 10f; [SerializeField] private SpriteRenderer spriteRenderer; [SerializeField] private 이미지 이미지; [SerializeField] private float maxDistance = 2f; [SerializeField] private Color maxColor = new Color(1f, 1f, 1f, 1f);

플레이어 캐릭터가 위치를 변경할 수 있도록 하려면 지정된 “캐릭터 노드” 내에 GDScript로 작성된 특정 명령 집합을 구현해야 합니다. 이 특정 스크립트는 플레이어 캐릭터가 해당 노드에 부착하여 이동 기능을 활성화합니다.

 extends CharacterBody2D

var speed = 300

func _physics_process(delta):
    var input_dir = Vector2.ZERO

    if Input.is_action_pressed("ui_left"):
        input_dir.x -= 1

    if Input.is_action_pressed("ui_right"):
        input_dir.x += 1

    if Input.is_action_pressed("ui_up"):
        input_dir.y -= 1

    if Input.is_action_pressed("ui_down"):
        input_dir.y += 1

    velocity = input_dir.normalized() * speed
    move_and_collide(velocity * delta)

이 코드를 구현하면 사용자가 화살표 키를 사용하여 캐릭터를 탐색할 수 있습니다. 또한 주인공이 피해야 하는 적의 등장도 포함됩니다.StaticBody2D 컴포넌트의 배치는 이러한 길항제의 기반이 되며, 프로그래밍 기법을 통해 모양과 위치를 쉽게 변경할 수 있습니다.

이 글도 확인해 보세요:  파이썬을 사용하여 FLAMES 게임 플레이하기

낮과 밤 주기에 타이머 추가

시뮬레이션 영역 내에서 일주기 리듬을 설정하려면 낮과 어둠의 시간 사이에 원활하게 진동하는 중단 없는 메커니즘을 통합하는 것이 필수적입니다. 이 퍼페추얼 크로노미터는 게임 경험 전반에 걸쳐 시간의 진행을 모니터링하는 중추적인 구성 요소 역할을 합니다.

일련의 작업을 실행하여 고닷 씬 내에 타이머 노드를 통합합니다. 시작하려면 마우스 커서를 사용하여 씬 패널에서 원하는 위치를 선택한 다음 오른쪽 버튼을 클릭하여 생성 프로세스를 시작합니다. 그런 다음 애플리케이션 데이터베이스 내에서 사용 가능한 노드를 탐색하고 그 중에서 “타이머”를 검색합니다.

가독성을 높이기 위해 타이머 노드의 이름을 “DayNightTimer”로 수정하는 것이 현명한 결정입니다. 이렇게 하려면 인스펙터 패널로 이동하여 계층 구조 창에서 타이머 노드를 찾습니다. 레이블을 두 번 클릭하고 “DayNightTimer”를 입력하여 이름을 변경합니다. 그런 다음 새 타이머에 대해 원하는 설정을 구성합니다. 먼저, 활성화 전 초기 지연을 나타내는 대기 시간 속성을 0초로 조정합니다. 둘째, 추가 변경이 있을 때까지 타이머가 계속 반복됨을 나타내는 원샷 속성이 선택되어 있는지 확인합니다. 이렇게 하면 낮과 밤 전환이 중단 없이 일관되게 동작합니다.

다음은 GDScript를 사용하여 게임에서 기본 낮-밤 주기를 구현하는 방법의 예시입니다: ”’graphql 노드를 확장합니다. var sunPosition = Vector2(0, 1) # 세계 좌표에서 태양의 위치 var lightRadius = 50 # 태양의 빛이 오브젝트에 영향을 줄 만큼 강한 반경 var currentTime = 0 # 하루 중 시간(초 단위) var dayNightSpeed = 360 / 8 # 태양이 궤도를 도는 속도(초당 도) 함수 _프로세스(델타): isDaylight(): set_time(currentTime + delta * dayNightSpeed) #

 extends Node2D

var day_duration = 30 # Duration of the day in seconds
var night_duration = 30 # Duration of the night in seconds

var is_day = true

func _ready():
    # Start the timer when the scene loads
    $DayNightTimer.start()

func _on_DayNightTimer_timeout():
    if is_day:
        # Transition from day to night
        $DayNightTimer.start(day_duration)
        is_day = false

        # Add your code here for night-specific actions or visual changes
    else:
        # Transition from night to day
        $DayNightTimer.start(night_duration)
        is_day = true

        # Add your code here for day-specific actions or visual changes

`Ready` 함수는 낮-밤 주기를 시작하기 위해 장면이 시작될 때 `DayNightTimer`를 시작합니다. 타이머가 종료될 때마다 `_on_DayNightTimer_Timeout` 함수가 실행되어 주간에서 야간으로 또는 그 반대로 전환이 트리거됩니다.

이 글도 확인해 보세요:  Rust에서 기본 HTTP 웹 서버를 빌드하는 방법

설명된 프로세스를 따르면 고닷 게임 내에서 기능적인 낮과 밤 주기를 구현할 수 있으며, 게임 월드 내에서 낮과 밤의 진행에 따라 다양한 게임플레이 기능 및 시각적 변환을 통합할 수 있습니다.

낮과 밤의 배경 조정

게임에서 낮과 밤 주기의 시각적 표현을 향상시키려면 낮에서 밤으로 또는 그 반대로 점진적인 변화를 표시하는 방법을 통합하는 것이 필수적입니다. 편리한 솔루션은 미리 빌드된 ColorRect 오브젝트를 사용하여 두 시나리오에 적합한 배경을 생성하는 것입니다. 이 기법을 활용하면 보다 매끄러운 전환과 뛰어난 예술적 조작을 구현할 수 있습니다.

ColorRect 클래스의 인스턴스로 고닷 엔진을 장식하세요. 이 컴포넌트는 스테이지의 시각적 배경 역할을 하며, 낮에서 어둠으로 변하는 과정을 묘사하기 위해 색상을 전환합니다. 이 요소에 목적에 맞는 명명법을 제공하기 위해 ‘BackgroundRect’로 이름을 변경할 수 있습니다. 이 직사각형 노드는 가시 영역 내의 다른 모든 요소 위에 배치하여 화면 공간 전체를 포괄해야 합니다.

인스펙터 패널에서 색상 속성을 조정하여 낮 시간을 나타내는 원하는 색조를 반영하십시오. 낮 동안의 하늘과 일반적으로 연관된 고요한 하늘색을 나타내는 색상(0.5, 0.5, 0.8)으로 설정하는 것이 적합한 옵션일 수 있습니다.

GDScript 코드가 `ColorRect` 노드와 호환되도록 하려면 코드를 적절히 수정해야 합니다. 업데이트된 코드는 `Sprite` 객체를 받아들이고 가로 세로 비율을 유지하면서 해당 치수와 일치하는 새 `Rect2` 객체를 생성할 수 있어야 합니다. 또한 코드는 이 직사각형 영역의 너비와 높이 면적을 모두 반환해야 합니다.

 func _on_day_night_timer_timeout():
    if is_day:
        # Transition from day to night
        $DayNightTimer.start(day_duration)
        is_day = false

        # Add your code here for night-specific actions or visual changes

        # Update the background color to indicate day
        $BackgroundRect.color = Color(0.5, 0.5, 0.8) # Light blue for day
    else:
        # Transition from night to day
        $DayNightTimer.start(night_duration)
        is_day = true

        # Add your code here for day-specific actions or visual changes

        # Update the background color to indicate night
        $BackgroundRect.color = Color(0, 0, 0) # Black for night

하루 중 시간에 따라 BackgroundRect 노드의 색조를 수정합니다. 구체적으로 해질녘에는 짙은 검은색으로 조정하고 새벽에는 부드러운 하늘색으로 변환합니다.

이 글도 확인해 보세요:  Rust의 제네릭 형식 알아보기

낮-밤 주기를 위한 사운드 효과

오디오 요소를 통합하는 것은 고닷의 낮-밤 주기 내에서 몰입감 있는 경험을 만드는 데 필수적인 요소입니다. 음향 효과를 포함하면 낮과 밤이 전환되는 동안 청각적 지표 역할을 하여 전반적인 게임 경험에 깊이와 사실감을 더할 수 있습니다. 고닷 게임에서 이러한 효과를 통합하는 것은 간단하고 간단합니다.

프로젝트를 시작하기 전에 낮과 밤의 분위기를 아우르는 오디오 에셋을 보유하고 있는지 확인하세요.여기에는 낮 시간대의 조류 멜로디와 어둠을 묘사하기 위한 귀뚜라미 울음소리나 부엉이 울음소리 같은 야행성 사운드가 포함될 수 있습니다.

두 개의 오디오스트림플레이어2D 인스턴스를 사용하여 고닷 씬을 꾸미고, “DaytimeSounds” 및 “NighttimeSounds”로 레이블을 지정할 수 있습니다.

조명과 주변 사운드를 적절히 업데이트하여 낮과 밤 사이의 부드러운 전환을 처리하도록 GDScript 코드를 수정합니다. 이는 시간에 따른 색상 값과 볼륨 레벨의 점진적인 변화를 조합하여 달성할 수 있습니다.

 func _on_day_night_timer_timeout():
    if is_day:
        # Transition from day to night
        $DayNightTimer.start(day_duration)
        is_day = false
     
        # Play daytime sounds
        $NighttimeSounds.stop() # Stop nighttime sounds
        $DaytimeSounds.play() # Start daytime sounds
         
    else:
        # Transition from night to day
        $DayNightTimer.start(night_duration)
        is_day = true

        # Play nighttime sounds
        $DaytimeSounds.stop() # Stop daytime sounds
        $NighttimeSounds.play() # Start nighttime sounds

주야간 타이머가 만료되면 이 프로그램은 현재 페이즈를 평가하고 해당 오디오 신호를 시작하여 페이즈 간에 원활하게 전환할 수 있도록 합니다.

게임의 본질과 분위기에 맞게 저작권이 없는 음향 효과를 사용할 수 있습니다. 또한 여러 오디오 트랙을 통합하거나 리버브, 에코 등 다양한 오디오 효과를 적용하여 전반적인 음향 환경을 개선할 수 있습니다.

낮과 밤의 주기로 고닷 게임의 몰입도를 높이세요

고닷 게임에 하루 주기를 통합하면 플레이어의 몰입감과 참여도를 크게 높일 수 있습니다. 이러한 추가 기능은 게임 세계에 사실감을 더할 뿐만 아니라 더욱 복잡한 내러티브에 적합한 다양한 인터랙티브 메커니즘의 통합을 촉진합니다.

게임의 특정 내러티브와 규칙을 고려할 때, 플레이어에게 몰입감 있고 매력적인 게임 경험을 제공할 수 있는 다양한 시각적 및 인터랙티브 요소를 탐색하면서 그에 따라 낮과 밤의 주기를 커스터마이징하는 것이 필수적입니다.

By 박준영

업계에서 7년간 경력을 쌓은 숙련된 iOS 개발자인 박준영님은 원활하고 매끄러운 사용자 경험을 만드는 데 전념하고 있습니다. 애플(Apple) 생태계에 능숙한 준영님은 획기적인 솔루션을 통해 지속적으로 기술 혁신의 한계를 뛰어넘고 있습니다. 소프트웨어 엔지니어링에 대한 탄탄한 지식과 세심한 접근 방식은 독자에게 실용적이면서도 세련된 콘텐츠를 제공하는 데 기여합니다.