Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] Funkcja z allegro

Ostatnio zmodyfikowano 2012-01-30 23:15
Autor Wiadomość
Kamil9132
Temat założony przez niniejszego użytkownika
[Allegro] Funkcja z allegro
» 2012-01-30 17:33:43
Witam
Czy da się w funkcji użyć elementów z allegro?
Skoro allegro instaluje się w głównej funkcji(main) to funkcje z elementami allegro trzeba by dać na końcu kodu, ale wtedy nie będzie jej można użyć w głównej funkcji, tak? Dobrze to rozumiem czy coś pokręciłem?
P-49816
pekfos
» 2012-01-30 17:40:49
Jak o to chodzi:
C/C++
#include <allegro.h>
void fun() {
    blit( a, b, c, d, e, f, g, h );
}

int main() {
    allegro_init();
    //..
    fun();
    allegro_exit();
} END_OF_MAIN()
to tak. da się..
P-49819
Kamil9132
Temat założony przez niniejszego użytkownika
» 2012-01-30 20:20:27
Ale w poleceniu blit trzeba podać dwie bitmapy, a bitmap nie można stworzyć przed początkiem głównej funkcji, chciałem zrobić takie coś ale wyskakuje błąd:
C/C++
#define UNICODE
#include <allegro.h>
#include <ctime>
#include <fstream>
#include <iostream>
#include <string>
#include <winalleg.h>

volatile long speed = 0;
void increment_speed()
{
    speed++;
}
END_OF_FUNCTION( increment_speed );


LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );

volatile long speed1 = 0;
void increment_speed1()
{
    speed1++;
}
END_OF_FUNCTION( increment_speed1 );


LOCK_VARIABLE( speed1 );
LOCK_FUNCTION( increment_speed1 );

void postwor() {
   
   
    blit( potworek, pamiec, 0, 0, postacx + 50, postacy - klatkisko, 30, 35 );
   
   
   
}


int main()
{
   
   
    set_uformat( U_UTF8 );
    get_uformat();
    allegro_init();
    install_keyboard();
    install_timer();
    install_int_ex( increment_speed, BPS_TO_TIMER( 200 ) );
    install_int_ex( increment_speed1, BPS_TO_TIMER( 300 ) );
   
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 );
   
   
   
   
    BITMAP * pamiec = create_bitmap( 800, 600 );
    BITMAP * postac = load_bmp( "grafika/postac.bmp", default_palette );
    BITMAP * plansza = load_bmp( "grafika/plansza.bmp", default_palette );
    BITMAP * potworek = load_bmp( "grafika/potworek.bmp", default_palette );
   
    FONT * font_pcx = load_font( "tekstmenu.pcx", default_palette, NULL );
   
    clear_to_color( screen, makecol( 239, 235, 184 ) );
    clear_to_color( pamiec, makecol( 239, 235, 184 ) );
   
    int wyjdz = 0;
    int menug = 0;
    int gra = 1;
    int postacx = 100;
    int postacy = 445;
    int zmianapostac = 0;
    int klatkisko = 0;
    int skok = 0;
    int gora = 0;
   
   
   
   
    while( wyjdz != 1 ) {
       
        if( key[ KEY_ESC ] ) wyjdz = 1;
       
       
       
        textprintf( pamiec, font, 20, 20, makecol( 255, 255, 128 ), "klatkisko %d", klatkisko );
       
       
       
       
       
        if( gra == 1 ) {
           
            while( speed > 0 ) {
               
               
                zmianapostac = 0;
               
                speed = 0;
               
            }
           
           
            if( key[ KEY_RIGHT ] and zmianapostac == 0 ) {
                postacx++;
                zmianapostac = 1;
            }
           
            if( key[ KEY_LEFT ] and zmianapostac == 0 ) {
                postacx--;
                zmianapostac = 1;
            }
           
            if( postacx == - 1 ) postacx = 0;
           
            if( postacx == 771 ) postacx = 770;
           
            if( key[ KEY_SPACE ] ) {
               
                skok = 1;
               
            }
           
            if( skok == 1 ) {
               
                while( speed1 > 0 and klatkisko < 100 and gora == 0 ) {
                   
                    klatkisko++;
                    speed1 = 0;
                   
                }
               
                if( klatkisko == 100 ) gora = 1;
               
               
                while( speed1 > 0 and klatkisko > - 1 and gora == 1 ) {
                   
                    klatkisko--;
                    speed1 = 0;
                   
                    if( klatkisko == 0 ) {
                       
                        gora = 0;
                        skok = 0;
                       
                    }
                   
                }
               
               
            }
           
            potwor();
           
           
           
           
            blit( plansza, pamiec, 0, 0, 0, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 30, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 60, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 90, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 120, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 150, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 180, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 210, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 240, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 270, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 300, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 330, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 360, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 390, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 420, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 450, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 480, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 510, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 540, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 570, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 600, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 630, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 660, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 690, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 720, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 750, 480, 30, 35 );
            blit( plansza, pamiec, 0, 0, 780, 480, 30, 35 );
           
           
           
            blit( postac, pamiec, 0, 0, postacx, postacy - klatkisko, 30, 35 );
           
           
        }
       
       
       
       
       
       
       
        blit( pamiec, screen, 0, 0, 0, 0, 800, 600 );
       
        clear_to_color( pamiec, makecol( 239, 235, 184 ) );
       
    }
   
   
   
   
   
    allegro_exit();
    return 0;
}
END_OF_MAIN();
P-49848
SeaMonster131
» 2012-01-30 20:40:39
C/C++
BITMAP * img;

void funkcja()
{
    blit( img,...);
}

int main()
{
    ...
   
    img = load_bitmap(..);
   
    funkcja();
}
lub można tak:

C/C++
void funkcja( BITMAP * img )
{
    blit( img,...);
}

int main()
{
    ....
   
    BITMAP * bitmapa = load_bitmap(..);
   
    funkcja( bitmapa );
}

P-49857
Kamil9132
Temat założony przez niniejszego użytkownika
» 2012-01-30 23:15:33
Dzięki za pomoc :)
P-49872
« 1 »
  Strona 1 z 1