Programmieren: Hilfe & Austausch
11.09.2012 um 16:20Anzeige
//#define USE_CONSOLE
#include <iostream>
#include <windows.h>
#include <allegro.h>
#include <time.h>
void jump(int &high) {
if (key [KEY_SPACE]) {
for (int i=0;i<=5;i++) {
high++;
}
for (int j=0;j<=5;j++) {
high--;
}
}
}
int main() {
int varRight= 320;
int varHigh= 240;
int varTriR= 320;
int varTriH= 40;
allegro_init();
install_keyboard();
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
BITMAP *Doublebuffer = create_bitmap(640, 480);
BITMAP *mario = load_bitmap("mario.bmp", NULL);
BITMAP *forrest = load_bitmap("forrest.bmp", NULL);
while(!key [KEY_ESC]) {
if (key [KEY_RIGHT])
varRight++;
if (key [KEY_LEFT])
varRight--;
if (key [KEY_DOWN])
varHigh++;
if (key [KEY_UP])
varHigh--;
if (key [KEY_D])
varTriR++;
if (key [KEY_A])
varTriR--;
if (key [KEY_S])
varTriH++;
if (key [KEY_W])
varTriH--;
/*if (key [KEY_SPACE]) {
varHigh+=5;
Sleep(1000);
varHigh-=5;
}*/
if (key [KEY_SPACE]) {
for (int i=0;i<=5;i++) {
varHigh+=10;
Sleep(1);
blit(mario,Doublebuffer, 0,0, varRight, varHigh,20,40);
blit(Doublebuffer, screen, 0,0, 0,0, 640, 480);
}
for (int j=0;j<=5;j++) {
varHigh-=30;
Sleep(1);
blit(mario,Doublebuffer, 0,0, varRight, varHigh,20,40);
blit(Doublebuffer, screen, 0,0, 0,0, 640, 480);
}
}
//jump(varHigh);
blit(Doublebuffer, screen, 0,0, 0,0, 640, 480);
blit(forrest, Doublebuffer, 0,0, 0,0, 640,480);
triangle(Doublebuffer, varTriR, varTriH, 147, 340, 493, 340, makecol(255, 0, 0));
//circlefill(screen, varRight, varHigh, 50, makecol(255, 255, 255));
blit(mario,Doublebuffer, 0,0, varRight,varHigh,20,40);
}
;
return 0;
}
END_OF_MAIN();
interpreter schrieb:versuchs mal, indem du den ganzen Anzeigeprozess in deine Schleife einbaust... alsodas ist aber alles schon in der while (blubb ESC) .. schleife drin
blit(Doublebuffer, screen, 0,0, 0,0, 640, 480);
blit(forrest, Doublebuffer, 0,0, 0,0, 640,480);
triangle(Doublebuffer, varTriR, varTriH, 147, 340, 493, 340, makecol(255, 0, 0));
//circlefill(screen, varRight, varHigh, 50, makecol(255, 255, 255));
blit(mario,Doublebuffer, 0,0, varRight,varHigh,20,40);
if (key [KEY_SPACE]) {
for (int i=0;i<=5;i++) {
varHigh+=10;
Sleep(1);
blit(forrest, Doublebuffer, 0,0, 0,0, 640,480);
triangle(Doublebuffer, varTriR, varTriH, 147, 340, 493, 340, makecol(255, 0, 0));
//circlefill(screen, varRight, varHigh, 50, makecol(255, 255, 255));
blit(mario,Doublebuffer, 0,0, varRight,varHigh,20,40);
blit(Doublebuffer, screen, 0,0, 0,0, 640, 480);
}
for (int j=0;j<=5;j++) {
varHigh-=30;
Sleep(1);
blit(forrest, Doublebuffer, 0,0, 0,0, 640,480);
triangle(Doublebuffer, varTriR, varTriH, 147, 340, 493, 340, makecol(255, 0, 0));
//circlefill(screen, varRight, varHigh, 50, makecol(255, 255, 255));
blit(mario,Doublebuffer, 0,0, varRight,varHigh,20,40);
blit(Doublebuffer, screen, 0,0, 0,0, 640, 480);
}
}