Birkaç yıldan beri XNA'da (vb.net) bir oyun projesi üzerinde çalışıyorum, ancak resmi bir eğitimim yok. Denerken öğreniyorum. Bu, kodun verimsiz veya basitçe yanlış yazabileceği anlamına gelir (göz önünde bulundurulması iyi). Sorunum:Trouble oyunumun başındaki hata ayıklama XNA (vb.net)
Bugün, ilk kez, hata ayıklamasını başlattığımda ilk karenin çekilmesinden önce bir hata alıyorum (beyaz bir pencere belirir). game.Run()
benim System.OutOfMemoryException
hata ile vurgulamaktadır. Bunun panoya kopyalarken şöyle der: basitçe abit fazla içerik eklemek için
System.OutOfMemoryException was unhandled
HResult=-2147024882
Message=Exception of type 'System.OutOfMemoryException' was thrown.
Source=WindowsGame2
StackTrace:
at WindowsGame2.Game1.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DrawFrame()
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNat iveMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.Unsafe NativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
at Microsoft.Xna.Framework.Game.Run()
at WindowsGame2.Program.Main(String[] args) in C:\Projects \WindowsGame2\WindowsGame2\WindowsGame2\Program.vb:line 9
InnerException:
o gün kodunda herhangi bir değişiklik yapmadan geri çağırmak, ancak olamaz. Bunun belirsiz olduğunu biliyorum, ama düşünebildiğim tek şey bu. Orada her forumda kazdım ama boşuna. Sorunu anlamanıza yardımcı olabilecek herhangi bir bilgi var mı? Yardımlarınız için minnettarım! /Christian
EDIT: Kodu optimize etmeyi denedim (ve biraz da olsa), bu yüzden bir kez daha düzgün çalışmalıdır. Örneğin, şimdi eskisinden çok daha az aşırı döngü kullanıyorum. Sorun, çalışırken çalışırken görünmüyor, ancak yalnızca başladığında. Şimdi debug'a bastığım yaklaşık 1/5 kez başlayayım.
muhtemelen kaynak kodu revizyon kontrolünü kullanıyorsunuz? hangi değişikliklerin yapıldığını kontrol edin ..... –
Bunu şimdi bile googling önce ne olduğunu bilmiyordum. Yani hayır, kullanmıyorum. Eğer otomatikse, bunun farkında değilim. Yine de, proje hakkında değiştirdiğim tek şey, bazı yeni görüntüler eklemek ve bunları birleştirmek oldu (her gün aynı standart prodecure) –
Kullanın. Kod yazmadan geliştirin. (örn. Kullan Git. –