我是新的OOP学生,我用X#在Xamarin工作室写了简单的时钟程序。时钟格式为00:00:00。它应该是数字并作为时钟工作。 但是,必定存在一些问题,因此我的时钟可以在屏幕上绘制但不会打勾"#34;。
$ docker-machine ip default
192.168.99.100
$ curl 192.168.99.100:8090
curl: (7) Failed to connect to 192.168.99.100 port 8090: Connection refused
答案 0 :(得分:1)
您的时钟没有勾选的原因是因为您使用myClock.SetClock()方法不断重置它的间隔。此方法只应在main方法的while循环外调用一次。尝试以下主要方法;
public static void Main ()
{
var myClock = new Clock ();
//Open the game window
SwinGame.OpenGraphicsWindow ("GameMain", 800, 600);
SwinGame.ShowSwinGameSplashScreen ();
myClock.SetClock (); //Set clock should be called from here.
//Run the game loop
while (false == SwinGame.WindowCloseRequested ()) {
//Fetch the next batch of UI interaction
SwinGame.ProcessEvents ();
//Clear the screen and draw the framerate
SwinGame.ClearScreen (Color.White);
SwinGame.DrawFramerate (0, 0);
myClock.DrawClock ();
if (SwinGame.MouseClicked (MouseButton.LeftButton)) {
myClock.UpdateClock ();
}
if (SwinGame.MouseClicked (MouseButton.RightButton)) {
myClock.ResetClock ();
}
//Draw onto the screen
SwinGame.RefreshScreen (60);
}
}
SetTimer应该如下
public void SetTimer ()
{
timer.Interval = 1000;
timer.Elapsed += (sender, e) => UpdateCounter ();
timer.Start ();
}
答案 1 :(得分:0)
好像你甚至没有启动计时器 而不是在 UpdateCounter()中调用 timer.Start(); ,而是在 timer.Elapsed + =(sender,e)=>之后启动计时器。 UpdateCounter(); 。
你还应该把你的变量放在一起。
private int _hoursCounter;
private int _minutesCounter;
private int _secondsCounter;
Timer timer;
并在构造函数中初始化计时器:
..
_secondsCounter = 0;
timer = new Timer();