Mhh, naja ich kann schon das meiste von OpenGL, aber ich weis nicht wie Ich ne mausmachen muss, ich weis nicht wie man die Maus Pos in nem 3D Raum rausfindet. Dann gabs auch noch probs mit mit dem Gui wuösste auch net wie ich das genau anstellensollte.
MFG Artus
Isometrisch darstellen, aber wie?
Als Maus einfach die Windows-Maus verwenden oder ein Bitmap an die Stelle der Maus setzen. Ganz einfach, wie in PB auch.
Und Anklicken ist auch ganz Easy, wenn man entweder den Select-Rendermodus verwendet oder einfach wie in PB die Koordinaten auswertet, da diese im Orthogonalen modus gleich den wirklichen Pixel-Bildschirmkoordinaten entsprechen. Wenn man die Projectionsmatrix also korrekt einrichtet kann man das fast genauso handhaben wie mit PB, was die Koordinaten betrifft.
Und Anklicken ist auch ganz Easy, wenn man entweder den Select-Rendermodus verwendet oder einfach wie in PB die Koordinaten auswertet, da diese im Orthogonalen modus gleich den wirklichen Pixel-Bildschirmkoordinaten entsprechen. Wenn man die Projectionsmatrix also korrekt einrichtet kann man das fast genauso handhaben wie mit PB, was die Koordinaten betrifft.
Mit solchen Aussagen wär' ich sehr vorsichtig. OpenGL bietet mehr als man meinen könnte.naja ich kann schon das meiste von OpenGL
ich hab keinen direkten geschwindigkeitsvergleich gemacht, hatte aber schon den eindruck, dass allegro um einiges schneller ist. auf jeden fall bietet es mehr möglichkeiten im 2d bereich ohne dass man selbst am framebuffer rumbasteln muß, zb einfachere möglichkeiten für einen alphakanal. außerdem unterstützt es unicode, das ist mir inzwischen auch sehr wichtig.
der einzige grund aber, weswegen ich das nichtmehr mit pb gemacht habe ist, dass ich pb nichtmehr für größere sachen verwenden will bis es die möglichkeit gibt das implizierte deklarieren von variablen abzustellen, denn das hat mich schon zu viele graue haare gekostet und ist für größere programme inakzeptabel. zum schluß ist das programm nicht sehr groß geworden, aber nur weil ich angefangen habe mit opengl zu arbeiten.
naja, mit pb 4.0 wird alles besser... i want to believe
der einzige grund aber, weswegen ich das nichtmehr mit pb gemacht habe ist, dass ich pb nichtmehr für größere sachen verwenden will bis es die möglichkeit gibt das implizierte deklarieren von variablen abzustellen, denn das hat mich schon zu viele graue haare gekostet und ist für größere programme inakzeptabel. zum schluß ist das programm nicht sehr groß geworden, aber nur weil ich angefangen habe mit opengl zu arbeiten.
naja, mit pb 4.0 wird alles besser... i want to believe
Also bei folgenden Code mit "Allegro" habe blos ne FPS von 50
lol is allegro 8 mal so langsam wie PB oder was?? versteh ich net kann mir da jemand weiterhelfen??
mfg Artus
lol is allegro 8 mal so langsam wie PB oder was?? versteh ich net kann mir da jemand weiterhelfen??
mfg Artus
Code: Alles auswählen
#include <stdio.h>
#include <allegro.h>
#include <winalleg.h>
#pragma comment(lib, "alleg.lib")
int i;
BITMAP *buffer = NULL; // Declare a BITMAP called buffer.
BITMAP *TestImage = NULL; //Declare a BITMAP called my_pic, setting it to NULL
int FPS();
int main(int argc, char *argv[])
{
allegro_init(); // Initialize Allegro
install_keyboard(); // Initialize keyboard routines
install_mouse();
install_timer();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT, 1024,768,0,0); // Change our graphics mode to 640x480
BITMAP *buffer = NULL; // Declare a BITMAP called buffer.
BITMAP *TestImage = NULL; //Declare a BITMAP called my_pic, setting it to NULL
buffer = create_bitmap(1024,768); //Create an empty bitmap.
TestImage = load_bitmap("Test.bmp", NULL); // Load our picture
while(!key[KEY_ESC])//If the user hits escape, quit the program
{
if(key[KEY_RIGHT]) // If the user hits the right key, change the picture's X coordinate
{
}
blit(TestImage, buffer, 0,0,100,100,96,96);//Draw the whole bitmap to the screen at (0,0)
draw_sprite(buffer, TestImage, 40,40);
masked_blit(TestImage, buffer, 0,0,mouse_x,mouse_y,572,473);//Draw the whole bitmap to the screen at (0,0)
textprintf(buffer, font, 20, 400, makecol(255, 100, 100), "FPS: %i ", FPS());
blit(buffer, screen, 0,0,0,0,1024,768);//Draw the buffer to the screen
clear_bitmap(buffer); // Clear the contents of the buffer bitmap
vsync();
release_screen();
}
destroy_bitmap(TestImage);
return 0; // Exit with no errors
}
END_OF_MAIN() // This must be called right after the closing bracket of your MAIN function.
// It is Allegro specific.
int FPS()
{
static int Fps, FrameRate =0.0f;
static float previousTime =0.0f;
float currentTime = (GetTickCount() * 0.001);
Fps ++;
if (currentTime - previousTime > 1.0f)
{
previousTime = currentTime;
FrameRate = Fps;
Fps = 0;
return FrameRate;
}
return FrameRate;
}
habe mir jetzt nicht genau angeschaut weshalb so ein großer unterschied mit deinem code entstehen könnte, aber es ist auch extrem abhängig davon, was deine grafikkarte an hardwarebeschleunigten directx feautures anbietet.
ich bin leider grade nicht zu hause und kann es deswegen nicht testen, aber wenn du den code unter windows laufen läßt probier mal GFX_DIRECTX_ACCEL als grafikmodus.
ich bin leider grade nicht zu hause und kann es deswegen nicht testen, aber wenn du den code unter windows laufen läßt probier mal GFX_DIRECTX_ACCEL als grafikmodus.
Also habs jetzt mit dem GFX_DIRECTX_ACCEL probiert und es hat sich nichts verändert sind immer noch 50 FPS
naja ich habe ne "ATI Radeon 9600 XT" is eigentlich ne super karte auch wenn se schon alt is läuft "HalfLife 2" mit voller Grafikpracht flüssig -.-
Achso ich hatte bei dem Test en Bild blos mit den Maßen 96*96 Pixel gemacht.
MFG Artus
naja ich habe ne "ATI Radeon 9600 XT" is eigentlich ne super karte auch wenn se schon alt is läuft "HalfLife 2" mit voller Grafikpracht flüssig -.-
Achso ich hatte bei dem Test en Bild blos mit den Maßen 96*96 Pixel gemacht.
MFG Artus
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
bei mir läuft es auch mit 58 fps... wahrscheinlich inklusive aufsummierter rundungsfehler, denn directx sachen laufen bei mir mit bildwiderholfrequenz (TFT 60Hz). auf meinem röhrenmonitor hatte ich aber bei wesentlich aufwendigeren sachen fps zahlen weit jenseits der 100fps. auf jeden fall kann ich dir garantieren, dass allegro nicht schon mit einem bild überfordert ist. schau dir mal das beispiel exaccel.exe aus dem examples ordner an und halt da die pfeiltaste_hoch bis keine bilder mehr hinzugefügt werden... bei mir gibt es da nichteinmal den hauch eines rucklers.
