2015-02-24 3 views
2

Я программист для начинающих, и я пытаюсь создать текстовую RPG-игру (например, Zork) с использованием языка Delphi Pascal. я сделал событие, в котором главный герой открыть сундук и найти некоторые предметы:Как я могу сделать событие в Delphi только один раз?

begin 
    text1.text := 'You see a chest. It is unlocked.'; 
     end; 
    if edit1.Text = 'Open Chest' then 
    text1.Text := 'You found 50 Gold Pieces, a Short Sword, a Cloth Armor and a Satchel Bag.'; 
end; 

Но я хочу, чтобы сделать это таким образом, что всякий раз, когда кто-то открывает грудь после того, как первый раз, грудь будет пустым, так как игрок уже взял предметы. Другими словами, когда кто-то вводит «Open Chest» в TEdit во второй раз, он говорит что-то вроде «Он пуст».

Но как?

+0

Установите флаг (логический) в true, когда он открывается в первый раз. –

+5

Попытка написать свою логику игры с помощью 'TEdit' элементов управления графическим интерфейсом приведет к беспорядку. Время переосмыслить. –

+0

@David. Какие-либо предложения в каком направлении он должен смотреть? –

ответ

4

Вы должны использовать дополнительную переменную, которая сообщит вам, был ли сундук уже открыт или нет.

var 
    ChestOpened: boolean; 

// initialize at beginning 
ChestOpened := false; 

... 

if Edit1.text = 'Open Chest' then 
begin 
    if ChestOpened then 
    Text1.Text := 'Chest is empty' 
    else 
    begin 
    ChestOpened := true; 
    Text1.Text := 'You found 50 Gold Pieces, a Short Sword, a Cloth Armor and a Satchel Bag.' 
    end; 
end; 
Смежные вопросы