내 접근 방식. 코어 - 엔진. - 페이지 10

 
Vasiliy Sokolov :

두 번째 질문에 대한 답이 있을까요? 다시 반복하겠습니다.

다음은 "버튼 속성 설정"이 의미하는 바입니다.

 #define NAME         0
#define TYPE         1
#define ELEMENT     2

#define X           3
#define X_SIZE       4
#define Y           5
#define Y_SIZE       6
#define BG_COLOR     7
#define TEXT_COLOR   7
#define TEXT         8
#define CORNER       9
#define STATE       10
//-------------------

이 작업은 미리 수행해야 합니다.

커널에서 속성 초기화에 대해 이야기하는 경우 언제든지 수행할 수 있습니다.

 
Реter Konow :

개체의 속성 수를 승인하면 더 이상 변경할 수 없습니다. 변경하면 배열 외부에 출력이 있습니다.

개체의 모든 속성을 미리 알고 있어야 합니다. 그들에게 색인을 주십시오. 그리고 그것들은 모두 커널 행에 배치되어야 합니다.

그러나 Core는 동적일 수 있으며 그 안에 있는 요소 및 개체의 수를 변경할 수 있습니다. 이렇게 하려면 ArrayResize 를 사용하십시오 .

그리고 개발 과정에서 갑자기 "객체"의 속성 수를 확장해야 하는 것으로 밝혀지면 어떻게 됩니까? 모든 코드를 다시 작성하시겠습니까?

 
Vitalii Ananev :

그리고 개발 과정에서 갑자기 "객체"의 속성 수를 확장해야 하는 것으로 밝혀지면 어떻게 됩니까? 모든 코드를 다시 작성하시겠습니까?

아니요. 전부는 아니다. 개발 과정에서 Objects의 속성 수가 지속적으로 증가했습니다. 20-30에서 시작하여 지금은 236입니다. 커널 차원의 크기만 변경하여 새 속성을 추가하고 코드에 맞출 수 있습니다. 변경할 필요가 없습니다.

 
Реter Konow :

그래서 먼저 프로토타입 코어의 속성 수를 변경했는데 메인 코어와 동일한 수의 속성이 있었습니다. 다음으로 G_CORE 빌드 주기를 만들어 보겠습니다.

 int P_CORE[ 3 ][ 10 ] = {
//Основание кнопки.-----------------------------
//
//NAME     TYPE   ELEMENT     X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{ 100001 ,  base,  button,     100 , 100 ,     200 ,     50 ,     C'245,245,245' },
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//NAME    TYPE   ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{ 100002 ,  text,  button,   120 , 120 ,     0 ,       0 ,       C'245,0,0' },
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//NAME    TYPE     ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
{ 100003 ,   icon ,    button,   140 , 140 ,     16 ,     16 ,           0 },
//---------------------------------------------- 
};

이 루프 후에 G_CORE는 10개의 버튼 프로토타입으로 채워집니다. 다음으로 우리의 임무는 요소에 고유한 이름을 부여하고 개체를 요소에 바인딩 하여 각 요소에 고유한 인덱스를 제공하는 것입니다.

예, 이해하지 못했습니다. 버튼 이름이 숫자 형식인 이유는 무엇입니까? 숫자 1000003은 무엇을 의미합니까? 버튼 이름을 텍스트로 설정하는 방법은 무엇입니까?

 
각 개체에 대한 236개의 속성. 약 50개의 다른 요소. 그리고 여기에서 그들은 접근 방식이 어렵다는 것을 나에게 증명합니다. 그래 힘들면 뽑았을까?
 
Реter Konow :

아니요. 전부는 아니다. 개발 과정에서 Objects의 속성 수가 지속적으로 증가했습니다. 20-30에서 시작하여 지금은 236입니다. 커널 차원의 크기만 변경하여 새 속성을 추가하고 코드에 맞출 수 있습니다. 변경할 필요가 없습니다.

분명한. 그러나 당신은 스스로 모순되고 있습니다.

개체의 속성 수를 승인하면 더 이상 변경할 수 없습니다. 변경하면 배열 외부에 출력이 있습니다.

무슨 뜻인가요?

 
Vasiliy Sokolov :

예, 이해하지 못했습니다. 버튼 이름이 숫자 형식인 이유는 무엇입니까? 숫자 1000003은 무엇을 의미합니까? 버튼 이름을 텍스트로 설정하는 방법은 무엇입니까?

그래픽 개체가 많은 경우 의미 있는 문자열 이름을 지정하는 것은 의미가 없습니다. 따라서 숫자. 이런 식으로 루프에서 이름을 지정하는 것도 더 쉽습니다.

 
Vitalii Ananev :

분명한. 그러나 당신은 스스로 모순되고 있습니다.

무슨 뜻인가요?

이것은 커널의 크기가 개체의 속성 수와 일치해야 함을 의미합니다. 속성 수를 변경하고 Core의 크기를 변경하지 않으면 어레이가 제한을 초과하게 됩니다.

 
Реter Konow :

목록에 새로운 지평은 없을 것입니다 . 내 개념은 추가가 필요하지 않습니다. 그것은 완전하고 자급 자족합니다.

OOP에서 생성한 불필요한 엔터티와 도구가 포함되어 있지 않다는 장점이 있습니다.

이것은 이해할 수 있습니다. 당신은 여전히 그들에 대해 아무것도 모릅니다 :( 모든 발견이 앞서 있습니다 ...

스레드가 어떻게 관심을 얻고 있는지 궁금합니다 ...

그리고 철학적으로 정통한 topikstarter가 어떻게 평범한 배열로 내려 갔습니까? 아마도 그들은 말할 것입니다 : 단순함에 힘이 있지만 우리는 이미 우주로 날아갑니다 :)

이해가 안가네요 :( 현실 www....

 
Реter Konow :

그래픽 개체가 많은 경우 의미 있는 문자열 이름을 지정하는 것은 의미가 없습니다. 따라서 숫자. 이런 식으로 루프에서 이름을 지정하는 것도 더 쉽습니다.

글쎄, 당신의 이름 아래에 숫자가 숨겨져 있다고 가정해보자(야생은 물론이지만 가정해보자). 그러나 각 버튼에는 레이블, "취소" 또는 이와 유사한 텍스트가 있습니다. 이 속성을 지정하는 방법은 무엇입니까? 그래서:

 int P_CORE[ 3 ][ 10 ] = {
//Основание кнопки.-----------------------------
//
//NAME     TYPE   ELEMENT     X    Y     X_SIZE  Y_SIZE       COLOR  TEXT
//----------------------------------------------
{ 100001 ,  base,  button,     100 , 100 ,     200 ,     50 ,     C'245,245,245', " Отмена" }, 
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//NAME    TYPE   ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{ 100002 ,  text,  button,   120 , 120 ,     0 ,       0 ,       C'245,0,0' },
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//NAME    TYPE     ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
{ 100003 ,   icon ,    button,   140 , 140 ,     16 ,     16 ,           0 },