Nove funkce Fout a Sout

Sem vkládejte editovatelné kusy kódu a tutoriály.
Odpovědět
ereg
Příspěvky: 500
Registrován: únor 18, 2012, 11:30 am
Facebook: http://facebook.com/

Nove funkce Fout a Sout

Příspěvek od ereg » květen 27, 2013, 7:10 pm

Rozhodl jsem se zverejnit dva jednouche scripty, ktere mohou ulehcit zacatecnikum zivot.
Kazdy staci vytvorit v zalozce Scripts

Fout() je script, ktery vypise vlozeny argument do souboru ve spoustecim adresari.
soubor se jmenuje fcout_data.dat, ale neni problem ho libovolne prejmenovat

Kód: Vybrat vše

/**********************************************************************  
*  Fout  (file output    by Ereg H.)  
*  
*  popis:   otevre soubor fcout_data.dat a do nej ulozi retezec z argumentu funkce.
*           retezec muze obsahovat vic promennych a jine retezce.
*             
*  format:  Fout("hellou")
*           Fout(nejaka_promenna)
*          
**********************************************************************/  
var __file_id;

__file_id = file_text_open_append("fcout_data.dat");
file_text_write_string(__file_id, string(argument0) );
file_text_writeln(__file_id);
file_text_close(__file_id);
pouziti je vhodne pro zaznamenani serie dat, at uz z eventu draw anebo step.
dalsi vyuziti napriklad pro prozkoumani vyvoje/pomeru promennych v excelu. neni problem pak udelat tabulky ukazujici zmeny jedne promenne k jine( penize-suroviny) apod.

Sout() script, ktery vypise vlozeny argument na obrazovku.
vyhoda se ukaze v jednoduchem ladeni programu. Do programu pak staci pridat jediny radek.

Kód: Vybrat vše

/********************************************************************
*   Sout  (screen soutput  by EREG H.)
*     
*  popis:   funkce vypise 1 retezec na screen funkci draw_text. 
*           jednoscriptova funkce vytvrori za behu 3 globalni promenne
*           (global.sc_sout_object_id, global.sc_sout_object_id, global.sc_sout_string)
*           a 1 objekt s eventem DRAW. vypisovany retezec se meni pomoci argumentu funkce.
*
* format: Sout(x, y, string, col);
*           argument0= x
*           argument1= y
*           argument2= string
*           argument3= color      ( 0 for black)
*
* example: Sout(0, 0, "hellou", c_black)
*          Sout(100, mouse_x, some_string, c_black)
*          Sout(150, 250, "hellou", 0)
*          Sout(object.x, object.y+25, "hellou")
**********************************************************************/          

// test existence podpurne instance ve hre. kdyz neni vytvori novy objekt a vlozi do hry jako instanci.
if (!variable_global_exists("sc_sout_inst_id") ) { 
    global.sc_sout_object_id=object_add();
    global.sc_sout_string="pokus";
};

// test jestli byl retezec zmenen, kdyz ano pak pokracuje v priprave vypisu
if (global.sc_sout_string!=argument2){
    global.sc_sout_string=argument2;
    
    // test jestli neni instance v room, kdyz nei pak je pridana do roomu
    if (!instance_exists( global.sc_sout_object_id)) {
        global.sc_sout_inst_id=instance_create(0,0,global.sc_sout_object_id); 
        global.sc_sout_inst_id.depth=1569325055;   
    };
    
    // smazani stareho eventu DRAW
    object_event_clear(global.sc_sout_object_id, ev_draw, 0);

    // defaultni color v eventu DRAW
    if (string(argument3)=="0" || string(argument3)=="" ) {argument3=c_black; };
    
    // nastaveni noveho eventu DRAW
    object_event_add(global.sc_sout_object_id, ev_draw, 0, "draw_text_color("+ string(argument0) 
        +","+string(argument1)+","+chr(34)+string(argument2)+chr(34)+"," 
        + string(argument3)+","+ string(argument3)+","+ string(argument3)+","+ string(argument3)+","+ string(1)+ ")" );
}

// priklad eventu DRAW:  draw_text_color(512,384,"mouseX= 512",c_black,c_black,c_black,c_black,1)
Pokud se vám něco na fóru nelíbí, zkuste si přečíst třeba Wikietiketu a svou kritiku pišete podle ní.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host