有没有办法可以在一秒钟内延迟选择命令(批量)?
例如,如果我想制作一个可以四处移动的游戏,并且你有一些敌人需要战斗,那么敌人就不会那么快移动(他们只会每秒移动一次!)。
这是我尝试过的:
protected void imageButtonUpload_Click(object sender, ImageClickEventArgs e)
{
int ID = Convert.ToInt16(labelID.Text);
if (fileUploadProfile.HasFile)
{
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=Session5_HomeWork;User ID=sa;Password=*************");
cnn.Open();
string Command = "Select GuidName from Table_AccountImages where ID = @ID";
SqlCommand cmd = new SqlCommand(Command, cnn);
cmd.Parameters.AddWithValue("ID", ID);
string GuidName = cmd.ExecuteScalar().ToString();
cnn.Close();
fileUploadProfile.SaveAs(MapPath("~/Profile Images/" + GuidName));
imageProfile.ImageUrl = "~/Profile Images/" + GuidName;
Response.Redirect(Request.RawUrl);
}
}
你可以看到我想延迟它约0.2秒。
我也尝试使用protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadImage();
}
}
private void LoadImage()
{
int ID = Convert.ToInt16(labelID.Text);
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=Session5_HomeWork;User ID=sa;Password=soroush");
cnn.Open();
string command = "Select GuidName from Table_AccountImages Where ID = @ID";
SqlCommand cmd = new SqlCommand(command, cnn);
cmd.Parameters.AddWithValue("ID", ID);
try
{
imageProfile.ImageUrl = "~/Profile Images/" + cmd.ExecuteScalar().ToString();
}
catch (Exception)
{
imageProfile.ImageUrl = "~/Profile Images/Default.png";
}
cnn.Close();
}
,但是当我这样做时,choice /c 123 /n /t 0.2 /d c
按钮不起作用...
告诉我是否需要更具体!
感谢所有帮助:D
答案 0 :(得分:1)
不,本机CHOICE命令不支持小于1秒的超时值。即使它确实如此,我认为它不会对你有所帮助。
根据您问题中的信息,听起来您正在尝试开发一种实时工作的图形游戏(不是基于回合制)。我假设你希望游戏用移动的物体不断更新屏幕,并在用户按某些键时以某种方式响应。
CHOICE命令只会识别等待时发生的按键 - 换句话说,按键不会被缓冲。假设您的批处理脚本处于一个循环中,该循环可以获取用户输入,执行一系列计算,然后刷新屏幕。进行计算并刷新屏幕需要时间。有些按键会起作用,因为它们恰好发生在CHOICE正在执行时,有些则不会发生。这对用户来说可能会非常令人沮丧。
(请注意,来自管道或重定向输入的输入是缓冲的,但不是直接按键)
我相信您希望以下所有内容开发图形游戏:您需要一些缓冲按键的机制,并且在批处理循环中,如果检测到按键,则测试并采取措施。您希望按键的测试是“瞬时”(非阻塞)。而且你还需要一种机制来通过引入亚秒级睡眠来控制游戏的速度。还有许多其他问题需要解决。所有这一切都可以使用批处理,但这非常困难,需要大量关于批处理脚本如何工作的无证知识,以及许多神秘的语法和黑客。
有第三方工具可以使工作更轻松,但重点是什么?
注意 - 以下是我的观点,StackOverflow对基于意见的答案皱眉。但是,这里......
如果你只是想开发游戏,和/或自学一些编程技巧,那么批处理是一个可怕的起点。使用您能找到的任何其他语言会更好。除了批处理之外,您还可以使用其他任何东西,并且您最终会得到更优质的产品,并且在您使用它的同时学习更多有用的技能。
但是如果你想用纯粹的挑战和乐趣来开发游戏,那么我喜欢你的思维方式,对你有更大的力量:-)但是,如果这是你的目标,那么我建议不要使用任何第三方工具,否则在我的书中作弊。
意见结束
如果你确定你真的想用批量开发游戏,那么我强烈建议你学习我的SNAKE.BAT game。阅读整个主题,并研究代码。但我警告你,有许多先进的技术和黑客很难理解。它可能需要多次读数和大量时间才能理解所有内容。
我解决的一个问题是如何以“瞬时”,无阻塞的方式检测按键。我在http://www.dostips.com/forum/viewtopic.php?p=31035#p31035描述了这项技术。