|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Martin
Anmeldungsdatum: 05.06.2007 Beiträge: 19
|
Verfasst am: 05.06.2007, 18:46 Titel: Allegro - Polygonproblem |
|
|
Hallo Leute,
Bin gerade dabei ein Spiel mit Allegro zu erstellen. Das klappt auch ganz gut. Allerdings hab ich ein Problem mit dem Befehl Polygon.
Und zwar folgendes:
Der Allegro Dokumentation zufolge soll ich ein Array an die Funktion übergeben.
Code: |
int points[12] = { 50, 50, 100, 100, 100, 150,
50, 200, 0, 150, 0, 100 };
clear_to_color(screen, makecol(255, 255, 255));
polygon(screen, 6, points, makecol(0, 0, 0));
|
in der Allegro.bi ist in der Deklaration jedoch einfach BYAL Wert AS INTEGER angegeben. Und genau so verhält sich die Funktion auch. Mit einer einzigen Zahl lässt sich aber schlecht ein Polygon erzeugen
Diesem Umstand entsprechend stürzt das Programm ab, wenn ich einen INTEGER Wert übergebe, Bei einem Array kommt die Fehlermeldung, dass ein Index angegeben werden muss. MAch ich dies, wird ja wieder nur ein Wert übergeben, und das Programm stürzt wieder ab. Compiliert bekomm ich es.
Hab auch schon versucht ein Klammerpaar an den Wert in der Allegro.bi anzuhängen. Hat aber auch nicht funktioniert. Hat irgend jemand eine Idee???
Auch einen Zeiger auf das Array hab ich schon probiert. Ging auch nicht
Danke |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 05.06.2007, 21:17 Titel: |
|
|
hmm, eigentlich wollte ich auch schon zu diesem Punkt eine Antwort schreiben..
(Ich habe allerdings noch nie mit Allegro.Bi gearbeitet, vllt deshalb)
Wie kriegt ihr die verdammte Lib denn eingebunden?
Ich habe extra FB0.17f neu installiert(mit allen Extras) und mir von SF die alleg42.dll besorgt(und nach %SysDir% kopiert..)
Es klappt einfach nicht..
..was macht ihr alle besser als ich?
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 05.06.2007, 21:20 Titel: |
|
|
Also ich kopier mir das FB-DLL-Pack ins System32, und dann gehts |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 05.06.2007, 21:50 Titel: |
|
|
Hi ytwinky,
schau mal unter ..\inc\allegro\base.bi
Code: | ...
#define ALLEGRO_VERSION 4
#define ALLEGRO_SUB_VERSION 0
#define ALLEGRO_WIP_VERSION 3
#define ALLEGRO_VERSION_STR "4.0.3"
#define ALLEGRO_DATE_STR "2003"
#define ALLEGRO_DATE 20030419
... | für die alleg42.dll ist auch FB018CVS noch nicht bereit
Stand irgendwo auch im engl. Forum .... ?
Aber wenn PMedia das nur durch umkopieren ins Verzeichnis System32 schaft, kann es daran ja nicht liegen _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 05.06.2007, 22:22 Titel: |
|
|
Hi volta,
..wie gesagt, wollte ich eigentlich mal hier was probieren,
der Kompiler meldet jedoch beharrlich, daß er die Einsprungadresse für alleg42.dll nicht findet, da ich die nicht hatte, hab ich sie mir besorgt, allerdings löste das die Probleme nicht. Als nun Martin sein Problem schilderte, dachte ich, jetzt isses genuch, da fragste einfach mal nach..
..also Del %SystemDir%\alleg42.dll (und die beiden anderen auch)..
..weils besser ist
Danke für den Tipp
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
Martin
Anmeldungsdatum: 05.06.2007 Beiträge: 19
|
Verfasst am: 06.06.2007, 13:24 Titel: Allegro einbinden. |
|
|
Unter Windows hab ich einfach die dll in den Ordner, in dem sich das Spiel befindet, kopiert. Hat wunderbar funktioniert. Unter Ubuntu-Linux hab ich es auch zum laufen gebracht. Allegro- und Entwicklerpakete über die Paketverwaltung installiert und einen link mit dem Namen allegro.os in im usr/lib/ Verzeichnis angelegt. Die Bibliothek ist dort mit einer angehängten Versionsnummer vorzufinden, weshalb FreeBASIC die Bibliothek ohne den Link nicht findet.
Aber zurück zum eursprünglichen Thema. Ist das ein Fehler mit dem Polygon, oder muss man da irgendeinen Trick anwenden. Hat keiner eine Antwort. |
|
Nach oben |
|
|
Martin
Anmeldungsdatum: 05.06.2007 Beiträge: 19
|
Verfasst am: 06.06.2007, 13:32 Titel: Fehlende Funktionen |
|
|
Leider sind ein Paar funktionen der Allegro Bibliothek nicht in der Allegro.bi zu finden. Zwar kann man Text ausgeben, aber die Funktionen um eine eigene Schrift zu laden sind nicht vorhanden. Sehr Schade. Vielleicht hat sich das mit der neuen 0.17b Version geändert. Hab es noch nicht ausprobiert. |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 06.06.2007, 20:28 Titel: |
|
|
Nein,
der Auszug aus der base.bi (oben) ist aus einer neusten Version.
Im Moment scheint es so, dass nur Funktionen bis Allegro 4.03 in den bi's definiert sind.
Zu deinem Problem habe ich zwar keine Lösung aber wie dir selbst schon aufgefallen ist müssen die 'points' eine andere Dimensionierung als Integer haben. Vermutlich irgendwie als 2D- oder 3D-Vektor.
Dann wird bei z.B. 2D-Vektor das ~ so aussehen
Code: | 2DVector points[6] = { {50, 50}, {100, 100}, {100, 150},
{50, 200}, {0, 150}, {0, 100} } | ohne Gewähr !!!!! _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|