Я работаю над игрой, которая работает, когда отметка 'x'.У меня есть делегат TickEvent, это метод, который запускается, когда он должен.
public delegate void TickEvent(object[] objects);
У меня есть планировщик, который запускает метод с определенной отметкой.
public static void scheduleTick(long tick, TickEvent tickEvent)
{
queue.put(tick, tickEvent);
}
И обработчик.
public static void handleScheduledTicks()
{
for(int i = 0; i < queue.variables.Count; i++)
{
if((long)queue.variables[i] < elapsedTicks)
{
var tickEvent = (TickEvent)queue.values[i];
// runs the tickEvent with its arguments
queue.remove(i);
}
}
}
Создание события:
public static void someEvent(object[] objects)
{
Console.WriteLine(objects[0].ToString());
}
Calling the eventHandler and scheduling the event:
static long ticks = 0;
public static void Main()
{
scheduleTick(100, someEvent(new object[]() {"some args"})
while(true)
{
handleScheduledTicks();
ticks++;
}
}
Итак, мой вопрос: как я могу запустить tickEvent с его аргументами?(handleScheduledTicks закомментированная строка)