Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Allegro ja pikselin liikuttaminen

Seti [05.12.2009 12:05:47]

#

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();
}

Teuro [05.12.2009 14:20:16]

#

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.

Seti [05.12.2009 14:53:33]

#

Juu, näytölle tulee viiva siihen suuntaan, mihin on painanut nuolinäppäimillä.

Teuro [06.12.2009 13:14:00]

#

allegron manuaalista löytyi rest(undigned int rest) funktio, jolla voit odotella määritellyn ajan millisekunteina.

Seti [09.12.2009 17:36:23]

#

Okei. En nyt juuri pääse testailemaan tuota, kun asensin koneelleni Linuxin, mutta kiitos avusta!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta