Blitzmax Konsolenanwendungen im Fenster anzeigen? (TextAdv)
Übersicht

MetamorphoseBetreff: Blitzmax Konsolenanwendungen im Fenster anzeigen? (TextAdv) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Salü.
Ich will mit BlitzMax ein Textadventure machen, hab früher in b3d programmiert und hab nu gesehn, dass alles was mit print("lala") und f$=Input("Frage") usw, halt die konsolenbefehle, in bmax einfach in der IDE ausgegeben werden, sprich man kanns nicht mehr schön wie in b3d einfach auf vollbild spielen. Jetzt würd ich aber gerne mit den konsolenbefehlen arbeiten, da ich finde für ein einfaches textadventure bräucht man nicht irgendwelche schleifen und komplizierte befehle. eventuell täusche ich mich da ja. gibts eine möglichkeit so zu proggen und es wird in einem fenster dargestellt/vollbild? ich schätze nicht, wollte trotzdem nachfragen. und wenn wir schon dabei sind: gibts ein tutorial das sich mit textadventures auseinandersetzt (nicht theoretisch oder in anderen programmiersprachen, am besten sogar ohne intepreter sondern nur im multiplechoice-verfahren)? Was noch zu erwähnen wäre ist, dass ich blitzmax nicht "büffeln" will, eine auseinandersetzung ja - aber ich will nichts weiter damit programmieren als textadventures (da ich die einfach liebe) und keine 3d-spiele oder 2d-jumpnruns. Ich will auch nicht nichts dafür tun, sondern einfach mein wissen auf dies zentrieren und freude an der einschränkung auf textadventures haben, es liegt also auch nicht an faulheit. Mal kucken wer sich jetzt meldet ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn Du die .exe als "Non-GUI-App" erstellst (siehe build options in der IDE) wird beim starten der exe ein Konsolenfenster geöffnet und dort alle Ausgaben hingeleitet. Vollbild ist ohne weiteres nicht drin.
Du wirst wenn Du aus der IDE heraus startest dennoch weiter alle Ein-Ausgaben dort haben- es funktioniert also nur wenn du die erstellte Exe startest - was ja auch der Endanwender tut. Nebenbei erwähnt schränkst Du dich mit dem Verzicht auf einen Parser sehr ein. Ich persönlich fand multiple Choice-Advs rasch sehr ermüdend. Technisch ist es heutzutage kein Problem mehr jeden Infocom-Parser recht einfach in die Tasche zu stecken. Viel Erfolg. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mir gehts eher darum, dass wenn man einen parser (ich dummerchen hab vorher intepreter geschrieben :S) drinne hat, die meisten textadventure-neulinge völlig überfordert sind, mit einem multiple-choice verfahren ist das ganze einsteigerfreundlicher.
Man kann sich auch darüber streiten ob man sowas angestaubtes und sagen wir mal "nerdiges" in der heutigen Zeit wie ein textadventure als konsolenapp einsteigerfreundlich machen kann ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin ein großer Freund der guten alten Textadventures, und von daher würde es mich betrüben wenn Du dich so sehr einschränkst. BMax bietet dir enorme Möglichkeiten, die du mit ein bissel Einarbeitungszeit nutzen könntest um eben Abstand von der Konsolenapp zu nehmen. Verschiedenfarbiger und formatierter Text wertet so ein Spiel enorm auf ohne vom eigentlichen Kern abzuschweifen. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hm...
gibts da explizit ein tutorial dafür? hab drum schon viel gegoogelt und spezifisch nichts gefunden. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Explizit Bmax und Adventures betreffend sicher nicht, nein. Was Adventures und ihren Aufbau angeht kann ich dir ein altes c64-Sonderheft von 1987 empfehlen, welches man dann und wann bei Ebay ergattern kann, denn es beschreibt sehr anschaulich alle Voraussetzungen für einen BTBTZ-Parser (better than better than Zork)
Allerdings wäre auch das heute nur bedingt hilfreich da dank der Objektorientierung von BMax ein Parser noch einfacher zu gestalten ist. Ich fürchte also ich kann Dir nur raten mit Bmax zu spielen und anhand normaler Programmierer-Tutorials die Fertigkeiten zum Aufbau eines Parsers zu erwerben. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da ich ein ASCII-Adventure mache und das Titelbild gerade gestaltete merkte ich, dass die Konsolenanwendung mein "bild" nicht richtig darstellte, gibts ne möglichkeit die grösse der konsolenanwendung zu definieren?
Wenn nicht, muss ich wohl ernsthaft weg vom konsolenapp :S |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da wirst Du dich wohl mit drawtext und co anfreunden müssen ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
na gut...
ich habs vermieden da ich schleifen NIE kapiert habe. ich meine While Not KeyHit(KEY_ESCAPE) ist für mich logisch am anfang zu setzen, doch dann wiederholt es ja alles. oder muss man alles in if's setzen... also if titelbild =1 then titelschlaufe() oder sowas... da hab ich echt probleme... gibts ein gutes einsteigertutorial zur thematik ausser https://www.blitzforum.de/foru...hp?t=19917 - das kenn ich schon. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tja, das ist der Weg moderner Programmierung. Die Mainloop sorgt dafür dass das Programm solange läuft wie du es benötigst, und innerhalb der mainloop werden dann Funktionen aufgerufen.
Welche Funktionen vonnöten sind bestimmst du anhand von statusvariablen die du bei bedarf setzt oder löschst. simples beispiel ohne grosse Funktionalität: Code: [AUSKLAPPEN] SuperStrict
'init: Graphics 640 , 480 SeedRnd MilliSecs() Global gamestate:Int Const GS_MENU:Int = 0 Const GS_GAME:Int = 1 Const GS_PAUSE:Int = 2 Const GS_END:Int = 3 Repeat Select gamestate Case GS_MENU menu() Case GS_GAME game() Case GS_PAUSE pause() Case GS_END End End Select Flip Cls Forever Function menu() DrawText "Menu" , 0 , 0 DrawText "Space for game, escape to end game",0,20 If KeyHit(Key_space) Then gamestate = GS_GAME If KeyHit(Key_escape) Then gamestate = GS_END End Function Function game() DrawText "game" , 0 , 0 DrawText "P for pause, escape for menu",0,20 If KeyHit(Key_p) Then gamestate = GS_PAUSE If KeyHit(Key_escape) Then gamestate = GS_MENU End Function Function pause() DrawText "-paused-" , 0 , 0 DrawText "p for game",0,20 If KeyHit(Key_p) Then gamestate = GS_GAME End Function |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wow, cooles beispiel.
wieso deklarierst du GS_GAME als 1 usw? und warum nen rnd drin? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das seedrnd mach ich standardmässig in der main oben damit ich es nicht vergesse. wenn zufall gebraucht wird muss er ja initialisiert sein.
Und die Festlegung welcher gamestate welchen Wert hat ist willkürlich. Nur das GS_MENU die 0 hat war Absicht, damit das Spiel im Menu startet. (aber selbst da könnte man ja durch eine simple zuweisung vor der Mainloop jeden beliebigen Startwert festlegen.) EDIT: Wichtig ist nur dass Du für alle Zustände die dein Spiel annehmen kannst nen Wert festlegst und dann anhand dessen die passenden Werte aufrufst. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du dich auf's schreiben von Adventures konzentrieren möchtest, kann ich dir da TAG empfehlen; der Text Adventure Generator ist für deutschsprachige Spiele sehr gut geeignet. Natürlich mit Parser - wenn du auf Multiple Choice beharren möchtest (und Grafik & Sound willst) ist es vermutlich gar nicht schlecht dir selbst was zu schreiben.
Wollte es nur erwähnt haben... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier mal ein Link auf das ConIO Modul von Grable:
http://www.blitzbasic.com/Comm...845#758073 ist vielleicht auch ganz interessant fuer dein Projekt. Es kann farbigen Text ueberall ins Konsolenfenster schreiben und auch das Fenster selbst vergroessern - pseudo fullscreen:) |
||
Logic Gui Professional a Gui Designer for MaxGui |
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
salü
kannst du mir sagen wie ich conio implementier? ich hab die text.bmx nicht mal zum laufen gebracht, auch gegoogelt und nix gefunden. |
||
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Funktioniert hier ganz normal, habs auch grad noch mal mit BMax 1.32 probiert.
Nach dem entpacken solltest du das grb.mod Verzeichnis in deinen BlitzMax mod Ordner kopieren, sieht dann so aus: BlitzMax\mod\grb.mod\conio.mod\examples Da die Beispiele ein Konsolenfenster brauchen, darfst du nicht 'Build Gui App' angeklickt haben, sonst wird das Konsolenfenster unterdrueckt! Also am Besten alle Build Options abwaehlen, oder vielleicht noch Debug einschalten. Dann einfach 'Build' waehlen um die .exe zu erzeugen, kein 'Build and Run'! Es wird direkt im Konsolenfenster gearbeitet, es laeuft nicht in der IDE (steht aber auch im Beispiel ganz oben). Nach dem Build einfach die .exe starten... |
||
Logic Gui Professional a Gui Designer for MaxGui |
![]() |
Geeecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ooooder du suchst dir die ganzen Funktionen aus der WinAPI heraus.
Damit kann man auch solche ConsolenFenster erstellen und was hereinschreiben... Google einfach mal. lg MD |
||
.... |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder du benutzt einfach DrawText und ein Grafisches Fenster. | ||
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke, ihr habt mir alle sehr geholfen! | ||
Metamorphose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
salü nochmals
ich hab nun probiert mit conio umzugehn, doch schnall ich das syntax nicht. leider gibts auch keine hilfefiles oder docs darüber, wie man das konsolenfenster vergrössert. ich habs mit folgendem probiert: Code: [AUSKLAPPEN] Framework GRB.conio Import BRL.Retro SuperStrict Function SetConsoleSize( width:Int,height:Int, bufferwidth:Int=-1,bufferheight:Int=-1) und auch die width usw abgeändert, wollte wissen obs überhaupt funzt, doch hatte nur fehlermeldungen. kann mir da nochmals jemand helfen? grüsse |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group