Was w?rde in GLBasic noch Sinn machen ? (Sammelthread!)

Previous topic - Next topic

D2O

Man muss auch erwähnen das es dort auch das "Flushkey()" gibt.
Damit wird der Tastaturbuffer gelöscht.
Wen man also in einer Hauptschleife "ESC" für beenden nutzt und in dieser schleife ein Menü nutzt das auch mit "ESC"
beendet wird, muss der Buffer danach gelöscht werden.
Ansonsten wird nach dem verlassen des Menüs das Hauptprogramm auch gelöscht.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

KidPaddle

Die Tastaturabfrage müßte über einen separaten Thread gelöst werden.

Dabei gibt es zwei Fälle zu unterscheiden.
- Die Taste wurde seit dem letzten Aufruf gedrückt
- Die Taste wird gerade aktuell gedrückt.

Beides Statis müßte man Abfragen können. Desweiteren muss durch einen Befehl der Tastaturbuffer geleert werden können.

Gruß
Thomas
Intel CoreDuo 6300, GT 7950 512MB, 2 GB Ram, XP SP2
GP2X MK1, Firmware 2.0.0

Schranz0r

Quote from: KidPaddle- Die Taste wurde seit dem letzten Aufruf gedrückt
- Die Taste wird gerade aktuell gedrückt.
zu 1. Das ist Keyhit
zu 2. Das ist Key

;)

Buffer löschen... hmm...
Erstmal muss Gernot gucken, obs er hin bekommt!
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.

Also für die Tastaturabfragen habe ich mir da längst etwas einfallen lassen, das ich in jeder Situation wieder verwenden kann. Diese Routine ermöglicht simple Abfragen (wo die Taste immer wieder erneut gedrückt werden muss), ebenso wie einstellbare Anschlagverzögerung und Wiederholrate. Da man sich solche Funktionen schnell und einfach schreiben kann, reicht meines Erachtens der vorhandene KEY()-Befehl völlig aus.

@Gernot
Find ich absolut super, wenn beim nächsten Update die Volume für die Background Music geregelt werden kann - kommt mir gerade recht!
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Schranz0r

@ S.O.M.P

Hättest du richtig gelesen, ein paar Posts weiter vorne, würdes du jetzt wissen, dass das Thema mit der Keyhit-Function schon lang durch ist!
Ich bitte dich daher, auch alles zu lesen, bevor du ein Statement abgibst, danke.

(Kann auch sein, das du es auch falsch vestanden hast...?! )
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

mull

Ich würd mir wünschen das SHOWSCREEN nicht das Bild löscht, wird ja meist sowiso alles neu gezeichnet oder man nimmt Rect.
So hätte z.B bei Menüs, Messagebox immer den aktuellen Screen,
Wäre auch kein neuer Befehl nötig.
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

S.O.P.M.

@SchranzOr
Ich habe alles gelesen und glaube, es auch verstanden zu haben. Dass das Thema mit der Notwendigkeit weiterer Befehle für Tastaturabfragen schon längst abgehakt ist, davon kann kaum die Rede sein, wenn Du erst gestern einen neuen Vorschlag dazu gemacht hast und ebenso noch nicht entschieden ist, ob und was Gernot dazu einbauen wird.

Mit meinem Beitrag wollte ich nur meine Meinung äußern, dass der vorhandene eine Befehl für Tastaturanfragen ausreichend sein sollte. Ich weiß sehr wohl, aus welchem Grund einige hier anderer Meinung sind: Einfachheit! Ein bisschen Arbeit sollte Programmieren aber immer noch bleiben. Zu bequem sollte man es dem Programmierer nicht machen ;-)
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

S.O.P.M.

@mull
Klasse Idee! Für die Fälle, wo nicht alles ständig neugezeichnet werden muss, wäre das sehr angenehm. Immerhin muss ein Spiel permanent mit entsprechenden Routinen für die Neuzeichnung der aktuellen Grafiken sorgen. Ich habe schon Situationen gehabt, wo das unpraktisch ist und zum Teil manchmal sogar etwas umständlich.

Also ich stimme zu.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Schranz0r

Tja mein Freund dann Programmier doch C++ :)

Das mit dem Keyhit als Function, ist schon seit dem rum, wo Gernot sagte, er schaut ob ers hin bekommt.
Dann kommst du und sagst, ich hab da einfach ne function geschreiben.
Das ist mir schon klar, hab ich ja auch, aber es ändert nichts an der tatsache das Befehle die so gut wie in jedem Spiel gebraucht werden, auch für immer eine Function bleiben müssen.

Vorallem grade das Keyhit ..
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

@S.O.P.M & mull - schaut mal nach USEASBMP

mull

USEASBMP ist viel zu langsam (da malt meine Tocher 4J. schneller) wenn es bei jedem Schleifendurchlauf benutzt wird.
Ich mach es momentan mit Grabsprite, ist schneller as USEASBMP.

Am besten wäre nicht der Backbuffer, sondern der "Frontbuffer", also immer das was man gerade sieht.
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Kitty Hello

Das geht nicht schneller. Damit muss man mit moderner Grafikhardware leben. Sorry.

S.O.P.M.

Quote from: "Gernot"@S.O.P.M & mull - schaut mal nach USEASBMP
Hast Du daran etwas verändert!? Also der ist nicht schneller geworden, habe ich gerade probiert. Weiterhin völlig unbrauchbar für ein Spiel. Inzwischen verwende ich ihn nicht mehr :D

Edit: Boa, gibt ja schon wieder ein neues Update. Das es so schnell ging... Allerdings hat sich ein kleiner Bug in Form eines Schönheitsfehlers eingeschlichen. Wenn ich mit SETSCREEN ein kleineres Fenster mache, bleibt das ursprüngliche 640x480er im Hintergrund als "eingebrannte" Grafik stehen. Aber es beeinflusst nicht die Funktion meines Spieles.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Schranz0r

@ S.O.P.M

Mach doch mal nen Screenshot, ich hab sowas nicht..
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.

Du bist glücklicher Besitzer einer ATI-Grafikkarte, bestimmt tritt das Problem deshalb bei Dir nicht auf ;)

Ich habe jetzt eine Lösung gefunden, stelle ich in Projektoptionen schon 320x240 ein, brauche ich kein SETSCREEN und das Fenster ist von Anfang an schon klein. Bisher hatte er sich die Auflösung nie gemerkt, die ich in den Projektoptionen eingestellt hatte!
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium