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

[Allegro] Ramka.

Ostatnio zmodyfikowano 2008-08-06 20:26
Autor Wiadomość
DeBugger
Temat założony przez niniejszego użytkownika
[Allegro] Ramka.
» 2008-08-06 12:30:16
Ostatnio uporałem się z allegro. Ale mam teraz problem.
Chciałbym żeby "ramka" wyświetlała się w na bitmapie o nazwie "menu". Napisałem otóż taki kod:
Start.cpp:
C/C++
#include <allegro.h>
#include "functions.h"
int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 );
    set_palette( default_palette );
    clear_to_color( screen, 48 );
    BITMAP * start;
    BITMAP * menu;
    start = load_bitmap( "start.bmp", 0 );
    menu = load_bitmap( "menu.bmp", 0 );
    draw_sprite( screen, start, 0, 0 );
   
    readkey();
    destroy_bitmap( start );
    void Menu();
    draw_sprite( screen, menu, 0, 0 );
    readkey();
   
    allegro_exit();
    return 0;
}
END_OF_MAIN();
functions.h:
C/C++
#ifdef functions_H
#define functions_H
#include "start.cpp"
#include <string>
#include <allegro.h>
using namespace std;
//Tutaj klasy
void Menu();
{
    int menu_pos = 1;
    BITMAP * ramka
    ramka = load_bitmap( "ramka.tga", 0 );
    draw_sprite( menu, ramka, 80, 80 );
}
#endif
P-1178
DejaVu
» 2008-08-06 12:43:40
Tak na oko wydaje mi się, że linijka:
draw_sprite( menu, ramka, 80, 80 );
powinna wyglądać tak:
draw_sprite( menu, ramka, 0, 0 );
P-1179
DeBugger
Temat założony przez niniejszego użytkownika
» 2008-08-06 18:57:52
Nie, to nie oto chodzi. Funkcja chyba źle była napisana. Bo jak przekopiowałem to z "ramką" do start.cpp to działało. Proszę przyjrzeć się jeszcze raz funkcji, bo chyba coś źle:
C/C++
#ifdef functions_H
#define functions_H
#include "start.cpp"
#include <string>
#include <allegro.h>
using namespace std;
//Klasy
void Menu();
{
    BITMAP * ramka
    ramka = load_bitmap( "ramka.bmp", 0 );
    draw_sprite( menu, ramka, 0, 0 );
}
#endif
P-1180
DejaVu
» 2008-08-06 19:01:39
[tutorial]Pierwsza linijka powinna wyglądać #ifndef[/tutorial]

/edit:
void Menu();
Za nawiasami średnika również nie może być
P-1181
DeBugger
Temat założony przez niniejszego użytkownika
» 2008-08-06 19:56:13
Już nic nie wiem. Poprawiłem błędy ale dalej trzyma.
http://www.speedyshare.com/468521631.html
Link. Proszę sprawdzić. Naprawiłem kilka błędów (m.in. "ramka" powinna się pojawiać w "screen", ale to nic nie daje, a tak właśnie działało w start.cpp).
//edit
Jeśli coś Pan zauważy, proszę poprawić i wysłać na serwer.
//edit2
Np. na speedyshare.com.
P-1182
DejaVu
» 2008-08-06 20:03:04
No dobra... to za 10min zapewne dam Ci rozwiązanie.

/edit:
C/C++
#include <allegro.h>
#include "functions.h"
int main()
{
    int menu_pos = 1;
    allegro_init();
    install_keyboard();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
    set_palette( default_palette );
    clear_to_color( screen, 48 );
    BITMAP * start;
    BITMAP * menu;
    start = load_bitmap( "start.bmp", 0 );
    menu = load_bitmap( "menu.bmp", 0 );
    draw_sprite( screen, start, 0, 0 );
   
    //  readkey();
    destroy_bitmap( start );
    draw_sprite( screen, menu, 0, 0 );
    Menu();
    readkey();
   
    allegro_exit();
    return 0;
}
END_OF_MAIN();

Drugi plik:
C/C++
#ifndef functions_H
#define functions_H
#include <string>
#include <allegro.h>
using namespace std;
//Klasy
void Menu()
{
    BITMAP * ramka;
    ramka = load_bitmap( "ramka.bmp", 0 );
    draw_sprite( screen, ramka, 0, 0 );
}
#endif
P-1183
DeBugger
Temat założony przez niniejszego użytkownika
Dziękuje Panu!
» 2008-08-06 20:26:43
Dziękuję panu!!!
Wszystko działa jak ulał!
Teraz nie mam czasu zbytnio, ale trochę później zobaczę co było w kodzie nie tak.
Jeszcze raz dziękuję!
P-1184
« 1 »
  Strona 1 z 1