Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2017, 20:34   #1
one23
Пользователь
 
Регистрация: 02.12.2017
Сообщений: 10
По умолчанию игра на cmd(bat)

я хотел бы создать игру на cmd(bat) файлов,но мне не хватает опыта
в программирование на bat,поэтому я прошу помощи.Мне хотелось бы создать игровое поле с циклом for,и чтобы при зажатие клавиши он не бежал как озверевший, и по желанию объяснить как это вы сделали!
За ранние Спасибо!

Это концепт игры и базовое передвижение:


Код:
@echo off
setlocal disableDelayedExpansion
::---------------------------------
set "player=@" 
set "grass====================="
set "lag= "
set /a playerx=0
set /a playery=0
set /a grassx=0
set /a grassy=0


:1
cls
echo.
echo.
echo %player% 
echo %grass%
echo x:%playerx% 
Choice /C ade /N /M "<-- A : D -->     E-EXIT"
if %Errorlevel% EqU 2  set "player=%lag%%player%" & set /a playerx=%playerx%+1 
if %Errorlevel% Equ 1  set "player=%player:~1%"   & set /a playerx=%playerx%-1 
if %Errorlevel% Equ 3 exit
if %playerx% == -1  set "player=@"   & set /a playerx=%playerx%+1
if %playerx% == 20   set "player=%player:~1%" & set /a playerx=%playerx%-1
goto 1

Последний раз редактировалось Alex11223; 16.12.2017 в 20:45.
one23 вне форума Ответить с цитированием
Старый 16.12.2017, 20:45   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от one23 Посмотреть сообщение
но мне не хватает опыта
в программирование на bat
а не на bat?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.12.2017, 20:48   #3
one23
Пользователь
 
Регистрация: 02.12.2017
Сообщений: 10
По умолчанию

не понимаю что вы имеете в виду?
one23 вне форума Ответить с цитированием
Старый 16.12.2017, 20:50   #4
one23
Пользователь
 
Регистрация: 02.12.2017
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
а не на bat?
если вы имеете в виду другие языки ,то я хочу именно на bat
one23 вне форума Ответить с цитированием
Старый 15.02.2018, 20:49   #5
one23
Пользователь
 
Регистрация: 02.12.2017
Сообщений: 10
По умолчанию

я тут кое что написал,игру(если это можно назвать игрой)
Пока что особо ничего нет,игрок может двигаться и стрелять но стрельба не доделана!НО он более любительский проект поэтому времени уделено крайне мало!
Хотел бы узнать ваше мнение к такому хобби.
игра создана исключительно в блокноте так что не судите строго
Вложения
Тип файла: zip game on bat.zip (1.1 Кб, 50 просмотров)
one23 вне форума Ответить с цитированием
Старый 05.07.2018, 22:54   #6
PlaueP
Новичок
Джуниор
 
Регистрация: 05.07.2018
Сообщений: 1
По умолчанию ОБНОВКА

Я немного усовершенствовал твой код.

@echo off
set "pl=0"
set "dt=========="
set "lg= "
set plx=1


:game
cls
echo.
echo %pl%
echo %dt%
echo x:%plx%
echo A - D
choice /C ad /N

if %errorlevel%==2 if NOT %plx%==9 set "pl=%lg%%pl%" & set /a plx+=1
if %errorlevel%==1 if NOT %plx%==1 set "pl=%pl:~1%" & set /a plx-=1


goto game
PlaueP вне форума Ответить с цитированием
Старый 23.07.2018, 13:40   #7
one23
Пользователь
 
Регистрация: 02.12.2017
Сообщений: 10
По умолчанию

Если честно то я очень сильно изменил скрипт+и даже добавил псевдо механику
Код:
@echo off

setlocal enabledelayedexpansion
set shotis=0
set shot_x=%player_x%
set newshot_x=0
:game

         

for /l %%h in (0,1,639) do set "s%%h= "
set player_x=1
set player_y=1
set tree_x=3
set tree_y=4
set /a tree_position=%tree_y%*40+%tree_x%
set "s%tree_position%=Г"



:gameplay
cls
if %shotis%==1 set /a shot_position=%shot_y%*40+%newshot_x%
set "s%shot_position%=-"
set /a player_position=%player_y%*40+%player_x%
set "s%player_position%=@"
echo ЙНННННННННННННННННННННННННННННННННННННННН»
echo є%s0%%s1%%s2%%s3%%s4%%s5%%s6%%s7%%s8%%s9%%s10%%s11%%s12%%s13%%s14%%s15%%s16%%s17%%s18%%s19%%s20%%s21%%s22%%s23%%s24%%s25%%s26%%s27%%s28%%s29%%s30%%s31%%s32%%s33%%s34%%s35%%s36%%s37%%s38%%s39%є   
 for /l %%f in (4,4,63) do (
  set /a posh=%%f
  set /a posi=%%f+1
  set /a posj=%%f+2
  set /a posk=%%f+3
  
for /f "tokens=1,2,3,4" %%h in ("!posh! !posi! !posj! !posk!") do echo є!s%%h0!!s%%h1!!s%%h2!!s%%h3!!s%%h4!!s%%h5!!s%%h6!!s%%h7!!s%%h8!!s%%h9!!s%%i0!!s%%i1!!s%%i2!!s%%i3!!s%%i4!!s%%i5!!s%%i6!!s%%i7!!s%%i8!!s%%i9!!s%%j0!!s%%j1!!s%%j2!!s%%j3!!s%%j4!!s%%j5!!s%%j6!!s%%j7!!s%%j8!!s%%j9!!s%%k0!!s%%k1!!s%%k2!!s%%k3!!s%%k4!!s%%k5!!s%%k6!!s%%k7!!s%%k8!!s%%k9!є
)    
echo ИННННННННННННННННННННННННННННННННННННННННј 
echo A:left  D:right  W:up  S:down  Q:exit  F:shot
timeout /T 0 >nul
goto controls
:controls

 Choice /C adwsqfP /T 1 /D P >nul
set lastshot_x=%newshot_x%
set lastshot_y=%shot_y% 
set lastplayer_x=%player_x%
set lastplayer_y=%player_y%
if %Errorlevel% EQU 1 set /a player_x=%player_x%-1 & set /a shot_x=%shot_x%-1 
if %Errorlevel% EQU 2 set /a player_x=%player_x%+1 & set /a shot_x=%shot_x%+1    
if %Errorlevel% EQU 3 set /a player_y=%player_y%-1  
if %Errorlevel% EQU 4 set /a player_y=%player_y%+1 
if %Errorlevel% EQU 5 exit  
if %Errorlevel% EQU 6  set /a shot_y=%player_y% & set /a shot_position=%shot_y%*40+%pshot_x%+1 & set shotis=1 & set /a newshot_x=%shot_x% 
if %Errorlevel% EQU 7  set nothing=0
set /a lastshot_position=%lastshot_y%*40+%lastshot_x% 
set "s%lastshot_position%= "     
set /a lastplayer_position=%lastplayer_y%*40+%lastplayer_x% 
set "s%lastplayer_position%= " 
if %player_x% GTR 39 set /a player_x=%player_x%-1
if %player_x% LSS 0 set /a player_x=%player_x%+1
if %player_y% GTR 15 set /a player_y=%player_y%-1 
if %player_y% LSS 0 set /a player_y=%player_y%+1
if %newshot_x% GTR 38 set shotis=0 
if %newshot_x% GTR 38 set "s%shot_position%= "
if %shotis%==1 set /a newshot_x=%newshot_x%+1
goto gameplay
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор





Цитата:
Сообщение от PlaueP Посмотреть сообщение
Я немного усовершенствовал твой код.

@echo off
set "pl=0"
set "dt=========="
set "lg= "
set plx=1


:game
cls
echo.
echo %pl%
echo %dt%
echo x:%plx%
echo A - D
choice /C ad /N

if %errorlevel%==2 if NOT %plx%==9 set "pl=%lg%%pl%" & set /a plx+=1
if %errorlevel%==1 if NOT %plx%==1 set "pl=%pl:~1%" & set /a plx-=1


goto game

Последний раз редактировалось Serge_Bliznykov; 23.07.2018 в 14:45.
one23 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сворачивание окон. cmd\bat obse Помощь студентам 15 29.05.2021 12:08
cmd и bat mouserman Windows 3 07.10.2018 10:05
Работа с Batch (CMD/BAT) se_arts Помощь студентам 2 25.09.2016 15:50
CMD/BAT - Помощь в нескольких вопросах!! expressq123 Общие вопросы C/C++ 3 11.07.2014 14:49
CMD/BAT previous day b3rr Помощь студентам 0 10.06.2013 12:24