Benim yaklaşımım. Çekirdek - Motor. - sayfa 10

 
Vasiliy Sokolov :

İkinci sorunun cevabı olacak mı? Tekrar tekrar edeceğim:

Anladığım kadarıyla "düğme özelliklerini ayarlama"nın anlamı şudur:

 #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
//-------------------

Bu önceden yapılmalıdır.

Çekirdekteki özelliklerin başlatılmasından bahsediyorsak, bu herhangi bir zamanda yapılabilir.

 
Реter Konow :

Bir nesnenin özelliklerinin sayısını onayladıktan sonra artık değiştiremezsiniz. Değiştirirseniz, dizinin dışında bir çıktı olacaktır.

Nesnelerinizin tüm özelliklerini önceden bilmelisiniz. Onlara indeksler verin. Ve hepsi Kernel'in bir satırına yerleştirilmelidir.

Ancak Çekirdek dinamik olabilir ve içindeki Öğe ve Nesnelerin sayısını değiştirebilirsiniz. Bunu yapmak için ArrayResize kullanın .

Ve geliştirme sürecinde aniden "nesnenizin" özelliklerinin sayısını artırmanız gerekeceği ortaya çıkarsa ne olur? Tüm kodu yeniden yazar mısın?

 
Vitalii Ananev :

Ve geliştirme sürecinde aniden "nesnenizin" özelliklerinin sayısını artırmanız gerekeceği ortaya çıkarsa ne olur? Tüm kodu yeniden yazar mısın?

Numara. Hepsi değil. Geliştirme sürecimde Objects özelliklerinin sayısı sürekli arttı. 20-30'da başladı ve şimdi 236. Sadece Kernel boyutunun boyutunu değiştirerek yeni özellikler ekleyebilir ve bunları koda sığdırabilirim. Hiçbir şeyin değiştirilmesi gerekmiyor.

 
Реter Konow :

Ve böylece, ilk önce prototip çekirdeğin özellik sayısını değiştiriyoruz, ana çekirdektekiyle aynı sayıda özellik vardı. Ardından, bir G_CORE derleme döngüsü yapalım.

 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 },
//---------------------------------------------- 
};

Bu döngüden sonra G_CORE, 10 düğme prototipiyle doldurulacaktır. Daha sonra, görevimiz Elementlere benzersiz adlar vermek ve Nesneleri Elementlerine bağlayarak her bir Öğeye benzersiz bir dizin vermektir.

Evet, anlamadım. Düğme adınız neden bir sayı biçiminde? 1000003 sayısı ne anlama geliyor? Ve düğmenin adı metin olarak nasıl ayarlanır?

 
Her nesne için 236 özellik. Yaklaşık 50 farklı element. Ve burada bana yaklaşımın zor olduğunu kanıtlıyorlar. Evet, zor olsaydı çeker miydim?
 
Реter Konow :

Numara. Hepsi değil. Geliştirme sürecimde Objects özelliklerinin sayısı sürekli arttı. 20-30'da başladı ve şimdi 236. Sadece Kernel boyutunun boyutunu değiştirerek yeni özellikler ekleyebilir ve bunları koda sığdırabilirim. Hiçbir şeyin değiştirilmesi gerekmiyor.

Açık. Ama kendinle çelişiyorsun.

Bir nesnenin özelliklerinin sayısını onayladıktan sonra artık değiştiremezsiniz. Değiştirirseniz, dizinin dışında bir çıktı olacaktır.

Bu ne anlama geliyor?

 
Vasiliy Sokolov :

Evet, anlamadım. Düğme adınız neden bir sayı biçiminde? 1000003 sayısı ne anlama geliyor? Ve düğmenin adı metin olarak nasıl ayarlanır?

Çok sayıda grafik nesne olduğunda, onlara anlamlı dize adları vermek anlamsızdır. Bu nedenle, sayılar. Bunları bir döngü içinde bu şekilde adlandırmak da daha kolaydır.

 
Vitalii Ananev :

Açık. Ama kendinle çelişiyorsun.

Bu ne anlama geliyor?

Bu, çekirdeğin boyutunun , nesnenin özelliklerinin sayısına karşılık gelmesi gerektiği anlamına gelir. Özellik sayısını değiştirirseniz ve Çekirdeğin boyutunu değiştirmezseniz, dizi sınırların ötesine geçecektir.

 
Реter Konow :

Listelerle yeni ufuklar olmayacak . Konseptim ilaveler gerektirmez. Tamdır ve kendi kendine yeterlidir.

Avantajı, OOP tarafından oluşturulan gereksiz varlıkları ve araçları içermemesidir.

Bu anlaşılabilir bir durum, hala onlar hakkında hiçbir şey bilmiyorsunuz :( Tüm keşifler ileride ...

Konunun nasıl ilgi gördüğünü merak ediyorum...

Ve nasıl oldu da, felsefi açıdan anlayışlı bir topik başlatıcı banal bir diziye indi? Belki diyecekler: Sadelikte güç var ama biz zaten uzaya uçuyoruz :)

Anlamıyorum :( Gerçek awww....

 
Реter Konow :

Çok sayıda grafik nesne olduğunda, onlara anlamlı dize adları vermek anlamsızdır. Bu nedenle, sayılar. Bunları bir döngü içinde bu şekilde adlandırmak da daha kolaydır.

Diyelim ki adınızın altına gizlenmiş bir numaranız var (elbette vahşilik, ama varsayalım). Ancak her düğmenin bir etiketi, "İptal" gibi bir metni veya buna benzer bir metni vardır. Bu özellik nasıl belirlenir? Böyle:

 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 },
Neden: