Показать сообщение отдельно
Старый 12.11.2011, 10:21   #63
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Помогите исправить ошибку

Было бы хорошо иметь весь код, а то я смутно понимаю предназначение кода.

Но в общем я догадываюсь о сути ошибки

end else //иначе (это когда курсор не на юнете, а на земле) 
         
nameOnBar:='З Е М Л Я'//присваиваем другое имя         
         
facewindow:=loadImage('/land1face.png'); // и загружаем другую картинку 
объясняю:
видиш ли, если не указаны begin и end, то выполняется одна, следующая команда. Давай разберем пошагово

if (x=unit1x) and (y=unit1y) then
Если в выделенной клетке монстр, то...

begin
facewindow:=loadImage('/face1.png'); //загружаем рожу юнита(будет отображаться на нижнем баре)
nameOnBar:='О Р К'; //присваиваем имя юнита, которое будет около рожи
end;

Загружаем в память иконку орка (и причем это сделано очень неправильным образом, иконки следует загрузить заранее), и меняем текст на "орк"

else //иначе (это когда курсор не на юнете, а на земле)
nameOnBar:='З Е М Л Я'; //присваиваем другое имя

Иначе делаем текст "земля"
так как сдесь нет begin и end, выполнятсмя будет только nameOnBar:='З Е М Л Я'; Все, условие закончилось.

facewindow:=loadImage('/land1face.png'); // и загружаем другую картинку
А вот эта штука будет выполняться в ЛЮБОМ случае, так как не относиться к условию. Тоесть даже если в клетке стоит орк, и мы загрузим его иконку, то вот эта команда загрузит землю.

Правильно будет так:
if (x=unit1x) and (y=unit1ythen //если коорд. курсора совпадают с коорд. юнита,то... 
         
begin 
         facewindow
:=loadImage('/face1.png'); //загружаем рожу юнита(будет отображаться на нижнем баре) 
         
nameOnBar:='О Р К'//присваиваем имя юнита, которое будет около рожи 
         
end else
begin //иначе (это когда курсор не на юнете, а на земле) 
         
nameOnBar:='З Е М Л Я'//присваиваем другое имя         
         
facewindow:=loadImage('/land1face.png'); // и загружаем другую картинку 
end;
          
         
drawImage(facewindow,scrW-sW-3,scrH-SH-3); //размещаем ее на баре 
         
SetColor(180,250,0);  
         
DrawText(nameOnBar,scrW-getStringWidth(nameOnBar)-35,scrH-getStringHeight(nameOnBar)-4); //и текст 
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием