-
[게임알고리즘] 5-2강 문자열[DSU] 게임알고리즘 2026. 4. 3. 23:57728x90
String을 구현하기에 앞서, operator에 대해서 알아보기
정수형 처럼 사용할 수 있는 Number 구조체 구현
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <stdio.h>struct Number{int number;Number(){number = 0;}Number& operator = (int n){number = n;return *this;}Number& operator += (int n){number += n;return *this;}Number& operator ++ (int n){number++;return *this;}void print(){printf("%d\n", number);}};int main() {Number n;printf("sizeof(Number) = %d\n", sizeof(Number));n.print();n = 10;n.print();n += 5;n.print();n++;n.print();return 0;}cs 값이 한번에 대입 되는 것이 아니라, 순차적으로 증감되게 구현.
게임에서 점수 숫자나 게이지 바를 표시할때 활용하면 편리함.
예제는 테스트 상 0.1초씩 흐르며, 1초가 흘렀을때 최종 목표값이 대입됨.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102#include <stdio.h>struct Number{int number;int numberS, numberE;float delta, _delta;Number(float dt = 1.0f){number = 0;numberS = 0; numberE = 0;delta = dt; _delta = dt;}// 렌더링시 호출void update(float dt){if( delta < _delta ){delta += dt;if( delta >= _delta ){delta = _delta;number = numberE;}}}// 멤버변수 number가 아닌, 실시간으로 변하는 값을 구함int get(){if( delta < _delta ){float r = delta / _delta;return numberS * (1.0f - r) + numberE * r;}return number;}Number& operator = (int n){ //number = n;numberS = get();numberE = n;delta = 0.0f;return *this;}Number& operator += (int n){ //number += n;numberS = get();numberE += n;delta = 0.0f;return *this;}Number& operator ++ (int){ //number++;numberS = get();numberE++;delta = 0.0f;return *this;}void print(){printf("%d\n", get());}};int main() {Number n;printf("sizeof(Number) = %d\n", sizeof(Number));n.print();printf("==================================\n");n = 10;for(int i=0; i<10; i++){n.update(0.1f);n.print();}printf("==================================\n");n += 5;for(int i=0; i<10; i++){n.update(0.1f);n.print();}printf("==================================\n");n++;for(int i=0; i<10; i++){n.update(0.1f);n.print();}return 0;}cs 
매일매일 열심히 게임개발하고 있습니다 '[DSU] 게임알고리즘' 카테고리의 다른 글
[게임알고리즘] 6강 최단경로 (0) 2026.04.10 [게임알고리즘] 5-3강 문자열 (0) 2026.04.04 [게임알고리즘] 5-1강 문자열 (0) 2026.04.03 [게임알고리즘] 4-3강 링크리스트 실습 예제 (0) 2026.03.27 [게임알고리즘] 4-2강 링크 리스트 (0) 2026.03.27

