Die jeweiligen Installationsanweisungen finden sich auf der Homepage. Die Menschen dort im Forum sind sehr hilfsbereit und beantworten Fragen gerne: http://www.allegro.cc
Ich habe für das kleine Programm die Version 4.2 unter Ubuntu Lucid Lynx verwendet. Hier ein kurzes Programm, welches den ersten angeschlossenen Joystick erkennt, prüft, ob er ein analoges Signal liefern kann und die Messwerte dann in Form von Balken auf dem Bildschirm ausgibt. Sicherlich lässt sich das Programm noch bis zu einem beliebigen Grad optimieren, es soll hier nur als "Minibeispiel" dienen:
Code: Select all
#include <stdio.h>
#include <allegro.h>
int main()
{
int i;
int midx, midy;
allegro_init();
install_keyboard();
install_mouse();
install_timer();
install_joystick(JOY_TYPE_AUTODETECT);
printf("%d joysticks found.\n", num_joysticks);
if(!num_joysticks)
{
printf("Please connect a joystick.\n");
exit(0);
}
for(i=0;i<num_joysticks;i++)
if(joy[i].flags&JOYFLAG_ANALOGUE)
printf("Joystick %d provides full analogue input.\n", i+1);
set_color_depth(desktop_color_depth());
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 300, 300, 0, 0);
BITMAP* backbuffer=create_bitmap(SCREEN_W, SCREEN_H);
midx=SCREEN_W/2;
midy=SCREEN_H/2;
while(!key[KEY_ESC])
{
poll_joystick();
clear_to_color(backbuffer, makecol(0,0,0));
rect(backbuffer, midx, midy-5, midx+joy[0].stick[0].axis[0].pos, midy+5, makecol(255,0,0));
rect(backbuffer, midx-5, midy, midx+5, midy+joy[0].stick[0].axis[1].pos, makecol(0,255,0));
rect(backbuffer, midx, 280, midx+joy[0].stick[1].axis[0].pos, 290, makecol(0,0,255));
textprintf_ex(backbuffer, font, 10, 10, makecol(255, 255, 255), -1, "x-Axis: %d", joy[0].stick[0].axis[0].pos);
textprintf_ex(backbuffer, font, 10, 20, makecol(255, 255, 255), -1, "y-Axis: %d", joy[0].stick[0].axis[1].pos);
textprintf_ex(backbuffer, font, 10, 30, makecol(255, 255, 255), -1, "z-Axis: %d", joy[0].stick[1].axis[0].pos);
blit(backbuffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
}
return 0;
}