Hallo liebe WinFuture user: Ich programmiere grad ein Batch Spiel aber brauche einen Syntax der mir unbekannt ist. Hier
eine Erklärung zum hüpf Spiel: Du bist eine Figur (Im dem Fall bei mir die "0") und vor dir kommen Hindernisse. Diese bewegen sich auf dich zu. Du musst dann über die hüpfen (mit "W") und wenn du ein berührst hast du verloren. Ich brauche aber einen Syntax der erkennt wenn diese "0" Das Zeichen berührt soll das passieren. Wenn das nicht funktioniert dann bitte hilft mir vielleicht mit: Wenn der Buchstabe/Zeichen dort ist = goto Verloren. Hier ist was ich bisher programmiert habe:
@echo off
cls
echo Das Spiel wird gestartet...
timeout -t 2
:Game
cls
echo.
echo.
echo 0
echo.
CHOICE /C:W /N >nul
REM CHOICE /C W /N >nul
If "%errorlevel%"=="1" (Goto :hupfen)
Goto :Game
:hupfen
cls
echo.
echo 0
echo.
echo.
timeout -t 1 >nul
goto :Game
Ich hoffe ihr könnt mir helfen.
mfg cool_brick24
Seite 1 von 1
Batch porgrammierung | Hilfe:
#1
geschrieben 17. Februar 2018 - 12:44
Meep! Meep!
set Coding=off
echo Start Coding in 3
ping Localhost -n 1 >NUL
cls
echo Start Coding in 2
ping Localhost -n 1 >NUL
cls
echo Start Coding in 1
cls && echo START CODING!
set Coding=off
echo Start Coding in 3
ping Localhost -n 1 >NUL
cls
echo Start Coding in 2
ping Localhost -n 1 >NUL
cls
echo Start Coding in 1
cls && echo START CODING!
Anzeige
#2
geschrieben 17. Februar 2018 - 13:51
Hab da auch wenig Ahnung von dieser Form der Programmierung aber rein vom Prinzip her - Kann man eine Positionsabfrage machen? Haben 0 und das zu überhüpfenden Zeichen den selben x-Wert, muß der y-Wert für die 0 entsprechend größer sein als die Höhe des Zeichens, wäre dann mein Ansatz. Oder Andersrum an das Problem gegangen, wenn x- und y-Wert für beide Zeichen gleich sind, ist die Sache ungehupft verloren.
Dieser Beitrag wurde von Holger_N bearbeitet: 17. Februar 2018 - 13:51
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
#3
geschrieben 17. Februar 2018 - 14:00
Ok danke schön aber wie finde ich die Position heraus?
Meep! Meep!
set Coding=off
echo Start Coding in 3
ping Localhost -n 1 >NUL
cls
echo Start Coding in 2
ping Localhost -n 1 >NUL
cls
echo Start Coding in 1
cls && echo START CODING!
set Coding=off
echo Start Coding in 3
ping Localhost -n 1 >NUL
cls
echo Start Coding in 2
ping Localhost -n 1 >NUL
cls
echo Start Coding in 1
cls && echo START CODING!
#4
geschrieben 17. Februar 2018 - 17:03
Es ist DOS. Befehle um Postionen von Objekte bzw. Zeichen zu ermitteln gibt es da nicht. Aber, wenn du einen Takt einführst mit dem dein Spiel läuft, kannst du selbst berechnen wo welche Objekte bei jedem Takt sind und dann auch Kollisionen ermitteln. Ob sich daraus ein Spiel entwickeln lässt ist eine andere Frage.
Dieser Beitrag wurde von Gispelmob bearbeitet: 17. Februar 2018 - 17:04
AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
#5 _d4rkn3ss4ev3r_
geschrieben 17. Februar 2018 - 17:07
Mittels set kannst du eine Variable als Entfernung einbauen, dass sich nähert. zB:
set entfernung=5
:Game
set /a entfernung-=1
if "%entfernung%"=="0" goto :spielende
echo Entfernung zum Hinderniss: %entfernung% Felder
set entfernung=5
:Game
set /a entfernung-=1
if "%entfernung%"=="0" goto :spielende
echo Entfernung zum Hinderniss: %entfernung% Felder
#6
geschrieben 17. Februar 2018 - 18:26
Vergiß Batch. Schon deswegen, weil die Ausgabe zum Krampf wird.
... Das heißt, unter der Annahme, daß nach wie vor ANSI-Befehle nicht unterstützt werden; ich meine mich sehr dunkel zu erinnern, da was zum Thema gehört zu haben. Aber definitiv nicht sicher.
Ohne den ANSI-Support kannst Du auf dem Bildschirm nichts "laufen" lassen, sprich die 0 um eins hoch oder links oder rechts setzen. Du mußt stattdessen den gesamten Bildschirm neu zeichnen (mit cls) und wieder komplett vollschreiben.
Eventuell wäre in einer MSYS-Umgebung eine Idee, oder wenn Du sonst eine Terminalemulation findest, welche ANSI unterstützt (msys nutzt dazu mintty).
Wenn Du an Batch festhalten möchtest, aus welchen Gründen auch immer, dann empfehle ich, das Spiel in kleine Fragmente zu zerlegen - einzelne Batchdateien, welche einzelne Spielteile abbilden. Die können dann mit CALL dateiname.bat (oder .cmd) aufgerufen werden. Sei Dir aber im Klaren darüber, daß "Terminal vollschreiben, CLS, Terminal wieder vollschreiben" sehr lange dauert und man vergleichsweise gut dabei zuschauen kann. Schnelle Änderungen sind damit nicht möglich.
... Das heißt, unter der Annahme, daß nach wie vor ANSI-Befehle nicht unterstützt werden; ich meine mich sehr dunkel zu erinnern, da was zum Thema gehört zu haben. Aber definitiv nicht sicher.
Ohne den ANSI-Support kannst Du auf dem Bildschirm nichts "laufen" lassen, sprich die 0 um eins hoch oder links oder rechts setzen. Du mußt stattdessen den gesamten Bildschirm neu zeichnen (mit cls) und wieder komplett vollschreiben.
Eventuell wäre in einer MSYS-Umgebung eine Idee, oder wenn Du sonst eine Terminalemulation findest, welche ANSI unterstützt (msys nutzt dazu mintty).
Wenn Du an Batch festhalten möchtest, aus welchen Gründen auch immer, dann empfehle ich, das Spiel in kleine Fragmente zu zerlegen - einzelne Batchdateien, welche einzelne Spielteile abbilden. Die können dann mit CALL dateiname.bat (oder .cmd) aufgerufen werden. Sei Dir aber im Klaren darüber, daß "Terminal vollschreiben, CLS, Terminal wieder vollschreiben" sehr lange dauert und man vergleichsweise gut dabei zuschauen kann. Schnelle Änderungen sind damit nicht möglich.
- ← Problem - Fensterinhalt flackert
- System & Software - Windows 10
- Linux auf HDD Partition Windows 10 auf SSD - leider startet Linux →
Thema verteilen:
Seite 1 von 1