разработвам първата си игра в silverlight. Това е нещо като 2D лабиринт и движенията на потребителя върху платното се базират на събитието UserControl_KeyDown. Все още нямам никакъв gameloop. Но сега съм някак блокиран - трябва да огранича честотата на събитието UserControl_KeyDown или нещо подобно, защото имам нужда някои обекти в лабиринта да се движат по-бързо, отколкото играчът може. Предполагам, че мога да използвам gameloop по някакъв начин, но наистина не знам как и Google не помогна.. Надявам се, че можете да ми покажете начина, по който да направя това, наистина бих го оценил.
Как да ограничите честотата на действията на KeyDown
Отговори (1)
Можете да спестите времето, в което сте изпълнили командата си последния път, и да я изпълните само когато времевият интервал между сега и запазеното време е по-голям от определено време.
private DateTime _LastExecution = DateTime.MinValue;
public void UserControl_KeyDown(object sender, EventArgs ea) {
if ( ( DateTime.Now - _LastExecution ).TotalMilliSeconds > 500 ) {
/* do you stuff */
_LastExecution = DateTime.Now;
}
}
person
Sascha
schedule
04.10.2011
Саша, благодаря за отговора, звучи много умно, ще опитам това.
- person Gabbo; 04.10.2011
страхотно, научих нова функция, той е в stackoverflow (донякъде съм новодошъл тук :) )
- person Gabbo; 05.10.2011