Hirdetés

Új hozzászólás Aktív témák

  • kovisoft
    őstag

    Hello :)

    Elmétek kiapadhatatlan tudás forrását, szeretném ismételten megcsapolni :R

    Lenne egy olyan problémám, hogy a tömb nevét szeretném változtatni attól függően milyen betűtípust akarok használni. Font neven fut, és ha változóval próbáltam helyettesíteni nem ment.
    Gondolom van rá megoldás, csak nekem új :R

    Előre is köszönöm

    Ez lenne a példa részlet:
    int write_char(int page_select, int y_offset, int charcater_code)

    { int x;
    if(y_offset>=( Display_width/2) && y_offset <= Display_width - Font_width && charcater_code>=32 && charcater_code<=128) //Check which side of the screen need to be activated
    {
    goto_xy( page_select, y_offset);

    for(x=( charcater_code - Font_offset ) * Font_width; x<(( charcater_code - Font_offset)* Font_width)+ Font_width; x++) //Decodes the character code and make sure the data is sent by 8 bits
    {
    send_data_screen( Font[x]); //Sends out the relevant section of the Array
    }
    } else if( y_offset<( Display_width/2) && y_offset>=0 && charcater_code>=32 && charcater_code<=128)
    {
    goto_xy( page_select, y_offset); //Selects pages of writing
    for(x=( charcater_code - Font_offset)* Font_width; x<(( charcater_code - Font_offset) * Font_width)+ Font_width; x++) //Decodes the character code and make sure the data is sent by 8 bits
    { if( y_offset + (x-( charcater_code - Font_offset) * Font_width)!=( Display_width/2)) //Checks if the character has reached the border of the 2 sides of the screen
    {
    send_data_screen( Font[x]);
    }
    else
    { //If the Character is belong to the right side
    goto_xy( page_select,( Display_width/2)); //Selects pages of writing
    send_data_screen( Font[x]); //Sends out the relevant section of the Array


    }
    }
    }
    else
    {
    MEMBRANE_MUTE=1;

    }

    }

    Ha jól értem, paraméterben szeretnéd átadni a write_char() függvényednek azt, hogy milyen betűkészletet használjon. Ehhez össze kell szedned, mi definiálja a betűkészletet. Egyrészt a Font[] tömb, másrészt a Font_width, Font_height, Font_offset (ha nem hagytam ki valamit). Ezeket fel kell venned még plusz paraméterként és átadnod a write_char()-nak, pl:

    int write_char(int page_select, int y_offset, int character_code,
    long int *font, int font_width, int font_height, int font_offset)

    És így tudod pl. meghívni:

    write_char(line,y_offset+j*Font_width,test[j],Font,Font_width,Font_height,Font_offset);

    Mivel az y_offset számolásában is használod a Font_width-et, így szebb lenne ezt a függvényen belül végezni.

    Ha pedig mindegyik betűkészlet ugyanolyan méretű, akkor elég csak a font tömböt átadni, nem kellenek a betűméretek.

Új hozzászólás Aktív témák