Past/Matlab GUI 6

Matlab GUI로 스타크래프트 빌드메이커 제작 #6/6 - 최종 캡처조건 설정

이 프로그램의 최종 부분 코드이다. 원하는 빌드오더를 다 적었으면 캡처를 해서 그 이미지를 사용하는데, 윈도우 기본 기능으로 캡쳐하려면 번거롭기 때문에 프로그램 자체 기능으로 캡처하도록 만들었다. 글 정렬 옵션은 원래 없던 기능인데 커뮤니티에서 추가해달라는 요청이 있어서 나중에 만든 옵션이다. 글 정렬 옵션에는 'Radiobutton' 객체를 사용했는데, 먼저 간단히 객체에 대해 알아보자. 위의 두 객체는 각각 'Check Box'와 'Radio Button'인데, 전자는 보통의 경우 중복선택이 가능할 때 사용하고, 후자는 여러 항목 중 중복 없이 단일선택만 가능할 때 사용한다. 하지만 매트랩에서는 객체 자체에 중복과 단일선택을 판별하는 기능이 없기 때문에 코드로 만들어야 한다. 'radiobutton'..

Past/Matlab GUI 2017.12.17

Matlab GUI로 스타크래프트 빌드메이커 제작 #5/6 - Undo버튼 콜백 설정

이 프로그램에서 'Undo'버튼이 없다면 프로그램 중간에 잘못 추가한 경우엔 프로그램을 처음부터 시작해야 한다. 그래서 잘못 추가한 이미지를 바로 되돌리기 위해 'Undo'버튼이 필요하다. 'Undo'버튼의 역할은 이미지버튼을 통해서 슬롯을 추가한 것과 반대의 역할을 한다고 생각하면 된다. 어떻게 코딩이 되었는지 알아보자. 우선 'Undo'버튼은 빈 슬롯을 제거할 때 창 크기를 줄여야 할 수도 있다. 창 크기를 변경할 땐 시간지연이 생기는데 그렇기 때문에 이전 포스팅과 같이 콜백함수를 실행하는 버튼들을 사용자가 클릭할 수 없도록 해야한다. 'enable'속성은 해당 객체의 작동가능 여부를 결정하는데 'on'인 경우에는 정상 작동되고 'off'인 경우에는 회색으로 바뀌며 클릭이 불가능하게 된다. 'inac..

Past/Matlab GUI 2017.12.16

Matlab GUI로 스타크래프트 빌드메이커 제작 #4/6 - 이미지버튼 콜백 설정

이 카테코리에 지금까지 올린 글을 살펴보니 전역변수인 'pro, num, ppl'의 역할에 대한 설명이 부족한 것 같았다. 본격적인 코딩 설명 전 간단하게 전역변수 예시를 알아보자. 위의 경우 전역변수의 값은 아래와 같다. pro = 3 num = [ 8 1 2 ---] ppl = [ 8 0 2 --- : 10 8 0 ---] pro는 현재 슬롯 갯수를 저장 num은 각 슬롯의 유닛수를 저장 ppl의 1행은 각 슬롯의 현재 인구수, 2행은 슬롯의 최대 인구수를 저장한다. ppl 행렬의 경우 1행의 총합은 10이고 2행의 총합은 18로 위 경우 인구수가 (10/18)로 정상 표시되어있다. 그리고 --- 표시된 부분엔 33열까지 값이 없는 부분이 0으로 채워져 있다. 이 경우에는 전역변수 값을 보면 pro ..

Past/Matlab GUI 2017.12.15

Matlab GUI로 스타크래프트 빌드메이커 제작 #3/6 - Add버튼 콜백 설정

'Add'버튼을 누르면 일어나는 동작은 M파일의 Callback함수에서 정해진다. Callback함수의 위치는 'Add' 객체의 태그 이름 'pushbutton2'를 찾으면 나온다. Callback함수의 위치를 찾고 그 밑에 원하는 코드를 작성하게 되면 'Add'버튼을 누를 때 그 코드가 실행된다. 224~226줄은 먼저 초기조건에서 선언된 pro, num, ppl 변수를 불러온다. 함수 내에서 사용하기 위해서이다. 227줄부터는 if문이 시작되는데 'Add'버튼을 누르면 판단해야될 조건이 여러가지가 있기 때문에 굉장히 길다. 227줄은 'menu1'의 값이 1인지 확인한다. 'menu1'태그는 아래 그림의 첫번째 종족선택 창인데 값이 1이면 팝업메뉴의 첫번째 줄이 선택되어 있다는 뜻이다. 값이 2이면 ..

Past/Matlab GUI 2017.12.14

Matlab GUI로 스타크래프트 빌드메이커 제작 #2/6 - M파일 초기조건 설정

M파일이 처음 생성되고 나면 GUI실행에 필요한 모든 코드가 자동으로 입력되지만, 아무 역할도 할 수는 없다. 프로그램의 정상적인 구동을 위해서는 알맞는 코딩을 해줘야 한다. 이제부터 프로그램의 코딩에 대해서 초기조건 설정부터 알아보자. 초기조건을 입력하는 위치는 코드 앞부분 '파일이름_OpeningFcn(...)' 이 있는 줄 다음이다. 이 위치에서 모든 객체들의 초기조건과 프로그램 구동에 필요한 전역변수를 선언한다. 55~59번 줄을 먼저 보면 for문 안에 한 눈에 잘 들어오지 않는 코드가 있다. 실제 빌드오더에 이미지가 들어가는 'Axes'객체는 초기조건을 설정하지 않으면 격자 표시가 되어있어서 깔끔하지 않다. 이 프로그램에서 최대로 입력할 수 있는 빌드오더는 33개이니 for문을 33번 돌려서 ..

Past/Matlab GUI 2017.12.12

Matlab GUI로 스타크래프트 빌드메이커 제작 #1/6 - Fig파일 설정

우선 프로그램 코딩 설명을 하기 전에 알아둬야 할 것이 있다. 기본적으로 Matlab Guide에서 뭐가 뭔지 알 수 있어야 하고 Matlab 함수의 기본적인 부분은 알아야 무난하게 설명을 이해할 수 있다. 위 사진은 프로그램 첫 실행화면인데 보이는 객체들은 순서대로 'Statictext'들과 'Popupmenu', 'Edittext', X표시 된 부분은 'Axes'이고 아래쪽에는 'Pushbutton'이 있다. 그리고 위 사진에는 없지만 'Pushbutton'이 있는 곳 바로 위에 'Radiobutton'이 있어서 글박스를 왼쪽, 가운데 정렬로 바꿀 수 있다. 'Add'버튼을 누르면 유닛을 선택할 수 있는 오브젝트 'Uipanel'이 표시되는데 전부 다 'Pushbutton'으로 구성됐으며 종족별로 각..

Past/Matlab GUI 2017.12.12