Hei. Yritän allegrossa saamaan sen siten, että pikseli liikkuu näytöllä siihen suuntaan, mihin on nuolinäppäimillä painettu. Katson siis Suomipelien opasta. Olisi kiva, jos joku voisi vilkaista tätä koodia, kun se ei jostain syystä nyt toimi.
#include <allegro.h> int main() { int vaaka = 10, pysty = 10; RGB punainen = { 63, 0, 0 }; allegro_init(); install_keyboard(); set_gfx_mode(GFX_VGA, 320, 200, 0, 0); set_color(1, &punainen); while(!key[KEY_ESC]) { if(key[KEY_LEFT]) { vaaka--; putpixel(screen, vaaka, pysty, 1); } if(key[KEY_RIGHT]) { vaaka++; putpixel(screen, vaaka, pysty, 1); } if(key[KEY_UP]) { pysty--; putpixel(screen, vaaka, pysty, 1); } if(key[KEY_DOWN]) { pysty++; putpixel(screen, vaaka, pysty, 1); } } allegro_exit(); }
Onko ongelmana ettei näytölle piirry mitään? Vai onko ongelmana, että näytölle piirtyy satoja pikseleitä, kun painaa nappia vain hetkenkin. Mikäli tuo kääntyy virheittä, niin näytölle pitäisi tulla viiva eikös niin. Piirtojen välillä olisi hyvä joko floodata näyttö taustavärilla ennen uuden pikselin piirtoa, tai piirtää edellinen pikseli taustan värillä.
Piirtojen välillä olisi hyvä odotella jonkun aikaa, jotta näppäimen saa ylös ajoissa ja pikseli näyttää liikkuvan.
Juu, näytölle tulee viiva siihen suuntaan, mihin on painanut nuolinäppäimillä.
allegron manuaalista löytyi rest(undigned int rest) funktio, jolla voit odotella määritellyn ajan millisekunteina.
Okei. En nyt juuri pääse testailemaan tuota, kun asensin koneelleni Linuxin, mutta kiitos avusta!
Aihe on jo aika vanha, joten et voi enää vastata siihen.