1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#include <allegro.h>
#include <winalleg.h>
int BildKollision(BITMAP* Ente,int x1, int y1, BITMAP* Player, int x2, int y2)
{
if(x1>=(x2+Player->w) || y1>=(y2+Player->h) || x2>=(x1+Ente->w) || y2>=(y1+Ente->h)) return 0;
else return -1;
}
int main()
{
allegro_init(); //initialisiere Allegro (muss gemacht werden!!!)
install_keyboard(); //Initialisiere Tastatur
install_mouse(); //Initialisiere Maus
set_color_depth(32); //Farbtiefe 16Bit
set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0); //Fenstermodus mit 800x600 Pixel.
set_window_title("Shoot it! v0.1"); //Fenster-Titel angeben.
//Alle Bilder initialisieren
BITMAP *Ente;
BITMAP *Hintergrundbild;
BITMAP *Player;
BITMAP *buffer;
int x1 = 100;
int y1 = 400;
int x2 = mouse_x;
int y2 = mouse_y;
//Alle Bilder laden
Ente = load_bitmap("images//Duck2.bmp", NULL);
Hintergrundbild = load_bitmap("images//Background.bmp", NULL);
Player = load_bitmap("images//maus.bmp", NULL);
buffer = create_bitmap(SCREEN_W, SCREEN_H);//erzeugt den Zwischenspeicher
//Hauptschleife
while( !keypressed())
{
//löscht den Zwischenspeicher
clear(buffer);
//malt die Bilder in den Zwischenspeicher
draw_sprite(buffer, Hintergrundbild, 0, 0); //Hintergrund
draw_sprite(buffer, Ente, 100,400); //Ente
draw_sprite(buffer, Player, mouse_x-25, mouse_y-25); //Maus
//malt die neuen Bilder auf den Bildschirm
blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
if(BildKollision(Ente,x1,y1,Player,x2,y2)) textprintf_ex(screen,font,350,280,makecol(255,0,0),-1,"Kollision!");
}
//Bilder wieder löschen
destroy_bitmap(Ente);
destroy_bitmap(Hintergrundbild);
destroy_bitmap(Player);
return 0;
}
END_OF_MAIN()
|