আমি টপ ডাউন এক্সএনএ গেমটি তৈরি করছি। টাইলস দ্বারা মানচিত্র তৈরি করা হয়। আমি সম্প্রতি যে সমস্যাটি লক্ষ্য করেছি তা হ'ল টাইলগুলির মধ্যে লাইনের একটি 'গ্রিড'। এটি কেবল কখনও কখনও এবং কেবল ক্যামেরার অবস্থানের উপর নির্ভর করে প্রদর্শিত হয়। আমি এক্সএনএটিকে পজিশনিং পরিচালনা করতে দিই, কেন এই লাইনগুলি প্রদর্শিত হচ্ছে?
লাইনগুলি সহ এখানে একটি চিত্র:
যাইহোক, আমার ক্যামেরাটিকে কিছুটা উপরে নিয়ে যাওয়ার পরে, এটি কীভাবে প্রদর্শিত হবে বলে মনে হচ্ছে তা যাদুতে ফিরে যায়:
কোন সাহায্যের জন্য ধন্যবাদ!
সম্পাদনা করুন:
উত্স কোডের জন্য এটি আমি সবচেয়ে ভাল করতে পারি, এটি একটি অত্যন্ত বৃহত প্রকল্প এবং রেন্ডারিং এটি একাধিক ক্ষেত্রে সম্পন্ন করেছে:
টাইলসের মতো গতিশীল উপাদানগুলির জন্য প্রধান রেন্ডার লুপ :
spriteBatch.Begin(SpriteSortMode.Deferred, Nothing, SamplerState.LinearClamp, Nothing, Nothing, Nothing, Matrix.CreateTranslation(CameraX, CameraY, 0))
Mode.Render(spriteBatch, False)
For Each j As [Delegate] In DynamicInjectionList
j.DynamicInvoke(spriteBatch)
Next
DynamicInjectionList.Clear()
spriteBatch.End()
Mode.Render
:
For x As Integer = 0 To GRIDMAX - 1
For y As Integer = 0 To GRIDMAX - 1
For z As Integer = 0 To 2
Dim ter As TiledTerrain = Terrain(x, y, z)
If ter IsNot Nothing Then
sb.Draw(CBaseClient.TextureLibrary("TileMap"), New Rectangle(x * GRIDSIZE, y * GRIDSIZE, GRIDSIZE, GRIDSIZE), New Rectangle(ter.Texture_X, ter.Texture_Y, GRIDSIZE, GRIDSIZE), Color.White)
End If
Next
Next
Next
TiledTerrain.vb
ক্লাস:
Imports ProtoBuf
<ProtoContract()> _
Public Class TiledTerrain
<ProtoMember(1)> _
Public Property X As Integer
<ProtoMember(2)> _
Public Property Y As Integer
<ProtoMember(3)> _
Public Property Z As Integer
<ProtoMember(4)> _
Public Property Texture_X As Integer
<ProtoMember(5)> _
Public Property Texture_Y As Integer
End Class
আমার গবেষণা:
আমি এটিতে কিছু অনুসন্ধান করেছি এবং এটি হ'ল আমি:
- এই সমস্যাটিকে ছেঁড়া বলা হয় (আমি বিশ্বাস করি?)
- এটি সাধারণত টাইল অবস্থান ধরে রাখতে ভাসমান পয়েন্ট ডেটা টাইপ ব্যবহার করার কারণে ঘটে থাকে (আমি ব্যবহার করছি
Integer
তাই এটির কোনও সমস্যা হওয়া উচিত নয়?)