小编Iva*_*van的帖子

Silverlight/XNA动画滞后

当我使用XNA Framework(对于Windows Phone)我的游戏工作完美,但是当我在Silverlight/XNA Framework上迁移时,我遇到了动画滞后的问题.问题如下:当我将固定时间步骤设置为GameTimer(timer.UpdateInterval = TimeSpan.FromTicks(333333))时,实时步骤不会固定,并且计时器事件(OnUpdate,OnDraw)会以不同的间隔触发.此代码更清楚地显示了我的问题:

Silverlight/XNA框架:(动画滞后):

TimeSpan curNow;
TimeSpan lastUpdate;
TimeSpan lastDraw;

public GamePage()
{
    timer = new GameTimer();
    timer.UpdateInterval = TimeSpan.FromTicks(333333);
    timer.Update += OnUpdate;
    timer.Draw += OnDraw;
}

private void OnUpdate(object sender, GameTimerEventArgs e)
{    
    curNow = new TimeSpan(DateTime.Now.Ticks);
    TimeSpan elapsed=e.ElapsedTime;//Always constant and has value: 33ms
    TimeSpan realElapsed =  curNow  -  lastUpdate;//Real elapsed time always changing and has a value between: 17-39ms (sometimes more then 39ms)
    lastUpdate =  curNow;
}

private void OnDraw(object sender, GameTimerEventArgs e)
{
    curNow …
Run Code Online (Sandbox Code Playgroud)

c# silverlight xna windows-phone-7

6
推荐指数
1
解决办法
1050
查看次数

decimal.ToString()中的奇迹

这怎么可能?

decimal d = ePhrase.MaxPrice; //ePhrase.MaxPrice==3 - Entity (edmx) object from sql 2012 express data field is decimal (18,2)
string t = d.ToString(); //Why does t=="3,00"?
d = (decimal)3.00;
t = d.ToString(); //t=="3"
Run Code Online (Sandbox Code Playgroud)

问题是在一种情况下t =="3,00",另一种情况是t =="3"?这两种情况有什么区别?

谢谢大家:

decimal d = ePhrase.MaxPrice;
  string t = d.ToString();//t=="3.00"
  d  = 4.0000m;
  t = d.ToString();//t=="4.0000"
Run Code Online (Sandbox Code Playgroud)

问题是"d =(十进制)3.00" - 显然这不是真十进制

.net c#

0
推荐指数
1
解决办法
249
查看次数

标签 统计

c# ×2

.net ×1

silverlight ×1

windows-phone-7 ×1

xna ×1