콘텐츠로 이동

E. 완성 코드와 실행

예상 시간: 5분 | 이전: D. Entity로 3D 큐브 만들기


🎯 학습 목표

이 강의를 마치면 다음을 할 수 있어요:

  • ○ 완성된 코드의 구조를 이해한다
  • ○ 코드를 실행할 수 있다
  • ○ 자주 하는 실수를 피할 수 있다

핵심 개념

프로그램 전체 구조

📝 비유: 건물 짓기

Ursina 프로그램은 건물 짓기와 같습니다!

  1. 재료 준비 - import (벽돌, 시멘트 구매)
  2. 터 닦기 - Ursina() (땅 평평하게)
  3. 설계도 작성 - 변수 선언 (어디에 뭘 놓을지)
  4. 건물 세우기 - Entity (벽, 문, 창문)
  5. 문 열기 - app.run() (입주!)

완성 코드 흐름도

flowchart TD
    A["1. from ursina import *"] --> B["2. app = Ursina()"]
    B --> C["3. 변수 선언"]
    C --> D["4. print() 출력"]
    D --> E["5. Entity() 생성"]
    E --> F["6. app.run()"]
    F --> G["게임 실행!"]

    style A fill:#e3f2fd,stroke:#1976d2
    style B fill:#fff3e0,stroke:#f57c00
    style C fill:#e8f5e9,stroke:#388e3c
    style D fill:#f3e5f5,stroke:#7b1fa2
    style E fill:#ffebee,stroke:#c62828
    style F fill:#e0f2f1,stroke:#00796b
    style G fill:#fce4ec,stroke:#c2185b

코드 구조 요약

순서 코드 역할
1 from ursina import * 라이브러리 불러오기
2 app = Ursina() 게임 창 만들기
3 변수 선언 설정값 저장
4 print() 콘솔 출력
5 Entity() 3D 객체 만들기
6 app.run() 게임 실행

⚠️ 순서를 꼭 지켜주세요!

  • import는 항상 맨 위
  • app.run()은 항상 맨 아래
  • Entity는 Ursina()app.run() 사이에!

완성 코드

from ursina import *  # 1. 라이브러리 불러오기

app = Ursina()  # 2. 게임 창 만들기

# 3. 변수 선언
my_name = "Student"
cube_size = 2
cube_color = color.red

# 4. 콘솔 출력
print("Hello, Ursina!")
print(f"My name is {my_name}")

# 5. Entity로 큐브 만들기
my_cube = Entity(
    model='cube',
    color=cube_color,
    scale=cube_size
)

app.run()  # 6. 게임 실행

결과

  • 콘솔에 "Hello, Ursina!"와 이름이 출력됨
  • 화면 중앙에 빨간색 큐브 표시
  • ESC 키로 종료 가능

실행 방법

터미널에서 실행

# 1. 파일이 있는 폴더로 이동
cd 폴더경로

# 2. Python으로 실행
python 파일이름.py

단축키

동작 Windows Mac
게임 종료 ESC 또는 Alt+F4 ESC 또는 Cmd+Q

🎯 퀴즈

퀴즈: 코드 순서
코드에서 가장 마지막에 와야 하는 것은?
정답 보기

정답: B) app.run()

app.run()은 게임 루프를 시작하므로 항상 맨 마지막에 와야 합니다. 이 줄 이후의 코드는 게임이 종료될 때까지 실행되지 않아요!


🔧 디버그 클리닉

실수 1: import 빠뜨림

# ❌ from ursina import * 없이 시작
app = Ursina()  # NameError!

해결: 파일 맨 위에 from ursina import * 추가

실수 2: app.run() 빠뜨림

# ❌ 마지막에 app.run() 없음
Entity(model='cube')
# 창이 안 나타남!

해결: 코드 마지막에 app.run() 추가

실수 3: 변수 이름 오타

# ❌ cube_color와 cube_colour 혼동
cube_color = color.red
Entity(color=cube_colour)  # NameError!

해결: 변수 이름을 정확히 확인


직접 코딩해보기

처음부터 완성 코드를 직접 작성해보세요!

초록색 구 만들기

빈 파일에서 시작하여 초록색 구를 화면에 표시하는 전체 코드를 작성하세요.

예시 답안
from ursina import *

app = Ursina()

my_sphere = Entity(
    model='sphere',
    color=color.green
)

app.run()

결과: 화면 중앙에 초록색 구가 나타납니다!


도전 과제

도전 1: ⭐ 쉬움

큐브 색상을 파란색(color.blue)으로 바꿔보세요.

힌트: cube_color 변수의 값을 수정하면 됩니다.

도전 2: ⭐ 쉬움

큐브 크기를 5로 변경해보세요.

힌트: cube_size 변수를 찾아서 수정하세요.

도전 3: ⭐⭐ 중간

구(sphere)를 추가로 만들어보세요.

힌트: model='sphere'를 사용합니다. 위치는 position=(2, 0, 0)으로 설정해야 큐브와 겹치지 않습니다.

도전 4: ⭐⭐ 중간

콘솔에 큐브의 색상과 크기를 출력해보세요.

힌트: f-string을 사용하면 변수 값을 출력할 수 있습니다.

도전 5: ⭐⭐⭐ 어려움

3개의 서로 다른 색상 큐브를 일렬로 배치해보세요.

힌트: 각 큐브의 position을 다르게 설정하세요. 예: (0,0,0), (2,0,0), (4,0,0)

도전 6: ⭐⭐⭐ 어려움

피라미드 모양을 만들어보세요: 아래에 큰 큐브, 위에 작은 큐브.

힌트: scale로 크기를, position의 y값으로 높이를 조절합니다.


🧩 핵심 요약

이번 강의에서 배운 내용:

프로그램 구조 (순서 중요!):

  1. from ursina import * - 라이브러리
  2. app = Ursina() - 게임 창
  3. 변수 선언 - 설정값
  4. Entity() - 3D 객체
  5. app.run() - 실행 (맨 마지막!)

복습 체크리스트

  • [ ] Ursina 프로그램의 기본 구조를 외웠나요?
  • [ ] 코드 순서가 왜 중요한지 설명할 수 있나요?
  • [ ] 자주 하는 3가지 실수를 알고 있나요?

축하합니다! 🎉

첫 번째 3D 앱을 완성했습니다!

이제 할 수 있는 것들:

  • ✅ Ursina 라이브러리 불러오기
  • ✅ 게임 창 만들기
  • ✅ 변수로 값 저장하기
  • ✅ Entity로 3D 큐브 만들기
  • ✅ 게임 실행하기

다음 강의: 변수와 인자로 Entity의 다양한 인자를 배워봅시다!