0

i started making a game using c++ and allegro, but i keep getting a error can some one please help me out

this is the code

#include <iostream>
#include <allegro.h>
#include "PlayerClass.h"
#include "Global.h"
using namespace std;

#define LEFT       4
#define RIGHT     6
#define UP           8
#define DOWN     2

volatile long speed_counter = 0;

void increment_speed_counter();
void init_crap(bool);
bool isCollision(const PlayerClass*, const PlayerClass*);
int Mainmenu();


int main()
{
    
    Mainmenu ();
    
}

void Mainmenu();
{
     string choice
     cout << "1. fight" << endl;
     
     cin >> choice;
     
     if (choice == 1){
                Fight();
                }
     else {
          Mainmenu ();
          }
          
     
}



void Fight(int argc, char *argv[])
{

    bool fullscreen = false;
    bool done = false;
    init_crap(fullscreen);
    PlayerClass player[2];
    
    //int tx, int ty, int tw, int th, int tact, int tcode
    player[0].setup(0, 440, 128, 128, 0, 0);
    player[1].setup(800-128, 440, 128, 128, 0, 1);
    BITMAP *buffer = create_bitmap(SCR_W,SCR_H);
    BITMAP *background = load_bitmap("background.bmp", NULL);
    BITMAP *chars = load_bitmap("chars.bmp", NULL);
    int win = -1;

    while (!done)
    {
        while (speed_counter > 0)
        {
            if (key[KEY_F5])
            {
                if ( fullscreen ) { set_gfx_mode(GFX_AUTODETECT_WINDOWED, SCR_W, SCR_H, 0, 0); fullscreen = false; }
                else { set_gfx_mode(GFX_AUTODETECT, SCR_W, SCR_H, 0, 0); fullscreen = true; }
            }
            if (key[KEY_F4] || key[KEY_ESC])
            {
                done = true;
            }
            //movement - player 1
            if ( key[KEY_LEFT] )
            {
                player[0].move(LEFT);
            }
            else if ( key[KEY_RIGHT] )
            {
                player[0].move(RIGHT);
            }
            if ( !key[KEY_LEFT] && !key[KEY_RIGHT] )
            {
                player[0].noMove();
            }
            if ( key[KEY_RSHIFT] )
            {
                player[0].attack();
            }
            if ( key[KEY_SPACE] )
            {
                player[0].jump();
            }
            //movement - player 2
            if ( key[KEY_A] )
            {
                player[1].move(LEFT);
            }
            else if ( key[KEY_D] )
            {
                player[1].move(RIGHT);
            }
            if ( !key[KEY_A] && !key[KEY_D] )
            {
                player[1].noMove();
            }
            if ( key[KEY_LSHIFT] )
            {
                player[1].attack();
            }
            if ( key[KEY_W] )
            {
                player[1].jump();
            }

            if (isCollision(&player[0], &player[1]))
            {
                if ( player[0].isAttacking && player[1].invincible == false )
                {
                    player[1].hit();
                }
                if ( player[1].isAttacking && player[0].invincible == false )
                {
                    player[0].hit();
                }
                if ( player[0].HP == 0 )
                    win = 1;
                else if ( player[1].HP == 0 )
                    win = 0;
            }

            player[0].update();
            player[1].update();
            speed_counter--;
        }//while (speed_counter > 0)

        text_mode(-1);
        vsync();
        acquire_screen();
        if ( win == -1 )
        {
            stretch_sprite(buffer, background, 0, 0, SCR_W, SCR_H);
            //draw_char(buffer, background, 0, 0);
            textprintf(buffer,font,0-1,30-1,makecol(0, 0, 0), "Player 1 - Arrow keys to move     Space to jump     RSHIFT to attack");
            textprintf(buffer,font,0+1,30-1,makecol(0, 0, 0), "Player 1 - Arrow keys to move     Space to jump     RSHIFT to attack");
            textprintf(buffer,font,0+1,30+1,makecol(0, 0, 0), "Player 1 - Arrow keys to move     Space to jump     RSHIFT to attack");
            textprintf(buffer,font,0-1,30+1,makecol(0, 0, 0), "Player 1 - Arrow Keys to move     Space to jump     RSHIFT to attack");
            textprintf(buffer,font,0-1,40-1,makecol(0, 0, 0), "Player 2 - WASD to move     W to jump     LSHIFT to attack");
            textprintf(buffer,font,0+1,40-1,makecol(0, 0, 0), "Player 2 - WASD to move     W to jump     LSHIFT to attack");
            textprintf(buffer,font,0-1,40+1,makecol(0, 0, 0), "Player 2 - WASD to move     W to jump     LSHIFT to attack");
            textprintf(buffer,font,0+1,40+1,makecol(0, 0, 0), "Player 2 - WASD to move     W to jump     LSHIFT to attack");
            textprintf(buffer,font,0,30,makecol(255,255,255), "Player 1 - Arrow keys to move     Space to jump     RSHIFT to attack");
            textprintf(buffer,font,0,40,makecol(255,255,255), "Player 2 - WASD to move     W to jump     LSHIFT to attack");
            textout_centre(buffer, font, "Mega Fighter V1.0", 400, 0, makecol(255,255,255));
            

            textprintf(buffer, font, player[0].x+30, player[0].y - 10, makecol(0, 0, 0), "HP: %i", player[0].HP);
            textprintf(buffer, font, player[1].x+30, player[1].y - 10, makecol(0, 0, 0), "HP: %i", player[1].HP);
            player[0].draw(buffer, chars);
            player[1].draw(buffer, chars);
        }
        else if ( win == 0 )
        {
            textout_centre(buffer, font, "P l a y e r  0  w i n s ", SCR_W/2, SCR_H/2, makecol(255,100,100));
        }
        else if ( win == 1 )
        {
            textout_centre(buffer, font, "P l a y e r  1  w i n s ", SCR_W/2, SCR_H/2, makecol(100,100,255));
        }
        blit(buffer, screen, 0, 0, 0, 0, SCR_W, SCR_H);
        clear_bitmap(buffer);
        release_screen();
    }//while (!key[KEY_ESC])

    return 0;
}

void init_crap(bool fullscreen)
{
    allegro_init();
    install_keyboard();
    install_timer();
    install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, 0);
    install_joystick(JOY_TYPE_AUTODETECT);
    LOCK_VARIABLE(speed_counter);
    LOCK_FUNCTION(increment_speed_counter);
    install_int_ex(increment_speed_counter,BPS_TO_TIMER(90));
    set_color_depth(16);
    if ( fullscreen ) { set_gfx_mode(GFX_AUTODETECT, SCR_W, SCR_H, 0, 0); }
    else { set_gfx_mode(GFX_AUTODETECT_WINDOWED, SCR_W, SCR_H, 0, 0); }
}

void increment_speed_counter()
{
    speed_counter++;
}

bool isCollision( const PlayerClass *player1, const PlayerClass *player2 )
{
    if ( (player1->x + player1->w > player2->x && player1->x < player2->x + player2->w) &&
            (player1->y + player1->h > player2->y && player1->y < player2->y + player2->h))
        return true;

    return false;
}
3
Contributors
2
Replies
4
Views
9 Years
Discussion Span
Last Post by CoolGamer48
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.