E. 완성 코드와 실행
예상 시간: 5분 | 이전: D. Entity로 3D 큐브 만들기
🎯 학습 목표
이 강의를 마치면 다음을 할 수 있어요:
- ○ 완성된 코드의 구조를 이해한다
- ○ 코드를 실행할 수 있다
- ○ 자주 하는 실수를 피할 수 있다
핵심 개념
프로그램 전체 구조
📝 비유: 건물 짓기
Ursina 프로그램은 건물 짓기와 같습니다!
- 재료 준비 - import (벽돌, 시멘트 구매)
- 터 닦기 - Ursina() (땅 평평하게)
- 설계도 작성 - 변수 선언 (어디에 뭘 놓을지)
- 건물 세우기 - Entity (벽, 문, 창문)
- 문 열기 - 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 키로 종료 가능
실행 방법
터미널에서 실행
단축키
| 동작 | Windows | Mac |
|---|---|---|
| 게임 종료 | ESC 또는 Alt+F4 |
ESC 또는 Cmd+Q |
🎯 퀴즈
정답 보기
정답: B) app.run()
app.run()은 게임 루프를 시작하므로 항상 맨 마지막에 와야 합니다.
이 줄 이후의 코드는 게임이 종료될 때까지 실행되지 않아요!
🔧 디버그 클리닉
실수 1: import 빠뜨림
해결: 파일 맨 위에 from ursina import * 추가
실수 3: 변수 이름 오타
해결: 변수 이름을 정확히 확인
직접 코딩해보기
처음부터 완성 코드를 직접 작성해보세요!
초록색 구 만들기
빈 파일에서 시작하여 초록색 구를 화면에 표시하는 전체 코드를 작성하세요.
예시 답안
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값으로 높이를 조절합니다.
🧩 핵심 요약
이번 강의에서 배운 내용:
프로그램 구조 (순서 중요!):
from ursina import *- 라이브러리app = Ursina()- 게임 창- 변수 선언 - 설정값
Entity()- 3D 객체app.run()- 실행 (맨 마지막!)
복습 체크리스트
- [ ] Ursina 프로그램의 기본 구조를 외웠나요?
- [ ] 코드 순서가 왜 중요한지 설명할 수 있나요?
- [ ] 자주 하는 3가지 실수를 알고 있나요?
축하합니다! 🎉
첫 번째 3D 앱을 완성했습니다!
이제 할 수 있는 것들:
- ✅ Ursina 라이브러리 불러오기
- ✅ 게임 창 만들기
- ✅ 변수로 값 저장하기
- ✅ Entity로 3D 큐브 만들기
- ✅ 게임 실행하기
다음 강의: 변수와 인자로 Entity의 다양한 인자를 배워봅시다!