Diary
반응형

전체 글 118

카테고리 설명
일상을 담아둔 다이어리
  • 며칠전 일어났던 몇시간짜리 계엄령 도대체 왜 그랬는지 알수가없는 대통령의 희대의 병크짓에 온 나라가 혼란에 빠졌다 그리고 그 사이에 다시 이 나라의 고질적 광기가 터져나오고있다    또다시 사람들은 민주주의를 부르짖으며 횃불을 들고 불태울 땔감을 찾아다닌다 입으로는 "이시국에" 를 달고살면서 엄중한 상황이라고 이야기하지만 그들의 입가에는 즐거운 미소가 만연하다 평소에는 눈치보여 억누르고 숨기며 살았던 일탈행위를 시국타령으로 정당화 할수있는 시절이 다시 찾아왔다    앞으로 몇달간, 어쩌면 몇년간... 얼마나 많은 상식이 민주라는 핑계로 뒤집힐까 얼마나 많은 미래가 정의 라는 이름으로 짓밟힐까 얼마나 많은 마녀들을 잡아죽여야 이나라 시민들은 만족할까 애초에 침묵이 미덕으로 취급받는 사회에 희망이라는건 있었..

    멍소리

    광기의 나라 NEW

    2024.12.09
    댓글
  • 1차원의 구현이 성공적이었으니 같은원리인 2,3,4차원까지 다 만들어보았다 구조가 1차원 구현하는것과 동일하기 때문에 새로운 변수들 세팅하고 메소드도 복붙해서 변수 이름들만 바꾸어주면 된다  public void D2_purchase() { if (MA >= D2_cost) { MA -= D2_cost; D2_amount += 1; D2_amount_total += 1; D2_cost = 100 * Math.Pow(100,Math.Truncate(D2_amount/10)); D2_multiple = Math.Pow(2,Math.Truncate(D2_amount/10)); ..

  • 일단 기본 모양은 텍스트와 버튼으로 갖추어 두었다 이제 그것들이 동작하게 해야하는데      canvas 안에다가 Empty를 하나 만들고 Idle manager라고 지었다 이런저런 스크립트가 저기에 들어갈 예정          저 empty의 inspector에서 Add component를 선택하고 이름 대충짓고 새로운 스크립트 자리를 만들었다 그리고 만들어진 스크립트를 더블클릭하면        Visual Studio Code가 열리면서 개발자에게 익숙한 화면이 뜬다 뭐... 미리설치 안해놨으면 안열릴지도 나는 거의 파이썬밖에 써본적이 없긴한데 유니티는 기본언어가 C#이라고해서 그냥 C#을 써볼 예정이다 프로그래밍 언어라는게 하나 알면 다른거 배우기 좀 수월한 느낌이라   일단 테스트로 1차원 구매만..

카테고리
작성일
2024. 12. 9. 17:35
작성자
yul s
반응형

 

 

 

며칠전 일어났던 몇시간짜리 계엄령

 

도대체 왜 그랬는지 알수가없는 대통령의 희대의 병크짓에

 

온 나라가 혼란에 빠졌다

 

그리고 그 사이에 다시 이 나라의 고질적 광기가 터져나오고있다

 

 

 

 

또다시 사람들은 민주주의를 부르짖으며 횃불을 들고 불태울 땔감을 찾아다닌다

 

입으로는 "이시국에" 를 달고살면서 엄중한 상황이라고 이야기하지만

 

그들의 입가에는 즐거운 미소가 만연하다

 

평소에는 눈치보여 억누르고 숨기며 살았던 일탈행위를

 

시국타령으로 정당화 할수있는 시절이 다시 찾아왔다

 

 

 

 

앞으로 몇달간, 어쩌면 몇년간...

 

얼마나 많은 상식이 민주라는 핑계로 뒤집힐까

 

얼마나 많은 미래가 정의 라는 이름으로 짓밟힐까

 

얼마나 많은 마녀들을 잡아죽여야 이나라 시민들은 만족할까

 

애초에 침묵이 미덕으로 취급받는 사회에 희망이라는건 있었던걸까

 

 

 

 

이번사태의 원흉에 대해서는 딱히 변명의 여지도 없고

 

어쩌다 저런 브론즈 판단을 하는놈이 저자리에 가있었는지 개탄스러울 뿐이다

 

연금, 상법, 저출산, 외교 등등 중요한 수많은 현안들이

 

또다시 관심의 저편으로 사라져버렸다

 

침몰하는 배 위에 있지만 내가 할수있는걸 해야지

 

그래도 아직 시간은 있어

 

 

 

반응형

'멍소리' 카테고리의 다른 글

동덕학생들은 배상을 해야할까?  (0) 2024.11.25
이상기후  (2) 2024.11.18
뉴우스  (1) 2024.11.11
뉴우 라이트  (0) 2024.09.24
정치선전광고  (0) 2024.05.16
카테고리
작성일
2024. 12. 9. 14:33
작성자
yul s
반응형

 

 

1차원의 구현이 성공적이었으니

 

같은원리인 2,3,4차원까지 다 만들어보았다

 

구조가 1차원 구현하는것과 동일하기 때문에

 

새로운 변수들 세팅하고 메소드도 복붙해서 변수 이름들만 바꾸어주면 된다

 

 

public void D2_purchase()
    {
        if (MA >= D2_cost)
        {
            MA -= D2_cost;
            D2_amount += 1;
            D2_amount_total += 1;
            D2_cost = 100 * Math.Pow(100,Math.Truncate(D2_amount/10));
            D2_multiple = Math.Pow(2,Math.Truncate(D2_amount/10));
        }
    }
    public void D3_purchase()
    {
        if (MA >= D3_cost)
        {
            MA -= D3_cost;
            D3_amount += 1;
            D3_amount_total += 1;
            D3_cost = 1000 * Math.Pow(1000,Math.Truncate(D3_amount/10));
            D3_multiple = Math.Pow(2,Math.Truncate(D3_amount/10));
        }
    }
    public void D4_purchase()
    {
        if (MA >= D4_cost)
        {
            MA -= D4_cost;
            D4_amount += 1;
            D4_amount_total += 1;
            D4_cost = 10000 * Math.Pow(10000,Math.Truncate(D4_amount/10));
            D4_multiple = Math.Pow(2,Math.Truncate(D4_amount/10));
        }
    }

 

 

 

 

추가로 틱스피드 업그레이드까지 구현

 

뭐 살짝 다르긴하지만 1~4차원 만든것과 거의 비슷하다

 

사실 이건 10번 구매할때마다 바뀌는 방식이 아니라서 더 간단하다ㅋ

 

 

 

public void TS_purchase()
    {
        if (MA >= TS_cost)
        {
            MA -= TS_cost;
            TS_level += 1;
            TS_cost = 1000 * Math.Pow(10,Math.Truncate(TS_level));
        }
    }

 

 

 

아직 크게 신경쓰고있지는 않지만

 

게임플레이에 대한 설계도 해야되니

 

플레이타임을 표시해주는 텍스트도 추가했다

 

그럭저럭 모습이 갖추어지는중...

 

 

 

 

    public void Update()
    {
        timeleft += Time.deltaTime * 3;
        TS_speed = Math.Pow(1.1,TS_level);
        MA_speed = D1_amount_total * D1_multiple * TS_speed;
        MA += MA_speed * Time.deltaTime * 3;
        D1_amount_total += (D2_amount_total * D2_multiple)/10 * Time.deltaTime * TS_speed;
        D2_amount_total += (D3_amount_total * D3_multiple)/10 * Time.deltaTime * TS_speed;
        D3_amount_total += (D4_amount_total * D4_multiple)/10 * Time.deltaTime * TS_speed;
        
        ...

 

 

 

 

마지막으로 update() 내부에다가 2~4차원의 수식과 텍스트업데이트를 넣어주었다

 

대충 상위차원 1개가 10초마다 하위차원 1개를 자동으로 생산하는 형태

 

 

 

 

 

 

 

 

 

테스트 하다보니

 

다른건 잘 되는데 숫자가 커지니 보기가 불편하다

 

 

 

 

 

 

아직은 겨우겨우 버튼안에 들어가있는 모습이지만

 

1e8 과 같은 지수형태로 바꾸어줄 필요가 있어보인다

 

 

 

반응형
카테고리
작성일
2024. 12. 7. 12:50
작성자
yul s
반응형

 

 

일단 기본 모양은 텍스트와 버튼으로 갖추어 두었다

 

이제 그것들이 동작하게 해야하는데

 

 

 

 

 

 

canvas 안에다가 Empty를 하나 만들고 Idle manager라고 지었다

 

이런저런 스크립트가 저기에 들어갈 예정

 

 

 

 

 

 

 

 

 

 

저 empty의 inspector에서

 

Add component를 선택하고 이름 대충짓고 새로운 스크립트 자리를 만들었다

 

그리고 만들어진 스크립트를 더블클릭하면

 

 

 

 

 

 

 

 

Visual Studio Code가 열리면서 개발자에게 익숙한 화면이 뜬다

 

뭐... 미리설치 안해놨으면 안열릴지도

 

나는 거의 파이썬밖에 써본적이 없긴한데

 

유니티는 기본언어가 C#이라고해서 그냥 C#을 써볼 예정이다

 

프로그래밍 언어라는게 하나 알면 다른거 배우기 좀 수월한 느낌이라

 

 

 

일단 테스트로 1차원 구매만 먼저 만들어보기로 했다

 

1차원만 하더라도 변수와 텍스트가 꽤 여러개 들어간다

 

C#이 처음이라 이리저리 검색하면서 구르다가 겨우만듬 ㅎ....

 

 

 

 

 

 

일단 1차원의 옵션은

 

초당 물질1개 생산 / 최초 가격은 10 MA

 

10개 구매시마다 생산배율 2배증가 / 가격 10배증가

 

정도로 세팅해 보았는데

 

 

 

 

요 부분은 사용할 변수와 텍스트와 메소드를 정의하는부분

 

 

 

 

 

스크립트 생성시 기본으로 Start()와 Update()가 있었는데

 

둘다 public 달아주고

 

Start() 안에는 각종 변수들의 최초값을 넣어줬다

 

 

 

 

 

 

 

update()는 말그대로 계속 변화하는 문자나 숫자들을 업데이트 해주는 부분

 

뭐 그냥 텍스트 바꾸고 간단한 연산이라 이지~

 

 

 

 

 

 

 

 

마지막 1차원 구매버튼을 위한 메소드를 만들었는데

 

음... 간단한걸 표현하려해도 생각보다 이것저것 수식들이 들어갔는데

 

일단 잘 되는지 보려는거니까 돌아가기만 하면 된다

 

 

 

 

여기까지 해놓고 저장하고 다시 유니티로 돌아오면

 

 

 

 

 

 

 

idle manager의 inspector 안에 저렇게 스크립트에서 만들어둔 텍스트들이 있는데

 

hierarchy의 해당 텍스트들을 드래그만 해주면된다

 

근데 이제보니 변수들도 저기서 숫자설정이 가능한걸보니

 

굳이 Start() 안에다가 기초값 안넣어도 될지도.. ㅋ

 

 

 

 

 

 

 

 

비슷한 원리로 버튼에다가도 만들어둔 메소드 연결을 해주어야하는데

 

버튼을 클릭해보면 아래에 on click() 이라고 된게 있는데 거기다 idle manager를 갖다박은뒤

 

 

 

 

 

 

 

아까 만들어둔 메소드를 찾아서 연결할수있다

 

뭐 이정도면 1차원만들기 끝...

 

 

 

 

다 만들었으니 테스트도 해보았다

 

편의상 그냥 생산속도에 x3을 넣어놓은 상태라 3배 빠르게 늘어나는모습

 

 

 

 

 

일단은 성공적

 

 

 

 

 

 

 

 

 

using System;
using UnityEngine;
using TMPro;

public class Idlegame : MonoBehaviour
{
    public TMP_Text MA_text;
    public TMP_Text MA_speed_text;
    public TMP_Text D1_text;
    public TMP_Text D1_amount_text;
    public TMP_Text D1_button_text;
    public double MA;
    public double MA_speed;
    public double D1_multiple;
    public double D1_amount;
    public double D1_amount_total;
    public double D1_cost;

    public void Start()
    {
        MA = 10;
        MA_speed = 0;
        D1_multiple = 1;
        D1_amount = 0;
        D1_amount_total = 0;
        D1_cost = 10;
    }
    public void Update()
    {
        MA_speed = D1_amount_total * D1_multiple;
        MA += MA_speed * Time.deltaTime;
        MA_text.text = "You have " + MA.ToString("F0") + " matters (MA)";
        MA_speed_text.text = "You are earning matters " + MA_speed.ToString("F2") + "/s";
        D1_text.text = "1st Dimention\nx" + D1_multiple.ToString("F2");
        D1_amount_text.text = D1_amount_total.ToString("F0");
        D1_button_text.text = "Cost : " + D1_cost.ToString("F0") + " MA";
    }
    public void D1_purchase()
    {
        if (MA >= D1_cost)
        {
            MA -= D1_cost;
            D1_amount += 1;
            D1_amount_total += 1;
            D1_cost = 10 * Math.Pow(10,Math.Truncate(D1_amount/10));
            D1_multiple = Math.Pow(2,Math.Truncate(D1_amount/10));
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형