Почти...
Нельзя return'ить сразу несколько переменных (как только парсер доходит до ретурна, он сразу же прекращает выполнять процедуру => только первый return сработает.
1)
Мжно так:
Code:
sub main
......
x=get_enemy_coord('enemy','x')
y=get_enemy_coord('enemy','y')
dir=get_enemy_coord('enemy','dir')
.....
end sub
sub get_enemycoord('enemy','coord')
.....
if coord=='x' then
return x
end if
if coord=='y' then
return y
end if
if coord=='dir' then
return dir
end if
end sub
2)
Но на само деле будет быстрее работать, если написать для каждой координаты свою процедуру, тоесть:
Code:
sub get_enemycoord_x('enemy')
...
end sub
sub get_enemycoord_y('enemy')
...
end sub
sub get_enemycoord_dir('enemy')
...
end sub
3)
Еще есть хороший вариант с глобалками, но он хорошь лишь тогда, когда тебе нужны все координаты сразу. В случае если, скажем, координату х ты хочешь узнавать чаще, чем dir, то тогда вариант с вычислением всех координат в одной процедуре нужно реализовывать так: не вычислять все 3 координаты сразу, а "по запросу" (хотя это тоже самое,Ч то и пункт 2, только впрофиль):
Code:
sub get_enemycoord('enemy','coord')
if coord=='x' then
вычисляем Х
return x
end if
if coord=='y' then
вычисляем У
return y
end if
if coord=='dir' then
вычисляем dir
return dir
end if
end sub