inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Godot Engine 으로 시작하는 첫 게임 개발

클래스 (class)

시동켜기 함수를 오버라이딩 후에 트럭개체 함수 실행시 오버라이딩 되지 않음.

해결된 질문

262

김민영

작성한 질문수 1

1

트럭 스크립트에서 함수 시동켜기 함수를 오버라이딩 후에 Truck이라는 인스턴스를 자동차클래스.new() 를 실행해서 만들었습니다. 근데 Truck1.시동켜기() 하면 "털털털털" 이 실행될줄 알았는데 Car class에 있는 시동켜기 함수가 실행되더라구요. 혹시 가상함수 설정하는 방법이 따로 있을까요?

 

godot gdscript

답변 3

0

코드쉼터

안녕하세요. 용기있게 질문 남겨 주셔서 감사합니다.

아래 보여주신 예시처럼 Car.new() 로 인스턴스를 생성하신 경우 Truck(현재 스크립트) 에 대한 인스턴스를 생성하는 것이 아니고 Car 클래스에 대한 인스턴스를 생성하는 것입니다.

때문에 변수 이름이 Truck1 일지라도 부모인 Car 의 인스턴스로 동작하는 것입니다.

Untitled.png

만약 Truck 클래스로 인스턴스를 생성하길 원하신다면

Car 클래스 <--상속-- Truck 클래스

위처럼 클래스 간의 상속 관계를 먼저 만드신 후에

Truck.new() 로 인스턴스를 생성하셔야 Car 의 자식인 Truck 클래스가 가지고 있는 오버라이딩 된 함수들을 사용하실 수 있습니다.

 

이해가 어려운 부분이 있다면 망설임 없이 추가 질문 남겨주시면 감사하겠습니다.

1

김민영

이해됐습니다. 감사합니다 :)

0

김민영

질문이 긴 것 같아 다시 정리해서 말씀드릴게요 !
핵심 질문은 truck script에서 Car 클래스를 상속받았는데
truck script 내에서 오버라이딩이 되는 것은 확인했지만
이를 인스턴스화 하여 객체를 생성할 때는 truck이라는 script를 "한번 더" 클래스로 만들어서 객체 생성을 해야하는거겠죠?

0

김민영

조금 더 가독성 있게끔 이미지 첨부하겠습니다

image.png

.

이 오류는 무슨 오류일까요?

0

44

1

강의 내용과 제 실습이 다릅니다.

0

37

1

강의 내용과 제 실습이 다름

0

44

1

54.(심화) 보스 구현(2) -state Machine

0

71

2

타일맵 강좌부분에서 경고메시지가 나와서 질문드립니다

0

58

1

21. Dictionary 활용 저장&로드

0

90

2

66강. INPUT 관리

0

62

2

31강 질문

0

66

2

69번 강의에서 에러 발생 보고

0

79

2

노드의 내장 시그널 이용 관련 문의

0

79

3

godot 학습방법에 대해서

0

51

1

46. 상속씬(3) 수업 질문

0

75

2

타이머가 적용이 되지않습니다.

1

83

2

영상이 보이지 않습니다.

1

89

1

error

0

61

2

컵케이크 획득 강의에서 궁금한 점입니다.

1

107

2

점수표시에 캔바스레이어 없어도 잘되던데

0

125

2

디스코드 서버는 어떻게...^^;;

1

502

3

장애물 생성 과제 압축파일이 이상해요.

1

219

2

클래스 생성 수업 연습 중 delta 오류

1

230

1

ParallaBackground로 무한배경스크롤 시에 영역 마스킹 방법이 궁금합니다.

1

258

2

뷰포트 툴바 세팅방법이나 버전 추천

1

268

2

자동차가 표시되지 않습니다.

1

292

2

컵케이크 지나갈때 점수표시가 안됩니다ㅠㅠ

1

201

1