Летучая мышь не любит "," для х, у, с - PullRequest
0 голосов
/ 09 октября 2011

Я делаю игру с битой, и для определения местоположения игрока я использую x.y.c (C - это компас, с которым сталкивается игрок). Обратите внимание на использование «.» а не ","

Почему партии не нравится использование ","?

Что я имею в виду, если вы скажете, что вы идете на 0,0, то он рухнет, потому что не может найти: 0,0 Однако, если вы используете Goto 0,0, он может найти: 0,0

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Метки не могут содержать ,.Это не только в партии.«Настоящие» языки программирования, как правило, также не допускают использование запятой в идентификаторах, хотя они, как правило, даже строже и не позволяют использовать точку.

Я думаю, что точка никогда не является оператором вПакетные, в то время как запятая, так что, чтобы предотвратить смешные выражения, они не позволяют использовать запятую в идентификаторе.

PS: Какую игру с битами вы создаете?Однажды я создал текстовое приключение с разумным успехом, но пришел к выводу, что в экшен-играх возникают проблемы с выбором правильного времени.

2 голосов
/ 09 октября 2011

Как сказал GolezTrol, , недопустимый символ для метки.
Но это еще сложнее, вы можете просмотреть его с двух точек.
Сначала с метки-вида:

Символы метки никогда не будут расширены, имя метки останавливается на одном из символов :+&|<>, и вы не можете заключить их в кавычки или символы вставки, поскольку кавычки и символы вставки являются действительными символами метки тоже.
Допустимым меткам может предшествовать ЛЮБОЙ символ (но только один), за которым следует множество из SPACE,;=TAB

Другой вид взят из команды call или goto:

Существуют эти символы, которые останавливают метку <space>, <TAB> и :,;=+, даже если метка заключена в кавычки, такие как

call :"myLabel+ignored"
exit /b

:"myLabel
echo It's called by %0

Но вывод будет :"myLabel+ignored, даже если имя искомой метки будет только "myLabel.

(<> также может остановить метку, но не в кавычках, они, кажется, работают совсем по-другому.

С этими двумя правилами можно понять, как это работает.

@echo off
call :%%%%X+Y%%
echo ---

<;;==;,,:%X<nul=echo hello 
echo Called by %0
exit /b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...