Перед тем как использовать --theX > 0
, и он отлично работал.Как заменить устаревший оператор сокращения числа «-» при сравнении?
Отрывок из старого кода:
if --theX < 0 {
...
if ++theX < 0 {
...
if ++theX > worldSize.width + 1 {
...
if --theX > worldSize.height {
...
Ниже вы можете увидеть четыре строки кода, которые имеют theX - 1 > 0
или что-то подобное. Теперь, когда я обновился до Swift 3, я подумал, что легко изменить --theX
либо theX - 1
, либо theX -= 1
.
Попытка обновленного кода:
func move(_ point:Point, worldSize:WorldSize) -> (Point) {
var theX = point.x
var theY = point.y
switch self {
case .left:
if theX - 1 < 0 {
// theX = worldSize.width - 1
print("g.o.")
stopped = true
}
case .up:
if theY + 1 < 0 {
// theY = worldSize.height - 1
print("g.o.")
stopped = true
}
case .right:
if theX + 1 > worldSize.width + 1 {
// theX = 0
print("g.o.")
stopped = true
}
case .down:
if theY - 1 > worldSize.height {
// theY = 0
print("g.o.")
stopped = true
}
}
return Point(x: theX, y: theY)
}
}
Однако, кажется, что не работает («Невозможно преобразовать значение типа„Bool“ожидаемого типа аргумента„Int“» ---> При использовании - = или + =). Если вы, ребята, задаетесь вопросом, это аркадная игра Снейка, а функция выше - это то, что происходит, когда змея движется (влево, вправо, вверх, вниз)
Любая помощь в том, почему эта проблема происходит или возможно, другая, но схожая версия приращений и декрементов (- и ++)?
, пожалуйста, обновите свой вопрос с помощью более полезного названия, что-то особенное для проблемы, которую вы имеете. –
какие строки вы получаете эту ошибку? – MikeG