WinFuture-Forum.de: Batch porgrammierung | Hilfe: - WinFuture-Forum.de

Zum Inhalt wechseln

Windows 10: Alle News, der Download sowie zahlreiche Screenshots und Videos zum neuen Betriebssystem von Microsoft. Jetzt im WinFuture Windows 10 - Special informieren!
Seite 1 von 1

Batch porgrammierung | Hilfe:


#1 Mitglied ist offline   cool_brick24 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 17. Februar 18
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hessen
  • Interessen:Java Spiele programmieren, eigene Decompiler und am Arbeiten: Ein mini Roboter selber bauen ^^.

geschrieben 17. Februar 2018 - 12:44

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
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!
0

Anzeige



#2 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

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.
0

#3 Mitglied ist offline   cool_brick24 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 17. Februar 18
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hessen
  • Interessen:Java Spiele programmieren, eigene Decompiler und am Arbeiten: Ein mini Roboter selber bauen ^^.

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!
0

#4 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

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
0

#5 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

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
0

#6 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

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.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0