This is my lovely code:
#include <allegro.h>
#include <stdio.h>
#include "image.h"
#include "gameinit.h"
#include "bullet.h"
int main(void)
{
Game initialize(false);
/*------------INT,CHAR,BOOL INIT--------------*/
char currKey = ' '; char prevKey = currKey;
bool collState = false; bool prevCollState = collState;
bool canshoot = true;
int score = 0;
/*------------END OF INITIALIZATION-----------*/
/*------BITMAP,MIDI,SAMPLE,BULLET,IMAGE INIT-------*/
Image starfield1("stars.bmp"); Image starfield2("stars.bmp");
Image sky1_1("sky1.bmp"); Image sky1_2("sky1.bmp");
Image sky2_1("sky2.bmp"); Image sky2_2("sky2.bmp");
Image fireball("fireball.bmp");
BITMAP *screens = load_bitmap("screens.bmp",NULL);
BITMAP *buffer = create_bitmap(640,480);
Image player("ship.bmp");
Image enemy("enemy.bmp");
Bullet bullet[MAXBULLETS](player);
/*-------------END OF INITIALIZATION---------------*/
/*----------SPRITE VARIABLES/LOCATIONS INIT----------*/
player.x = 70; player.y = 320; enemy.x = 640;
starfield1.x = 0; starfield2.x = 640;
sky1_1.x = 0; sky1_2.x = 640;
sky2_1.x = 0; sky2_2.x = 640;
/*-------------------END OF INIT---------------------*/
/*-------------------GAME LOOP-----------------------*/
while(!key[KEY_ESC])
{
prevKey = currKey;
prevCollState = collState;
/*-----INPUT LOOP-----*/
while(speed_c>0)
{
/*--------BEGIN STARS--------*/
/*---BACKGROUND STARFIELD MOVEMENT---*/
if(starfield1.x>-640)
starfield1.x-=10;
else if(starfield1.x==-640)
starfield1.x=640;
if(starfield2.x>-640)
starfield2.x-=10;
else if(starfield2.x==-640)
starfield2.x=640;
/*-----FOREGROUND STARS MOVEMENT-----*/
if(sky1_1.x>-640)
sky1_1.x-=2;
else if(sky1_1.x==-640)
sky1_1.x=640;
if(sky1_2.x>-640)
sky1_2.x-=2;
else if(sky1_2.x==-640)
sky1_2.x=640;
/*-------MIDDLE STARS MOVEMENT-------*/
if(sky2_1.x>-640)
sky2_1.x-=5;
else if(sky2_1.x==-640)
sky2_1.x=640;
if(sky2_2.x>-640)
sky2_2.x-=5;
else if(sky2_2.x==-640)
sky2_2.x=640;
/*---------END STARS---------*/
/*-------PLAYER MOVEMENT-------*/
if(key[KEY_UP])
if(player.y<71)
player.y=70;
else
player.y-=5;
else if(key[KEY_DOWN])
if(player.y+64>410)
player.y=411-64;
else
player.y+=5;
/*----END OF PLAYER MOVEMENT---*/
/*====SHOOTING====*/
if(key[KEY_SPACE])
{
for(int i = 0; i < MAXBULLETS; i++)
{
if(bullet[i].exist==false && canshoot == true)
{
bullet[i].x = player.x+64;
bullet[i].y = player.y+32;
bullet[i].shoot(fireball,buffer);
canshoot = false;
}
}
}
else if(!key[KEY_SPACE])
{
canshoot = true;
}
for(int i=0; i<MAXBULLETS; i++)
{
if(bullet[i].exist == true)
{
bullet[i].movebullets(fireball,buffer);
}
}
/*==END OF SHOOTING==*/
speed_c--;
}
/*----END OF INPUT----*/
/*-----------DRAW BLOCK------------*/
draw_sprite(buffer,screens,0,0);
textprintf_ex(buffer,font,8,448,makecol(255,0,0),-1,"Score:%i prevKey:%c currKey:%c prevCollState:%c collState:%c",
score,prevKey,currKey,prevCollState,collState);
textprintf_ex(buffer,font,8,458,makecol(0,225,255),-1,"player.x:%i player.y:%i starfield1.x:%i starfield2.x:%i",
player.x,player.y,starfield1.x,starfield2.x);
textprintf_ex(buffer,font,8,468,makecol(0,255,0),-1,"sky1_1.x:%i sky1_2.x:%i sky2_1.x:%i sky2_2.x:%i",
sky1_1.x,sky1_2.x,sky2_1.x,sky2_2.x);
blit(buffer,screen,0,0,0,0,640,480);
/*-------END OF DRAW BLOCK---------*/
clear_bitmap(buffer);
}
/*--------------END OF GAME LOOP---------------------*/
/*--------------DESTROY INIT---------------*/
destroy_bitmap(buffer);
destroy_bitmap(starfield1.sprite); destroy_bitmap(starfield2.sprite);
destroy_bitmap(sky1_1.sprite); destroy_bitmap(sky1_2.sprite);
destroy_bitmap(sky2_1.sprite); destroy_bitmap(sky2_2.sprite);
destroy_bitmap(screens); destroy_bitmap(fireball.sprite);
/*--------------END OF DESTROY-------------*/
return 0;
}
END_OF_MAIN();
Big and ugly, I know.As an attachment are the errors I am getting.
I ask for your guidance. Thank you.


Sign In
Create Account



Back to top









