Keine Sprites / Programm wird nicht ausgeführt

Previous topic - Next topic

S.O.P.M.

Hi. Bin völlig neu mit GLBasic und probiere derzeit mit der Demo-Version herum. Möchte zukünftig für den GP2X Programme schreiben und nun habe ich ein gravierendes Problem, so dass ich nicht weiter komme. Was ich auch versuche, es werden keine Sprites angezeigt, während die einfachen Zeichenoperationen (z.B. Fillrect) klappen. Um sicherzustellen, dass es nicht an mir liegt, habe ich probiert, die Beispiele auszuführen. Auch da ist nichts zu wollen, keine Sprite werden dargestellt. Die Bitmap-Dateien liegen auch im richtigen Verzeichnis. Was ist da los?

Zweites Problem ist, dass der Compiler willkürlich arbeitet. Manchmal compiliert er, manchmal nicht. Einzelne Dateien werden grundsätzlich nicht ausgeführt, man muss immer im Projekt arbeiten. Wenn nun ein neues Projekt erstelle und dann eine Beispieldatei öffne, um sie auszuprobieren, startet er meistens nicht. Und wenn, dann habe ich das oben beschriebene Problem. Was in aller Welt mache ich falsch?

Meine Grafikkarte ist die NVIDIA GeForce 6200 (256 MB) und ich habe DirectX 9.0c installiert. Daran kann es doch unmöglich hängen oder?
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Kitty Hello

Ohne Projekt kein Erstellen. Immer die gbap Dateien öffnen.
Funktioniert die Grafik unter Windows? evtl. Groß/Kleinschreibung?
Welche Version hast Du?

S.O.P.M.

Nein, unter Windows funktioniert es nicht. Auf dem GP2X habe ich Sprites noch nicht probiert. Ein erster Test mit Fillrect und Tastensteuerung hatte auf dem GP2X schonmal wunderbar geklappt. Nun wollte ich erstmal in Windows mit Sprites weitermachen. Ich kann es zwar mal auf dem GP2X probieren aber grundsätzlich muss das in Windows natürlich gehen, weil das Programmieren sonst wahnsinnig umständlich wäre (für jeden Test erstmal wieder die .gpe auf die Konsole...) - versteht sich! Groß/Kleinschreibung hatte ich nicht explizit beachtet aber ich glaube, alles klein geschrieben zu haben - und die Beispiele dürften ohnehin richtig sein.

Ich habe Version 4.170
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Kitty Hello

Hoi! Wenn's unter Windows nicht geht, hast Du was falsch gemacht. Poste mal hier den Code.

Schranz0r

Machso so :


Code (glbasic) Select
//Simple Sprite loading XD ^^

LOADSPRITE "bild.bmp",1

WHILE TRUE
    SPRITE 1,0,0
    SHOWSCREEN
WEND
END
Mache dein Bild als BMP oder PNG 8bit, dann funzt es 100%ig !!
JPEG wird nich unterstützt, fals du das einfügen wolltest!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

S.O.P.M.

Code (glbasic) Select
SETSCREEN 320,240,0
//SETCURRENTDIR("C:\Programme\GLBasic\Projects")
LOADSPRITE "test.bmp",0
FILLRECT 50,50,82,82,RGB(255,0,0)
SPRITE 0,70,70
SHOWSCREEN
KEYWAIT
test.bmp war ein 32x32 Bitmap mit 24 Bit Farbtiefe (Hab' auch mal 8 Bit, 16 Farben probiert). Hatte nen blauen Kreis auf pinkem Grund gemalt, um die Sache mit der Transparenz zu prüfen. Deshalb auch das Fillrect vorneweg. SETCURRENTDIR hatte ich erst, weil ich mir nicht sicher war, in welchem Verzeichnis er vorerst sein wird. Doch alles vergebens.

Mal von meinem eigenen Code abgesehen: Die Beispiele sollten doch in jedem Fall funktionieren, ansonsten ist hier grundlegend etwas faul. Oder nicht?
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Schranz0r

Schreibst du mal bitte deine Systemdaten rein , damit Gernot mal gucken kann, obs an deiner Hardware leigt , oder ob sich da was nicht ganz verträgt!

Zudem öffne keine neue Datei, sondern öffne ein Project.
Sonnst wird nämlich nix angezeigt.

Du musst immer ein Proejct machen,  auch wenn du testen willst, sonnst geht null.!
Aber das steht alles im tutorial drin, was Gernot auch sehr gut beschreiben hat .

Die Daten sind so angeordnet

[Project-ORDNER]
   |
   Bild1.bmp
   project.gbas
   project.gbap
   project.exe
   |
 /
   

Öffnen musst du die project.gbap das ist die Projectdatei die alle anderen gbas beinhaltet!

hoffe das hilft dir weiter....

Grüße Schranz0r
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Jo - da passt was nicht. Geht das Samples\Media\Sprite.gbap auch nicht!?

S.O.P.M.

Ich glaube meine Systemdaten werden nun nicht mehr notwendig sein - jetzt geht's!

@Schranz0r
Vielen Dank Dir! Jetzt hab ich das mit den Projektdateien kapiert, daran schien es zu hängen. Wenn ich jeweils die Projektdateien zu den Beispielen öffne, dann funktioniert alles wunderbar. Ich hatte zum einen nur die einzelnen .gbas Dateien geöffnet und zum anderen die .gbas Dateien der Beispiele in meinem Projekt geöffnet. Dadurch schien der Compilier verrückt zu spielen.

Der Grund, warum mein eigenes Projekt nicht klappte, war der Ort des Bitmaps. Es befand sich zusammen mit der .gpas Datei in einem Ordner. Die dazugehörige .gpap Datei jedoch befand sich in einem anderen Ordner. Wenn die Bitmap im Projektordner liegt, dann findet er sie. Mit SETCURRENTDIR hätte es meiner Meinung zwar klappen müssen, aber möglicherweise ist GLBasic nicht darauf ausgelegt, Grafik- und Sounddateien von anderen Ordnern zu laden.

Ich war schon bald am Verzweifeln, wo ich doch GLBasic als den Schlüssel für eigene Spiele am GP2X gesehen habe. Bisher hatte ich immer PureBasic und bin damit super zurecht gekommen. Wenn ich hier mit GLBasic nun grundlegende Dinge erfolgreich ausprobiert habe, dann würde ich mir nämlich das SDK premium Paket leisten wollen.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Schranz0r

Quote from: S.O.P.M.Mit SETCURRENTDIR hätte es meiner Meinung zwar klappen müssen, aber möglicherweise ist GLBasic nicht darauf ausgelegt, Grafik- und Sounddateien von anderen Ordnern zu laden.
FALSCH ^^

Angenommen du hast die Grafiken in den Ordner gfx, der wiederum im Projectordner ist, dann
müsstest du nur so laden :

LOADSPRITE "gfx/bild.bmp",1


Alternativ hat GLBasic eine GANZ tolle Funktion, und zwar Copy-> Parse

Wir nehmen nochmal den fall von oben an :

Angenommen du hast die Grafiken in den Ordner gfx, der wiederum im Projectordner ist.

1.gehe in den Ordner gfx !
2.bild.bmp auswählen, und rechtsklick, dann kopieren
3.Ins Project gehn, und rechtsklick im Project dann Einfügen!

Ergebnis:
     LOADSPRITE "gfx/bild.bmp",

schon ist der pfad richtig angegeben(absoluter Pfad), und du musst nurnoch die Spritenummer setzen

     LOADSPRITE "gfx/bild.bmp",1


Das wars, ich werds in meinen Tutorial mit aufnehmen ;) (TUTO coming soon XD )


PS.: Systemdaten in der Signatur sind schick ! XD
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

S.O.P.M.

QuoteAngenommen du hast die Grafiken in den Ordner gfx, der wiederum im Projectordner ist, dann müsstest du nur so laden :

LOADSPRITE "gfx/bild.bmp",1
Ich hatte den kompletten Pfad angegeben, da hätte es auch gehen müssen.

QuoteAlternativ hat GLBasic eine GANZ tolle Funktion, und zwar Copy-> Parse

Wir nehmen nochmal den fall von oben an :

Angenommen du hast die Grafiken in den Ordner gfx, der wiederum im Projectordner ist.

1.gehe in den Ordner gfx !
2.bild.bmp auswählen, und rechtsklick, dann kopieren
3.Ins Project gehn, und rechtsklick im Project dann Einfügen!
Ich komme mir jetzt zwar ein bisschen verarscht vor, aber macht ja nix :-D

Es hat zwar nichts mehr mit dem Titel des Threads zu tun aber: ich find das immer doof, wenn Grafiken und Sounds zu einem Spiel in "Klartext" vorliegen - so, dass sie also von Jedermann einsehbar u. manipulierbar sind. Die Schuhschachtel ist zwar eine Lösung dafür, sofern ich Funktion und Sinn derer richtig verstanden habe, aber toll ist die Lösung auch nicht. Daher meine Frage: Gibt es eine Möglichkeit, ein paar weiterreichende Dateioperationen auszuführen? Mir fehlt sowas wie eine Möglichkeit, Bytes in eine Datei an eine bestimmte Position zu schreiben oder sie von einer zu lesen. Mit PureBasic hatte ich so etwas immer gemacht, dass er z.B. den ersten und letzten Byte einer Datei vertauscht oder Ähnliches. Außerdem gab es dort die Möglichkeit, jegliche Dateien ins Executable einzubinden. Hier hatte ich wohl ein Beispiel irgendwo gelesen, dass auf so etwas abzielt!? - war mir aber nicht sicher, ob's das wirklich ist.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Schranz0r

bytes kannst du schon vertaschen, die möglichkeit besteht ja bei GLBasic auch, aber jetzt mal unter uns, willst du kommerzielle Games machen, oder nur so weils dir spass macht?

im 2ten fall ist es ja völlig egal, ob einer drann rumspuscht oder net....

Selbst dann benutzt man einfach ne schuhschachtel, und der Käse is gegessen.

Sonnst benutze C++ in GLbasic mit INLINE ! Und lass dir was einfallen  ;)

PS.: das Copy - Parse funzt wirklich einfach die Bilddatei kopieren und bei GLBasic mit Einfügen reinmachen !
Versteh net wieso du dir da verarscht vorkommst ?

NT
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Dateien auf Byteebene mit OPENFILE usw... Lass das - das kostet nur Zeit.

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

S.O.P.M.

Quote from: "Schranz0r"...aber jetzt mal unter uns, willst du kommerzielle Games machen, oder nur so weils dir spass macht?
Nee, kommerzielle nicht. Ich programmiere, weil ich viel Freude daran habe - es soll wieder ein leidenschaftliches Hobby werden, wie es das vor einiger Zeit und vor allem damals war. Ich kann mir da auch nicht helfen aber irgendwie habe ich den Drang, es gerne ein bisschen professionell machen zu wollen, so weit es mir denn möglich ist. Ich weiß selbst nicht, was mich daran stört, aber die Bitmaps einfach so wie sie sind zum Spiel dazutun - das empfinde ich als laienhaft *g*
Naja ich lass' mir da etwas einfallen - vielleicht doch mit Schuhschachtel, wenn das auch auf dem GP2X klappt.

Quote from: "Schranz0r"PS.: das Copy - Parse funzt wirklich einfach die Bilddatei kopieren und bei GLBasic mit Einfügen reinmachen !
Versteh net wieso du dir da verarscht vorkommst ?
Oh du, das war dann wohl ein Missverständnis. Ich dachte, du wolltest mir damit ein simples Kopieren->Einfügen im Windowsexplorer, also vom einen zum anderen Ordner, erzählen. Dass ich im GLBasic Editor dann Einfügen soll, darauf bin ich nicht gekommen, da das ja zugegebenermaßen nicht naheliegend ist. Ein nettes Feature! Jetzt verstehe ich, was du meinst :-)
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium