我只想提示用户在操作过程中输入一行文字。效果应该是这样的:
> north
The robot steps in front of you as you approach the gate.
"PAASSWAAAAWRD!!" it bellows.
Enter the password: _
此时游戏应暂停并让玩家尝试猜测密码。例如,假设我猜“fribble”,这不是密码:
Enter the password: fribble
"WRONG PASSWAAARD!" roars the robot. "CHECK CAPS LAAAWWWWK!"
>
我想要的行为类似于if the player consents
,但我想要整行输入,而不仅仅是是或否。
答案 0 :(得分:11)
Inform没有提供简单的方法,但你可以通过删除Inform 6来获得键盘原语。
然而,有可能达到预期的效果:
The Loading Zone is a room. "Concrete with yellow stripes. The Hold is north."
The robot is an animal in the Loading Zone. "However, a robot the size of an Arcturan megaladon guards the way."
North of the Loading Zone is the Hold.
Instead of going north from the Loading Zone:
say "The robot steps in front of you as you approach the gate. 'PAASSWAAAAWRD!!' it bellows.";
now the command prompt is "Enter password: ".
After reading a command when the command prompt is "Enter password: ":
if the player's command matches "xyzzy":
say "The robot folds itself up into a cube to let you pass.";
move the player to the Hold;
otherwise:
say "'WRONG PASSWAAARD!' roars the robot. 'CHECK CAPS LAAAWWWWK!'";
now the command prompt is ">";
reject the player's command.
我认为这种事情被认为是糟糕的游戏玩法:它会迫使玩家猜测,这会损害玩家的控制和选择错觉。更传统的方式是要求玩家说密码:
The Loading Zone is a room. "Concrete with yellow stripes. The Hold is north."
The robot is an animal in the Loading Zone. The robot is either awake or asleep. The robot is awake. "[if awake]However, a robot the size of an Arcturan megaladon guards the way.[otherwise]A cube of metal the size of an Arctural megaladon snores loudly.[end if]".
North of the Loading Zone is the Hold.
Instead of going north from the Loading Zone when the robot is awake:
say "The robot steps in front of you as you approach the gate. 'PAASSWAAAAWRD!!' it bellows."
Instead of answering the robot that some text:
if the topic understood matches "xyzzy":
say "The robot folds itself up into a cube to let you pass.";
now the robot is asleep;
otherwise:
say "'WRONG PASSWAAARD!' roars the robot. 'CHECK CAPS LAAAWWWWK!'"
命令说xyzzy 和回答xyzzy 和机器人,xyzzy 和说xyzzy到机器人将全部工作
答案 1 :(得分:3)
Michael Callaghan的扩展问题将有助于此。请注意,您可能无法可靠地测试输入大小。
答案 2 :(得分:0)
像这样拖放到I6在Inform 7.9.3中起作用。这可能是个坏主意。
Section 1 - Line input
Include (- Global user_input = 100; -) after "Parser.i6t".
The user input is a snippet that varies. The user input variable translates into I6 as "user_input".
To get a line of input: (-
KeyboardPrimitive(buffer, parse);
user_input = 100 + WordCount();
-).
然后,您可以使用短语“获取输入行”来读取一行,而短语“用户的输入”给出他们输入的行。 (片段是一种 text 。)
示例如下:
Section 2 - Example
The Loading Zone is a room. "Concrete with yellow stripes. The Hold is north."
The robot is an animal in the Loading Zone. "However, a robot the size of an Arcturan megaladon guards the way."
North of the Loading Zone is the Hold.
Instead of going north from the Loading Zone:
say "The robot steps in front of you as you approach the gate. 'PAASSWAAAAWRD!!' it bellows.[paragraph break]";
say "Enter password: ";
get a line of input;
if the user input matches "xyzzy":
say "The robot folds itself up into a cube to let you pass.";
move the player to the Hold;
otherwise:
say "'WRONG PASSWAAARD!' roars the robot. 'CHECK CAPS LAAAWWWWK!'".
Test me with "n / password / n / xyzzy".