<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Code Diary</title>
    <link>https://co-diary.tistory.com/</link>
    <description>백상준의 디지털 세상 여행기</description>
    <language>ko</language>
    <pubDate>Fri, 14 Aug 2026 10:46:22 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>쌍준</managingEditor>
    <image>
      <title>Code Diary</title>
      <url>https://tistory1.daumcdn.net/tistory/5433552/attach/eac389690c844d8981479758b2938272</url>
      <link>https://co-diary.tistory.com</link>
    </image>
    <item>
      <title>Godot 20 - GDScript 표기법</title>
      <link>https://co-diary.tistory.com/149</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 파스칼케이스 (PascalCase)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;클래스명, 노드명, 씬명&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;color: #383a42; text-align: left;&quot;&gt;&lt;code&gt;# 클래스명
class_name PlayerCharacter
class_name EnemyController
class_name HealthBar

# 씬 파일명
PlayerCharacter.tscn
EnemySpawner.tscn
MainMenu.tscn

# 스크립트 파일명
PlayerCharacter.gd
GameManager.gd&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 스네이크케이스 (snake_case)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;변수, 함수, 시그널, 상수(소문자), 그리고 파일시스템 파일명&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;autoit&quot; style=&quot;color: #383a42; text-align: left;&quot;&gt;&lt;code&gt;# 변수
var player_health = 100
var max_speed = 500.0
var is_jumping = false

# 함수
func update_health(amount):
    pass

func calculate_damage(attacker, defender):
    pass

func _ready():
    pass

func _process(delta):
    pass

# 시그널
signal health_changed
signal player_died
signal enemy_spawned&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 대문자 스네이크케이스 (UPPER_SNAKE_CASE)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상수, enum&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;crystal&quot; style=&quot;color: #383a42; text-align: left;&quot;&gt;&lt;code&gt;# 상수
const MAX_HEALTH = 100
const GRAVITY = 980.0
const PLAYER_SPEED = 200

# enum
enum State {
    IDLE,
    RUNNING,
    JUMPING,
    FALLING
}

enum DamageType {
    PHYSICAL,
    MAGICAL,
    FIRE,
    ICE
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일시스템에서는 axe_ability.tscn 이지만 에디터로 가져오면 AxeAbility가 된다.&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/149</guid>
      <comments>https://co-diary.tistory.com/149#entry149comment</comments>
      <pubDate>Sat, 29 Nov 2025 14:42:34 +0900</pubDate>
    </item>
    <item>
      <title>Godot 19 - 노드 참조, 소통</title>
      <link>https://co-diary.tistory.com/148</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;다른 노드를 연결하는 것을 4가지 방식이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;1.&amp;nbsp;@onready&amp;nbsp;(자주&amp;nbsp;사용) &lt;br /&gt;@onready&amp;nbsp;var&amp;nbsp;sprite&amp;nbsp;=&amp;nbsp;$Sprite2D &lt;br /&gt;#&amp;nbsp;자식,&amp;nbsp;형제&amp;nbsp;노드를&amp;nbsp;상대경로로&amp;nbsp;연결 &lt;br /&gt;#&amp;nbsp;가장&amp;nbsp;빠름 &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;2.&amp;nbsp;group&amp;nbsp;(자주&amp;nbsp;사용) &lt;br /&gt;get_tree().get_first_node_in_group(&quot;player&quot;) &lt;br /&gt;#&amp;nbsp;그룹으로&amp;nbsp;찾음 &lt;br /&gt;#&amp;nbsp;씬&amp;nbsp;구조&amp;nbsp;무관,&amp;nbsp;여러&amp;nbsp;레벨에서&amp;nbsp;작동 &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;3.&amp;nbsp;@export&amp;nbsp;(가끔&amp;nbsp;사용) &lt;br /&gt;@export&amp;nbsp;var&amp;nbsp;health_component:&amp;nbsp;Node &lt;br /&gt;#&amp;nbsp;에디터에서&amp;nbsp;수동&amp;nbsp;연결 &lt;br /&gt;#&amp;nbsp;수치&amp;nbsp;커스터마이징할&amp;nbsp;때만 &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;4.&amp;nbsp;singleton&amp;nbsp;(자주&amp;nbsp;사용) &lt;br /&gt;GameManager.instance.add_score(100) &lt;br /&gt;#&amp;nbsp;모든&amp;nbsp;노드가&amp;nbsp;자동으로&amp;nbsp;접근&amp;nbsp;가능 &lt;br /&gt;#&amp;nbsp;중앙&amp;nbsp;관리&amp;nbsp;시스템에&amp;nbsp;적합&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 노드와 소통하는 방식은 2가지가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;1.&amp;nbsp;signal&amp;nbsp;(자주&amp;nbsp;사용) &lt;br /&gt;signal&amp;nbsp;took_damage(damage:&amp;nbsp;int) &lt;br /&gt;took_damage.emit(10) &lt;br /&gt;#&amp;nbsp;한&amp;nbsp;신호&amp;nbsp;&amp;rarr;&amp;nbsp;여러&amp;nbsp;노드&amp;nbsp;동시&amp;nbsp;반응 &lt;br /&gt;#&amp;nbsp;순서&amp;nbsp;상관없을&amp;nbsp;때 &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;2.&amp;nbsp;함수&amp;nbsp;직접&amp;nbsp;호출&amp;nbsp;(가끔&amp;nbsp;사용) &lt;br /&gt;velocity_component.accelerate_in_direction(direction) &lt;br /&gt;velocity_component.move(self) &lt;br /&gt;#&amp;nbsp;순서가&amp;nbsp;보장됨 &lt;br /&gt;#&amp;nbsp;순서가&amp;nbsp;중요할&amp;nbsp;때만&amp;nbsp;사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 위에 직접 호출 2줄을 신호방출 2개로 바꾸면 신호방출1-&amp;gt;처리1-&amp;gt;신호방출2-&amp;gt;처리2로 보장을 못한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신호방출1-&amp;gt;신호방출2-&amp;gt;처리2-&amp;gt;처리1 으로 되어버릴 수가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/148</guid>
      <comments>https://co-diary.tistory.com/148#entry148comment</comments>
      <pubDate>Thu, 20 Nov 2025 10:55:26 +0900</pubDate>
    </item>
    <item>
      <title>Aseprite 4</title>
      <link>https://co-diary.tistory.com/147</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HNjmH/btsQHTwMium/F1Qk6CHkdIZArjqCprBzw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HNjmH/btsQHTwMium/F1Qk6CHkdIZArjqCprBzw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HNjmH/btsQHTwMium/F1Qk6CHkdIZArjqCprBzw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHNjmH%2FbtsQHTwMium%2FF1Qk6CHkdIZArjqCprBzw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;311&quot; height=&quot;317&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;317&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;232&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OIPl4/btsQK86Lmqc/C595awoeMWNWkjyexjNeB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OIPl4/btsQK86Lmqc/C595awoeMWNWkjyexjNeB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OIPl4/btsQK86Lmqc/C595awoeMWNWkjyexjNeB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOIPl4%2FbtsQK86Lmqc%2FC595awoeMWNWkjyexjNeB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;232&quot; height=&quot;300&quot; data-origin-width=&quot;232&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xiczG/btsQH1atnZ8/IjylsnX74g9nhOBHMhZDyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xiczG/btsQH1atnZ8/IjylsnX74g9nhOBHMhZDyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xiczG/btsQH1atnZ8/IjylsnX74g9nhOBHMhZDyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxiczG%2FbtsQH1atnZ8%2FIjylsnX74g9nhOBHMhZDyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;296&quot; height=&quot;254&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;254&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;view - grid - grid setting으로&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;261&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLtLuo/btsQLfSl71i/if7VRNt5ulpedwsdkVB0Pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLtLuo/btsQLfSl71i/if7VRNt5ulpedwsdkVB0Pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLtLuo/btsQLfSl71i/if7VRNt5ulpedwsdkVB0Pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLtLuo%2FbtsQLfSl71i%2Fif7VRNt5ulpedwsdkVB0Pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;261&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;261&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 크기로 나눠서 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;549&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbCnWM/btsQI3MhLn9/rdc344rGnZewAkElnz3AB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbCnWM/btsQI3MhLn9/rdc344rGnZewAkElnz3AB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbCnWM/btsQI3MhLn9/rdc344rGnZewAkElnz3AB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbCnWM%2FbtsQI3MhLn9%2Frdc344rGnZewAkElnz3AB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;549&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;549&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽위를 확대해 오른쪽아래를 그렸다. 이 때 왼쪽위(원본)를 수정해서 오른쪽아래도 같이 바꾸고 싶다면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;104&quot; data-origin-height=&quot;43&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2TzmE/btsQKSXph4P/NXWzXrnnDdkYmMdKddyYkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2TzmE/btsQKSXph4P/NXWzXrnnDdkYmMdKddyYkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2TzmE/btsQKSXph4P/NXWzXrnnDdkYmMdKddyYkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2TzmE%2FbtsQKSXph4P%2FNXWzXrnnDdkYmMdKddyYkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;104&quot; height=&quot;43&quot; data-origin-width=&quot;104&quot; data-origin-height=&quot;43&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저번에 적었던 모드 중에서 첫 번째인 수정만 가능한 모드로 해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oiAPE/btsQJXEWUap/DZly0ZfLMGatDKMJxYjRjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oiAPE/btsQJXEWUap/DZly0ZfLMGatDKMJxYjRjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oiAPE/btsQJXEWUap/DZly0ZfLMGatDKMJxYjRjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoiAPE%2FbtsQJXEWUap%2FDZly0ZfLMGatDKMJxYjRjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;357&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;177&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kONnx/btsQHtylTG1/sRZKSI9Mh5abbob14zmFmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kONnx/btsQHtylTG1/sRZKSI9Mh5abbob14zmFmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kONnx/btsQHtylTG1/sRZKSI9Mh5abbob14zmFmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkONnx%2FbtsQHtylTG1%2FsRZKSI9Mh5abbob14zmFmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;177&quot; height=&quot;171&quot; data-origin-width=&quot;177&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/147</guid>
      <comments>https://co-diary.tistory.com/147#entry147comment</comments>
      <pubDate>Tue, 23 Sep 2025 10:56:47 +0900</pubDate>
    </item>
    <item>
      <title>Aseprite 3</title>
      <link>https://co-diary.tistory.com/146</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;179&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z9FGL/btsQGUWw6AD/8qBK9EASMAHYshGNEOcTG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z9FGL/btsQGUWw6AD/8qBK9EASMAHYshGNEOcTG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z9FGL/btsQGUWw6AD/8qBK9EASMAHYshGNEOcTG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz9FGL%2FbtsQGUWw6AD%2F8qBK9EASMAHYshGNEOcTG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;179&quot; height=&quot;144&quot; data-origin-width=&quot;179&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메탈느낌을 만들어봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biDXpD/btsQGUPQnhL/1CPKqRwBJvHZf2OUWRGl0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biDXpD/btsQGUPQnhL/1CPKqRwBJvHZf2OUWRGl0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biDXpD/btsQGUPQnhL/1CPKqRwBJvHZf2OUWRGl0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiDXpD%2FbtsQGUPQnhL%2F1CPKqRwBJvHZf2OUWRGl0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;211&quot; height=&quot;209&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원기둥을 간단한 나무몸통으로 만들어봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;368&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwynRz/btsQHSDIN1l/ur506A1QSTQrfjqBiPuhWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwynRz/btsQHSDIN1l/ur506A1QSTQrfjqBiPuhWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwynRz/btsQHSDIN1l/ur506A1QSTQrfjqBiPuhWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwynRz%2FbtsQHSDIN1l%2Fur506A1QSTQrfjqBiPuhWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;368&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;368&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;귤을 그려보았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vQ4yn/btsQGVHYWPB/UeMxiuiCORQOx08DvWsX6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vQ4yn/btsQGVHYWPB/UeMxiuiCORQOx08DvWsX6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vQ4yn/btsQGVHYWPB/UeMxiuiCORQOx08DvWsX6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvQ4yn%2FbtsQGVHYWPB%2FUeMxiuiCORQOx08DvWsX6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;196&quot; height=&quot;284&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순한 hp포션을 그려보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;378&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmdguV/btsQII8xnyv/fhIN9k6gtx8GNcrCkbkl7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmdguV/btsQII8xnyv/fhIN9k6gtx8GNcrCkbkl7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmdguV/btsQII8xnyv/fhIN9k6gtx8GNcrCkbkl7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmdguV%2FbtsQII8xnyv%2FfhIN9k6gtx8GNcrCkbkl7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;378&quot; height=&quot;427&quot; data-origin-width=&quot;378&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단한 책을 그려보았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;276&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9TThR/btsQGResHzA/znkYte1ybZm9EcXDYmoao1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9TThR/btsQGResHzA/znkYte1ybZm9EcXDYmoao1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9TThR/btsQGResHzA/znkYte1ybZm9EcXDYmoao1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9TThR%2FbtsQGResHzA%2FznkYte1ybZm9EcXDYmoao1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;625&quot; height=&quot;276&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;276&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/146</guid>
      <comments>https://co-diary.tistory.com/146#entry146comment</comments>
      <pubDate>Sat, 20 Sep 2025 22:06:04 +0900</pubDate>
    </item>
    <item>
      <title>Aseprite 2</title>
      <link>https://co-diary.tistory.com/145</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;695&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLRvQW/btsQEkm2S8w/c13e9oaLXoofc3c8dJFhw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLRvQW/btsQEkm2S8w/c13e9oaLXoofc3c8dJFhw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLRvQW/btsQEkm2S8w/c13e9oaLXoofc3c8dJFhw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLRvQW%2FbtsQEkm2S8w%2Fc13e9oaLXoofc3c8dJFhw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;567&quot; height=&quot;695&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;695&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 도형에 입체감을 부여하기 위한 연습을 했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;색깔은 밝기에 따라 5가지로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 광원의 방향이 중요하고 방향에따라서 도형의 밝기를 조절했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신기한건 왼쪽아래위 45도 각도로 들어오기 때문에 원기둥, 정육면체에는 모서리가 하얀색이라는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CibRc/btsQDUPZXam/CYAhYkNk2j7CakJulusKZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CibRc/btsQDUPZXam/CYAhYkNk2j7CakJulusKZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CibRc/btsQDUPZXam/CYAhYkNk2j7CakJulusKZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCibRc%2FbtsQDUPZXam%2FCYAhYkNk2j7CakJulusKZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;144&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딱딱 직선으로 나눠놨기 때문에 옆면이 둥글기보다는 각져있는 거로 보이는데 이거는 노이즈를 추가해서 둥글다는 것을 표현했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제일 겉에 테두리는 무조건 검은색 고정하고, 그림 중간테두리들은 밝기에 따라서 바꿔줘도 된다. (없애도 된다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;714&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UQoFz/btsQGsK2MV1/0VvMuUwDsX10kJnxFh6rN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UQoFz/btsQGsK2MV1/0VvMuUwDsX10kJnxFh6rN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UQoFz/btsQGsK2MV1/0VvMuUwDsX10kJnxFh6rN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUQoFz%2FbtsQGsK2MV1%2F0VvMuUwDsX10kJnxFh6rN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;588&quot; height=&quot;714&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;714&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직접 그려본 오른쪽 뒤 위 45도 각도 광원에 대한 물체모습&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hsv에 대해서 배웠다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;97&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0iO7Z/btsQD6Js4dx/MZybleRQM1BR1OoJkBRJz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0iO7Z/btsQD6Js4dx/MZybleRQM1BR1OoJkBRJz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0iO7Z/btsQD6Js4dx/MZybleRQM1BR1OoJkBRJz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0iO7Z%2FbtsQD6Js4dx%2FMZybleRQM1BR1OoJkBRJz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;97&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;97&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;h는 hue 색조. 우리가 아는 색상 들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;r은 0, g는 120, b는 240이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;s는 saturation 채도.&amp;nbsp; 좀 어려울 수 있는데, 낮아질수록 색의힘을 잃고 흑백이 되어간다고 생각하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;v는 value 명도.&amp;nbsp; 이건 낮아질수록 어두워진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연습을 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회색은 어떻게 만들까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음... 아무 h나 선택한 후 s는 무조건 0으로 고정 후 v를 50정도 하면 될 것 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m9UZ7/btsQDwIuLQT/36wTDWNdkxEVkMKMfbtLb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m9UZ7/btsQDwIuLQT/36wTDWNdkxEVkMKMfbtLb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m9UZ7/btsQDwIuLQT/36wTDWNdkxEVkMKMfbtLb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm9UZ7%2FbtsQDwIuLQT%2F36wTDWNdkxEVkMKMfbtLb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;152&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 좋아하는 에메랄드바다색은?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음... 일단 파랑에서 초록사이니까 h는 180정도,&amp;nbsp; 채도는 50정도? 명도는 100?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7YRyV/btsQFEkTN2B/zKdhw3Bw9bn3OmkLN6c0VK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7YRyV/btsQFEkTN2B/zKdhw3Bw9bn3OmkLN6c0VK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7YRyV/btsQFEkTN2B/zKdhw3Bw9bn3OmkLN6c0VK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7YRyV%2FbtsQFEkTN2B%2FzKdhw3Bw9bn3OmkLN6c0VK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;566&quot; height=&quot;184&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강사님은 색을 주요 사용법 3가지를 알려주셨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 보색을 사용하는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJnIsJ/btsQGVlWEl5/bPa5dV0RgsyGV8SmWAkDNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJnIsJ/btsQGVlWEl5/bPa5dV0RgsyGV8SmWAkDNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJnIsJ/btsQGVlWEl5/bPa5dV0RgsyGV8SmWAkDNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJnIsJ%2FbtsQGVlWEl5%2FbPa5dV0RgsyGV8SmWAkDNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;222&quot; height=&quot;229&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서로 반대편에 있는 색이 서로의 보색인데 이게 보완이 잘 된다고 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q5et5/btsQEPmUApb/zlCe5dc4LRxCRGpFYePKz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q5et5/btsQEPmUApb/zlCe5dc4LRxCRGpFYePKz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q5et5/btsQEPmUApb/zlCe5dc4LRxCRGpFYePKz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ5et5%2FbtsQEPmUApb%2FzlCe5dc4LRxCRGpFYePKz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;202&quot; height=&quot;187&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;187&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 한가지 색조만 사용해서 채도와 명도만 조절하는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;465&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgJk0U/btsQElsRDDe/kKI5aSutms4ICmQ1IWZpI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgJk0U/btsQElsRDDe/kKI5aSutms4ICmQ1IWZpI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgJk0U/btsQElsRDDe/kKI5aSutms4ICmQ1IWZpI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgJk0U%2FbtsQElsRDDe%2FkKI5aSutms4ICmQ1IWZpI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;356&quot; height=&quot;465&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;465&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 색조가 비슷한 애들을 쓰는 것이라고 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2lfqU/btsQGDlr10o/LpqKPW1If3Eke5EvFWa86K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2lfqU/btsQGDlr10o/LpqKPW1If3Eke5EvFWa86K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2lfqU/btsQGDlr10o/LpqKPW1If3Eke5EvFWa86K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2lfqU%2FbtsQGDlr10o%2FLpqKPW1If3Eke5EvFWa86K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;208&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;361&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7WCuL/btsQD7uNDhz/Ar8mvuT9nWKNnc4iTSBk0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7WCuL/btsQD7uNDhz/Ar8mvuT9nWKNnc4iTSBk0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7WCuL/btsQD7uNDhz/Ar8mvuT9nWKNnc4iTSBk0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7WCuL%2FbtsQD7uNDhz%2FAr8mvuT9nWKNnc4iTSBk0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;361&quot; height=&quot;351&quot; data-origin-width=&quot;361&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/145</guid>
      <comments>https://co-diary.tistory.com/145#entry145comment</comments>
      <pubDate>Thu, 18 Sep 2025 18:55:02 +0900</pubDate>
    </item>
    <item>
      <title>Aseprite 1</title>
      <link>https://co-diary.tistory.com/144</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nBRyG/btsQEajvD4m/zkcrSu5PLkZQjRFZPRehA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nBRyG/btsQEajvD4m/zkcrSu5PLkZQjRFZPRehA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nBRyG/btsQEajvD4m/zkcrSu5PLkZQjRFZPRehA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnBRyG%2FbtsQEajvD4m%2FzkcrSu5PLkZQjRFZPRehA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;396&quot; height=&quot;568&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;New Palette from Sprite로 현재 칠해져있는 색깔들을 팔레트로 가져올 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨트롤 N은 새로운 스프라이트를 만든다. (가장 큰 개념)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉬프트 N은 그 스프라이트에 새로운 레이어를 만든다. (다음으로 큰 개념)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알트 N은 이 스프라이트의 레이어들에 새 프레임을 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;699&quot; data-origin-height=&quot;866&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/diyJEK/btsQDdHVrlz/tsdMSlCRSXv3SEsvL0rJek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/diyJEK/btsQDdHVrlz/tsdMSlCRSXv3SEsvL0rJek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/diyJEK/btsQDdHVrlz/tsdMSlCRSXv3SEsvL0rJek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdiyJEK%2FbtsQDdHVrlz%2FtsdMSlCRSXv3SEsvL0rJek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;699&quot; height=&quot;866&quot; data-origin-width=&quot;699&quot; data-origin-height=&quot;866&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n1dNY/btsQDtwTrOk/5dSK9JuIkao9Orng95AMw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n1dNY/btsQDtwTrOk/5dSK9JuIkao9Orng95AMw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n1dNY/btsQDtwTrOk/5dSK9JuIkao9Orng95AMw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn1dNY%2FbtsQDtwTrOk%2F5dSK9JuIkao9Orng95AMw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;98&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;98&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽위의 다섯번째 사각형모양 옵션은 각 프레임의 앞뒤를 반투명하게 보여줘서 애니메이션을 그릴 때 도움된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0K6xb/btsQBqgQvOa/ZZ9vPlS5u5L9EEjv7DhYU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0K6xb/btsQBqgQvOa/ZZ9vPlS5u5L9EEjv7DhYU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0K6xb/btsQBqgQvOa/ZZ9vPlS5u5L9EEjv7DhYU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0K6xb%2FbtsQBqgQvOa%2FZZ9vPlS5u5L9EEjv7DhYU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;487&quot; height=&quot;442&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wybC4/btsQEiIuKcC/myR1aB8jkm6cnCdUKjAxUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wybC4/btsQEiIuKcC/myR1aB8jkm6cnCdUKjAxUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wybC4/btsQEiIuKcC/myR1aB8jkm6cnCdUKjAxUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwybC4%2FbtsQEiIuKcC%2FmyR1aB8jkm6cnCdUKjAxUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;332&quot; height=&quot;248&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 구간에 태그(구간)를 만들어서 반복, 뒤로재생, 앞뒤로재생 등을 시킬 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1358&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sosyL/btsQCsFh282/DF3b2teArJkUgA5cKVOcg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sosyL/btsQCsFh282/DF3b2teArJkUgA5cKVOcg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sosyL/btsQCsFh282/DF3b2teArJkUgA5cKVOcg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsosyL%2FbtsQCsFh282%2FDF3b2teArJkUgA5cKVOcg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1358&quot; height=&quot;537&quot; data-origin-width=&quot;1358&quot; data-origin-height=&quot;537&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타일맵 레이어다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;48X48의 스프라이트에 16X16으로 타일맵레이어를 만들면 총 9개의 타일이 만들어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;104&quot; data-origin-height=&quot;36&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dctAS8/btsQB0o6qQi/mOrEjlk9w2FZlynTmnhvN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dctAS8/btsQB0o6qQi/mOrEjlk9w2FZlynTmnhvN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dctAS8/btsQB0o6qQi/mOrEjlk9w2FZlynTmnhvN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdctAS8%2FbtsQB0o6qQi%2FmOrEjlk9w2FZlynTmnhvN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;104&quot; height=&quot;36&quot; data-origin-width=&quot;104&quot; data-origin-height=&quot;36&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽위의 세가지 모드는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각 1. 수정만 함 (원래 있던 타일들만 수정 가능)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 원래 있던 건 수정, 없던 건 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 원래 있던걸 수정해도 새롭게 다 추가다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직선을 쉽게 그릴려면 직선도구를 이용해도 되지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 점에서 쉬프트를 누르고 원하는 끝점에서 클릭하면 끝난다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 마지막에 좌클릭을 한지점부터 직선을 그려주기때문에 시작점에서 한번 클릭해줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/144</guid>
      <comments>https://co-diary.tistory.com/144#entry144comment</comments>
      <pubDate>Wed, 17 Sep 2025 18:23:57 +0900</pubDate>
    </item>
    <item>
      <title>Godot 18</title>
      <link>https://co-diary.tistory.com/143</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;MetaProgression 이라는 씬을 오토로드에 등록해놓았다면, 어느 스크립트에서나 MetaProgression.~~~&amp;nbsp; 이렇게 접근이 가능해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-end=&quot;1050&quot; data-start=&quot;980&quot; data-ke-size=&quot;size23&quot;&gt;get_tree().call_group(&quot;meta_upgrade_card&quot;, &quot;update_progress&quot;)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1303&quot; data-start=&quot;1051&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1134&quot; data-start=&quot;1051&quot;&gt;&lt;b&gt;의미&lt;/b&gt;: 트리에 등록된 &quot;meta_upgrade_card&quot; 그룹에 속한 모든 노드의 update_progress() 함수를 호출.&lt;/li&gt;
&lt;li data-end=&quot;1170&quot; data-start=&quot;1135&quot;&gt;&lt;b&gt;결과&lt;/b&gt;: 화면에 있는 모든 카드 UI가 새로고침됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 메타업그레이드카드의 스크립트인데, 업그레이드 구매를 누른순간 이 업그레이드 카드 외에도 다른 카드들의 ui도 업데이트해야하기 때문에, 그룹에 넣고 call_group(&quot;그룹명&quot;, &quot;호출할함수&quot;)로 모든 그룹원에게 update_progress를 시킴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nFruc/btsQs5dihBu/ZkyDqWcEsKBmyzGjDLmx60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nFruc/btsQs5dihBu/ZkyDqWcEsKBmyzGjDLmx60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nFruc/btsQs5dihBu/ZkyDqWcEsKBmyzGjDLmx60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnFruc%2FbtsQs5dihBu%2FZkyDqWcEsKBmyzGjDLmx60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;269&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 임시로 ui를 넣어놓고&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;430&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSFviT/btsQukm3dh7/842F30F5WgouwpY2B0Wm8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSFviT/btsQukm3dh7/842F30F5WgouwpY2B0Wm8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSFviT/btsQukm3dh7/842F30F5WgouwpY2B0Wm8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSFviT%2FbtsQukm3dh7%2F842F30F5WgouwpY2B0Wm8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;430&quot; height=&quot;62&quot; data-origin-width=&quot;430&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ready에 컨테이너 자식들을 찾아서 없애게 해놓으면 만들 때 편하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드를 적다가 다른 곳에서도 자주 써야할 것 같다면 함수로 만들어주자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/143</guid>
      <comments>https://co-diary.tistory.com/143#entry143comment</comments>
      <pubDate>Thu, 11 Sep 2025 18:34:08 +0900</pubDate>
    </item>
    <item>
      <title>Godot 17</title>
      <link>https://co-diary.tistory.com/142</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;장면이 전환 될 때 원이 모였다가 다시 커지면서 장면이 전환되는 것을 구현했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLWfpB/btsQrJG03Q7/0A9ekL1q83zkkqhXyPTYl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLWfpB/btsQrJG03Q7/0A9ekL1q83zkkqhXyPTYl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLWfpB/btsQrJG03Q7/0A9ekL1q83zkkqhXyPTYl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLWfpB%2FbtsQrJG03Q7%2F0A9ekL1q83zkkqhXyPTYl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;248&quot; height=&quot;243&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 png파일은 가운데가 밝고 가장자리로갈수록 어둡게 설정되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6CMz1/btsQqYj6LsX/baumaquSUYHXW0F6KkzzbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6CMz1/btsQqYj6LsX/baumaquSUYHXW0F6KkzzbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6CMz1/btsQqYj6LsX/baumaquSUYHXW0F6KkzzbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6CMz1%2FbtsQqYj6LsX%2FbaumaquSUYHXW0F6KkzzbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;312&quot; height=&quot;94&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ColorRect에 쉐이더메티리얼로&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE9YNe/btsQpzL5Cxb/IKqPl3KKQTax51NOZKS3Wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE9YNe/btsQpzL5Cxb/IKqPl3KKQTax51NOZKS3Wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE9YNe/btsQpzL5Cxb/IKqPl3KKQTax51NOZKS3Wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE9YNe%2FbtsQpzL5Cxb%2FIKqPl3KKQTax51NOZKS3Wk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;379&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;379&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셰이더 코드에서는 uniform이 @export의 역할을 한다. (외부로 노출시킴)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1304&quot; data-start=&quot;596&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;707&quot; data-start=&quot;596&quot;&gt;uniform 변수들
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;930&quot; data-start=&quot;753&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;804&quot; data-start=&quot;753&quot;&gt;transition_color : 화면을 덮는 색깔 (보통 검은색 페이드용으로 씀).&lt;/li&gt;
&lt;li data-end=&quot;862&quot; data-start=&quot;807&quot;&gt;transition_texture : 전환용 마스크 텍스처 (위의 png 파일).&lt;/li&gt;
&lt;li data-end=&quot;930&quot; data-start=&quot;865&quot;&gt;percent : 전환 진행도 (0.0 ~ 1.0 사이, AnimationPlayer가 이 값을 바꿔줌).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1304&quot; data-start=&quot;932&quot;&gt;fragment() 함수&lt;br /&gt;&amp;rarr; 최종적으로 각 픽셀의 색을 계산하는 곳.
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1304&quot; data-start=&quot;981&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1090&quot; data-start=&quot;981&quot;&gt;vec4 transition_texture_color = texture(transition_texture, UV);&lt;br /&gt;&amp;rarr; 지금 픽셀의 UV 좌표에 해당하는 텍스처 색을 가져옴.&lt;/li&gt;
&lt;li data-end=&quot;1234&quot; data-start=&quot;1093&quot;&gt;if (transition_texture_color.r &amp;gt; percent)&lt;br /&gt;&amp;rarr; 텍스처의 빨강(R) 값이 percent보다 크면 &amp;rarr; 이 픽셀은 아직 안 보여야 함. 왜 R로 하냐면 흑백은 R=G=B값이라 그렇다. R로 그냥 설정한 것!&lt;br /&gt;&amp;rarr; 그래서 COLOR.a = 0.0; (투명하게 만든다).&lt;/li&gt;
&lt;li data-end=&quot;1304&quot; data-start=&quot;1237&quot;&gt;else&lt;br /&gt;&amp;rarr; 그 외에는 transition_color로 채운다 (즉, 점점 화면이 색으로 덮인다).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1389&quot; data-start=&quot;1306&quot; data-ke-size=&quot;size16&quot;&gt;정리하면:&lt;br /&gt;&lt;b&gt;percent 값이 점점 커지면 (0 &amp;rarr; 1), transition_texture의 모양에 따라 화면이 가려짐.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1389&quot; data-start=&quot;1306&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1389&quot; data-start=&quot;1306&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mByda/btsQpyNcMeQ/hXNhonO3BZrNsjB9ofk4hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mByda/btsQpyNcMeQ/hXNhonO3BZrNsjB9ofk4hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mByda/btsQpyNcMeQ/hXNhonO3BZrNsjB9ofk4hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmByda%2FbtsQpyNcMeQ%2FhXNhonO3BZrNsjB9ofk4hK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;453&quot; height=&quot;506&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ScreenTransition 스크립트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDDMdM/btsQsRYyhFW/blKvnjKzMYO2R6C2OXe9x1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDDMdM/btsQsRYyhFW/blKvnjKzMYO2R6C2OXe9x1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDDMdM/btsQsRYyhFW/blKvnjKzMYO2R6C2OXe9x1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDDMdM%2FbtsQsRYyhFW%2FblKvnjKzMYO2R6C2OXe9x1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1020&quot; height=&quot;220&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;transition() 함수를 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 애니메이션을 이용해&amp;nbsp; 퍼센트값을 0에서 1로 올리면 가장자리부터 가려지게 만듬.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 unvisible하게 되어있다가 이 애니메이션이 시작될 때 visible이 켜짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 이렇게 하냐? -&amp;gt; unvisible하게 해서 평소에는 마우스에 영향을 받지 않게 하기위해서다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 신호를 기다린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다 가려지면 transition_halfway. 즉 전환이 절반 도달했다는 신호를 방출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 신호를 받은 후 다시 1에서 0으로 줄여가며 반대로 화면을 보이게 만들어줌.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 반대로 할 때도 신호를 방출하게 되므로 skip_emit 임시신호를 이용해서 되돌아 올때는 신호를 방출하지 않고 return시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 씬을 오토로드에 달아놓은 후에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면 전환 장면이 필요할때마다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eBBeDa/btsQrVG9iL9/xHbvVUDkd157oQqQW7vD7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eBBeDa/btsQrVG9iL9/xHbvVUDkd157oQqQW7vD7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eBBeDa/btsQrVG9iL9/xHbvVUDkd157oQqQW7vD7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeBBeDa%2FbtsQrVG9iL9%2FxHbvVUDkd157oQqQW7vD7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;643&quot; height=&quot;121&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;121&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전환함수 불러온후에 딱 절반도달해서 가려졌을 때 뒤의 화면을 전환시키도록 설정해놓으면 된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Run 내부에서의 업그레이드가 아닌 외부에서 업그레이드를 하는 것을 구현하려고 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;166&quot; data-origin-height=&quot;37&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IRMcY/btsQsrskuLS/mBjHXm9gd1Q2Bmkz7DESD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IRMcY/btsQsrskuLS/mBjHXm9gd1Q2Bmkz7DESD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IRMcY/btsQsrskuLS/mBjHXm9gd1Q2Bmkz7DESD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIRMcY%2FbtsQsrskuLS%2FmBjHXm9gd1Q2Bmkz7DESD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;166&quot; height=&quot;37&quot; data-origin-width=&quot;166&quot; data-origin-height=&quot;37&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBDeDs/btsQrQspv8h/6QnCOJ46trJ2MVTsx0GNU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBDeDs/btsQrQspv8h/6QnCOJ46trJ2MVTsx0GNU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBDeDs/btsQrQspv8h/6QnCOJ46trJ2MVTsx0GNU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBDeDs%2FbtsQrQspv8h%2F6QnCOJ46trJ2MVTsx0GNU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;429&quot; height=&quot;208&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어빌리티업그레이드에서 했던 것처럼 메타업그레이드 리소스 클래스를 만들어주고, id, 최대값, 제목, 설명칸을 넣는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 그 중 첫 번째로&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3Y6un/btsQrtYtJUi/GJKRYs9mg6d7pqRVt0cPLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3Y6un/btsQrtYtJUi/GJKRYs9mg6d7pqRVt0cPLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3Y6un/btsQrtYtJUi/GJKRYs9mg6d7pqRVt0cPLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3Y6un%2FbtsQrtYtJUi%2FGJKRYs9mg6d7pqRVt0cPLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;313&quot; height=&quot;357&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경험치 물약 드랍률 증가 업그레이드 리소스를 하나 만들었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;34&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H08da/btsQqVgE6vg/lwk7kaKgRk1wmwwO6R2Mwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H08da/btsQqVgE6vg/lwk7kaKgRk1wmwwO6R2Mwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H08da/btsQqVgE6vg/lwk7kaKgRk1wmwwO6R2Mwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH08da%2FbtsQqVgE6vg%2Flwk7kaKgRk1wmwwO6R2Mwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;34&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;34&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;747&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chICxT/btsQqKGtGeM/Lf4YjFRiOkPJRinB5c8TsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chICxT/btsQqKGtGeM/Lf4YjFRiOkPJRinB5c8TsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chICxT/btsQqKGtGeM/Lf4YjFRiOkPJRinB5c8TsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchICxT%2FbtsQqKGtGeM%2FLf4YjFRiOkPJRinB5c8TsK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;747&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;747&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-start=&quot;1109&quot; data-end=&quot;1164&quot;&gt;upgrade_currency: 런을 하며 모아두는 재화 &amp;rarr; 이후 업그레이드 구입에 씀.&lt;/li&gt;
&lt;li data-start=&quot;1165&quot; data-end=&quot;1207&quot;&gt;meta_upgrades: 어떤 업그레이드를 몇 번 샀는지 기록.&lt;/li&gt;
&lt;li data-start=&quot;1208&quot; data-end=&quot;1267&quot;&gt;save() / load_save_file(): 런과 런 사이의 영속성(메타 진척)을 보장.&lt;/li&gt;
&lt;li data-start=&quot;1268&quot; data-end=&quot;1316&quot;&gt;GameEvents 신호 연결: 런 중에 경험치 아이템을 먹으면 자동으로 저장.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;const&amp;nbsp;SAVE_FILE_PATH&amp;nbsp;=&amp;nbsp;&quot;user://game.save&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;res:// 는 읽기만 가능한 게임설치폴더고&amp;nbsp; user:// 에다가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wGAyS/btsQqWzQMf4/DUejOTyo77pteKSAJgr9D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wGAyS/btsQqWzQMf4/DUejOTyo77pteKSAJgr9D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wGAyS/btsQqWzQMf4/DUejOTyo77pteKSAJgr9D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwGAyS%2FbtsQqWzQMf4%2FDUejOTyo77pteKSAJgr9D0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;698&quot; height=&quot;63&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 설정을 해서 따로 읽고 쓰기가 가능한 폴더를 만들고 game.save로 연결해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RGJ3J/btsQrtKXqOn/gMqk9r6DJCXf7GmiMUmfZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RGJ3J/btsQrtKXqOn/gMqk9r6DJCXf7GmiMUmfZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RGJ3J/btsQrtKXqOn/gMqk9r6DJCXf7GmiMUmfZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRGJ3J%2FbtsQrtKXqOn%2FgMqk9r6DJCXf7GmiMUmfZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;226&quot; height=&quot;87&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;87&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;save_data는 딕셔너리로 몇개의 경험치를 먹었고, 어떤 영구적인 업그레이드가 들어가있는지 저장된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTetir/btsQs3YNEXB/aWLHDJglKmaHPqjOiSvplK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTetir/btsQs3YNEXB/aWLHDJglKmaHPqjOiSvplK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTetir/btsQs3YNEXB/aWLHDJglKmaHPqjOiSvplK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTetir%2FbtsQs3YNEXB%2FaWLHDJglKmaHPqjOiSvplK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;147&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ready에서 호출되는 함수.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 파일이 있으면 file 변수에 read모드로 연결한 후에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 file변수에 직렬화되어있는 내용을 딕셔너리로 만듬. 그 딕셔너리를&amp;nbsp; save_data에 넣음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u7nwE/btsQpyGw207/Lt9Jh54dbJ2sQ9WRwzFlvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u7nwE/btsQpyGw207/Lt9Jh54dbJ2sQ9WRwzFlvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u7nwE/btsQpyGw207/Lt9Jh54dbJ2sQ9WRwzFlvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu7nwE%2FbtsQpyGw207%2FLt9Jh54dbJ2sQ9WRwzFlvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;627&quot; height=&quot;85&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 쓰기 모드로 game.save을 file로 연결해서 save_data 딕셔너리를 직렬화해서 file에 쓴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lc7SF/btsQpe2yyVr/C6DKBiSh1t2H9GZAEUEGpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lc7SF/btsQpe2yyVr/C6DKBiSh1t2H9GZAEUEGpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lc7SF/btsQpe2yyVr/C6DKBiSh1t2H9GZAEUEGpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLc7SF%2FbtsQpe2yyVr%2FC6DKBiSh1t2H9GZAEUEGpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;172&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업그레이드를 적용하는 함수. 아마 메타업그레이드카드 같은 곳에서 업그레이드 누르면 이거 호출할 듯&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적용할 업그레이드가 없으면 수량 0 으로 자리를 만들어주고, 수량 +1 해주고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;있으면 그냥 바로 수량 +1 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnYWff/btsQsGCNpPT/jeePBPy8B2vzVh2UcpArB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnYWff/btsQsGCNpPT/jeePBPy8B2vzVh2UcpArB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnYWff/btsQsGCNpPT/jeePBPy8B2vzVh2UcpArB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnYWff%2FbtsQsGCNpPT%2FjeePBPy8B2vzVh2UcpArB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;433&quot; height=&quot;87&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;87&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경험치 물약 먹었을 때 currency를 경험치양 만큼 더해주고 game.save에도 저장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘의 질문&amp;nbsp; (간단)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 화면 전환용 효과를 어떻게 구현할까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 메타 (영구) 업그레이드를 어떻게 구현할까?&amp;nbsp; 그걸 어떻게 게임을 껐다 켜도 유지 시킬 수 있을까?&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/142</guid>
      <comments>https://co-diary.tistory.com/142#entry142comment</comments>
      <pubDate>Tue, 9 Sep 2025 19:19:03 +0900</pubDate>
    </item>
    <item>
      <title>Godot 16</title>
      <link>https://co-diary.tistory.com/141</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;테마만 적용&lt;/b&gt;: 특정 옷장(테마)을 선택하고, 그 안에 있는 기본 옷(기본 스타일)을 입는 것과 같습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;타입 바리에이션만 적용&lt;/b&gt;: 옷장 선택 없이 '파란색 옷'이라는 이름의 옷을 달라고 하는 것입니다. 이 경우, 기본 옷장(프로젝트 기본 테마)에서 파란색 옷을 찾아 입게 됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;둘 다 적용&lt;/b&gt;: '파티용 옷장'을 선택하고, 그 안에서 '빨간 드레스'라는 특정 옷(바리에이션)을 골라 입는 것입니다. 가장 정확하고 의도한 스타일을 적용할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;388&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RF8IT/btsQpcIA5LF/i2ldnxKIxPU9sNfV8LR790/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RF8IT/btsQpcIA5LF/i2ldnxKIxPU9sNfV8LR790/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RF8IT/btsQpcIA5LF/i2ldnxKIxPU9sNfV8LR790/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRF8IT%2FbtsQpcIA5LF%2Fi2ldnxKIxPU9sNfV8LR790%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;388&quot; height=&quot;98&quot; data-origin-width=&quot;388&quot; data-origin-height=&quot;98&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cx3eO1/btsQmjCKTLj/8kN7bXuQQsXwhTvmbYqUs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cx3eO1/btsQmjCKTLj/8kN7bXuQQsXwhTvmbYqUs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cx3eO1/btsQmjCKTLj/8kN7bXuQQsXwhTvmbYqUs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcx3eO1%2FbtsQmjCKTLj%2F8kN7bXuQQsXwhTvmbYqUs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;366&quot; height=&quot;115&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;115&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서는 테마 없이 그냥 바로 옷입힌 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 옷은 theme.tres에 저장되어 있는 옷 중 하나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;테마는 무엇인가요?&lt;/b&gt;: Godot의 UI 노드(Label, Button, Panel 등)에 적용되는 시각적 속성(폰트, 색상, 크기, 스타일 등)을 하나의 파일로 묶어놓은 리소스입니다. 게임 내 모든 UI 요소의 디자인을 일관성 있게 만들고, 손쉽게 변경할 수 있게 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 ui, 글꼴, label 이런건 다 Godot 기본 테마를 따라가고 있는데,&amp;nbsp; 테마를 넣어주면&amp;nbsp; 그 테마의 설정들을 따라가게된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 그 테마에 label이 들어있으면 그 label을 따라가게 되고, 없으면 그냥 고도 기본 테마를 따라가는데, 특별한 label은 기본 노드 유형으로 블루프린트라벨 같이 추가로 테마에 넣어놓은 label을 바리에이션을 적용하면 되는 것!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddCf56/btsQnXyIWJ2/SbiBvRaMnzepd7i9VZrv9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddCf56/btsQnXyIWJ2/SbiBvRaMnzepd7i9VZrv9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddCf56/btsQnXyIWJ2/SbiBvRaMnzepd7i9VZrv9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddCf56%2FbtsQnXyIWJ2%2FSbiBvRaMnzepd7i9VZrv9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;426&quot; height=&quot;106&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;833&quot; data-start=&quot;778&quot; data-ke-size=&quot;size23&quot;&gt;main.gd스크립트의 일부&lt;/h3&gt;
&lt;h3 data-end=&quot;833&quot; data-start=&quot;778&quot; data-ke-size=&quot;size23&quot;&gt;func _unhandled_input(event: InputEvent) -&amp;gt; void:&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;971&quot; data-start=&quot;835&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;858&quot; data-start=&quot;835&quot;&gt;Godot의 입력 처리 함수 중 하나.&lt;/li&gt;
&lt;li data-end=&quot;914&quot; data-start=&quot;859&quot;&gt;&lt;b&gt;다른 노드들(InputEvent 처리한 노드들)에서 처리되지 않은 입력&lt;/b&gt;만 여기로 전달&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1022&quot; data-start=&quot;978&quot; data-ke-size=&quot;size23&quot;&gt;if event.is_action_pressed(&quot;pause&quot;):&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1170&quot; data-start=&quot;1024&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1153&quot; data-start=&quot;1024&quot;&gt;&quot;pause&quot;라는 Input Action이 눌렸는지를 검사&lt;/li&gt;
&lt;li data-end=&quot;1153&quot; data-start=&quot;1067&quot;&gt;  이 &quot;pause&quot;는 &lt;b&gt;Input Map에 정의된 이름&lt;/b&gt;이야. 예: ESC, P이 매핑되어 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1224&quot; data-start=&quot;1177&quot; data-ke-size=&quot;size23&quot;&gt;add_child(pause_menu_scene.instantiate())&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1384&quot; data-start=&quot;1226&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1281&quot; data-start=&quot;1226&quot;&gt;&lt;b&gt;미리 로드한 Pause Menu 씬&lt;/b&gt;을 인스턴스화해서 &lt;b&gt;현재 노드에 자식으로 추가&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1435&quot; data-start=&quot;1391&quot; data-ke-size=&quot;size23&quot;&gt;get_tree().root.set_input_as_handled()&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1629&quot; data-start=&quot;1437&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;890&quot; data-start=&quot;834&quot;&gt;&lt;b&gt;현재 입력 이벤트(예: ESC 누름)를 여기서 처리 완료했다!&lt;/b&gt; 라고 Godot에게 알려줌.&lt;/li&gt;
&lt;li data-end=&quot;947&quot; data-start=&quot;891&quot;&gt;그러면 &lt;b&gt;이 이벤트는 다른 _unhandled_input()으로 더 이상 전파되지 않음.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$AnimationPlayer.play_backwards(&quot;default&quot;)&lt;br /&gt;&lt;br /&gt;이렇게 하면 애니메이션을 역재생할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;panel_container.pivot_offset&amp;nbsp;=&amp;nbsp;panel_container.size&amp;nbsp;/&amp;nbsp;2&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이거로 피벗 오프셋을 중앙에 두어서 중앙에서 등장해서 중앙으로 사라지도록 만들 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 만든 pause_menu.gd이다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;1094&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3b2q0/btsQo5Qfqie/vYbHAES7X0dqPN3k4n5MCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3b2q0/btsQo5Qfqie/vYbHAES7X0dqPN3k4n5MCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3b2q0/btsQo5Qfqie/vYbHAES7X0dqPN3k4n5MCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3b2q0%2FbtsQo5Qfqie%2FvYbHAES7X0dqPN3k4n5MCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;1094&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;1094&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/141</guid>
      <comments>https://co-diary.tistory.com/141#entry141comment</comments>
      <pubDate>Sun, 7 Sep 2025 15:50:23 +0900</pubDate>
    </item>
    <item>
      <title>Git 사용법</title>
      <link>https://co-diary.tistory.com/140</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 깃허브에 원격 리포지토리를 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 사용한 폴더에 git init으로 깃을 사용하겠다고 선언한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. git remote&amp;nbsp; ~~~~~ 으로 로컬과 리포지토리를 연결한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. git add .&amp;nbsp; 으로 택배상자에 담는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. git commit -m &quot;example&quot;&amp;nbsp; 로&amp;nbsp; 뭐가 바뀌는지 메시지를 넣어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. git push origin main&amp;nbsp; 으로&amp;nbsp; main branch에 박아넣는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 로컬에서 이 파일을 불러오려면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. git init으로 깃 사용한다고 선언하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. git remote ~~~ 으로 연결하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. git pull origin main&amp;nbsp; &amp;nbsp;하면 된다.&lt;/p&gt;</description>
      <category>게임 개발</category>
      <author>쌍준</author>
      <guid isPermaLink="true">https://co-diary.tistory.com/140</guid>
      <comments>https://co-diary.tistory.com/140#entry140comment</comments>
      <pubDate>Sat, 6 Sep 2025 22:08:22 +0900</pubDate>
    </item>
  </channel>
</rss>