// расчет времени суток, а так же смена его, при необходимости private void timer_Tick(object sender, EventArgs e) { tick++; if (tick == tickInterval) { int hourBefore = dayTime.Hour; dayTime = dayTime.AddMinutes(dayTimeTick); if (WorkWithTime.IsNight(dayTime.Hour) && !net.IsNearLamp(new Point(lastClickNet.X + beginRenderNet.X, lastClickNet.Y + beginRenderNet.Y))) goingTime = dayTimeTick * 2; else goingTime = dayTimeTick; gameTime = gameTime.AddMinutes(-goingTime); // условие проигрыша if (gameTime.Day == 9) { OutMessageBox("время закончилось!!!", "Game end"); Close(); } GameTime.Text = gameTime.ToString("yyyy-MM-dd HH':'mm':'ss"); Time.Text = dayTime.ToShortTimeString(); // перерисовываем, если день сменился ночью или наоборот if (WorkWithTime.TimesOfDay(hourBefore, dayTime.Hour)) AllRender(); tick = 0; } }
// перерисовка всех отображаемых в данный момент объектов private void AllRender() { Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); GameRendering.RenderNet(net, beginRenderNet, Scene, scale, WorkWithTime.IsNight(dayTime.Hour)); GameRendering.RenderMouseClickAlgorithmPoint(lastClickNet.X, lastClickNet.Y, Textures.CurrentCharactert); GameRendering.RenderWayByAlgorithmPoint(way); GameRendering.RenderMouseClickGraphPoint(currentClickGraph.X, currentClickGraph.Y, Textures.TransparentCharacter); GameRendering.RenderMouseClickAlgorithmPoint(subClickNet.X, subClickNet.Y, Textures.TransparentCharacter); Scene.Invalidate(); }