Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Нужна помощь при созданий игры на delphi

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

MrTimSTeFF

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 1 | Зарегистр. 10-11-2013 | Отправлено: 14:32 10-11-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В приведенном выше коде дело дальше 1 картинки не пойдет. Если уж Вы решили использовать свойство Tag, то его нужно для начала изменять после загрузки изображения:

Код:
 
if Image9.Tag=0 then
  begin
    Image9.Picture.LoadFromFile('alpha/д.png');
    Image9.Tag := 9;
  end
else
  if Image10.Tag=0 then  
    begin
      Image10.Picture.LoadFromFile('alpha/д.png');
      Image10.Tag := 10;
    end
  else
    begin
      Image11.Picture.LoadFromFile('alpha/д.png');
      Image11.Tag := 11;
    end;

 
Однако приведенный код явно не оптимизирован.
В игре будут разные слова и, соответственно, разное количество букв. При переходе на следующее задание все тэги обнуляем, все Image делаем невидимыми, а потом нужное количество Image показываем, в зависимости от количества букв в новом слове.
 
При клике на нужную букву (Image) нужно делать цикл, например, такой:

Код:
 
procedure TForm1.Image4Click(Sender: TObject);
var
  a, i: Integer;
begin
  a := 0;
  with Panel1 do
    for i := 0 to ControlCount - 1 do
      if (Controls[i] is TImage) then
       if ((Controls[i] as TImage).Visible = true) and ((Controls[i] as TImage).Tag = 0) and (a = 0) then
         begin
          (Controls[i] as TImage).Picture := (Sender as TImage).Picture;
          (Controls[i] as TImage).Tag := (Sender as TImage).Tag; //присваиваем заполняемой ячейке значение Tag выбранной буквы (Image)
          a := 1;
          //(Sender as TImage).Picture.LoadFromFile('грузим какую-нибудь серую картинку, показывающую, что буквва выбрана и ячейка пустая');
          //(Sender as TImage).Enabled := false; чтобы второй раз нельзя было кликнуть по картинке
         end;
end;

 
В данном случае пустые ячейки (картинки) в которые нужно вставлять буквы, я расположил на Panel1 и иду только по ним, т.к. на форме будут и другие Image, в которых будут буквы из которых нужно выбирать: Н, А, С, О, Я, К.
Каждой из букв (Image), среди которых нужно выбирать нужные буквы, я бы присваивал значение Tag от 1 до 33 при загрузке задания. Ну а при заполнении всех ячеек уже можно проверять по тегам, праивльно выполнено задание или нет.
 
Принцип такой.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 22:51 10-11-2013 | Исправлено: MGAlex, 22:53 10-11-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Нужна помощь при созданий игры на delphi


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru