Re: [問題] 用XNA+C#寫俄羅斯方塊

看板C_Sharp作者 (@@)時間16年前 (2008/06/12 16:47), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
xna裡的update是讓你做遊戲的邏輯控制的 如果你在你面用SLEEP(1000) 那你遊戲的所有東西都要一秒才能改變一次了 而且這會牽扯到FPS的問題~ 因為你拖延了UPDATE的時間~讓DRAW函式來不及保持60fps 他會想辦法追上~這應該是你當機的原因 要想一秒下降一次方塊 你要在你的方塊物件加入一個時間變數 記錄出現在畫面上的時間 超過要移動的時間才自行改變位置 而時間可以由UPDATE傳入的參數gameTime取得 像是這樣 class square{ public double time; public int x,y; public void MoveDown(GameTime gameTime){ time += gameTime.ElapsedGameTime.TotalMilliseconds; if(time > 1000){ x += 30; //看你要順移多少像素 time -= 1000; } } } update(GameTime gameTime){ square.MoveDown(gameTime); ...做其他事情 } 大概是這樣~希望你了解 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.202.174

06/13 19:58, , 1F
gameTime.ElapsedGameTime.TotalMilliseconds是?
06/13 19:58, 1F
文章代碼(AID): #18KEAWUw (C_Sharp)
文章代碼(AID): #18KEAWUw (C_Sharp)