2 ডি UI পরিচালনা করতে কোন সমন্বয় ব্যবস্থা ব্যবহার করবেন?


20

দিক অনুপাত প্রশ্ন অনুসরণ করে , 2D UI সিস্টেমে কাজ করার সময় অন্যান্য ব্যক্তিরা কী ব্যবহার করছেন তা শুনতে আগ্রহী (সম্ভবত তাদের নিজস্ব বাড়ির সমাধান) solutions বিশেষত, আপনি কীভাবে সমন্বয় ব্যবস্থা পরিচালনা করবেন। আমার মনে তিনটি বিকল্প আছে:

  1. হার্ড-কোডেড কো-অর্ডিনেটস (যেমন: 0 -> 720, 0 -> 576)
  2. সাধারণ কো-অর্ডিনেটস (0.0 -> 1.0, 0.0 -> 1.0), রেন্ডারিংয়ের আগে বাস্তব স্থানাঙ্কে ম্যাপ করা
  3. ভার্চুয়াল কো-অর্ডিনেটস (যেমন: 0 -> 1600, 0 -> 1000), রেন্ডারিংয়ের আগে বাস্তব স্থানাঙ্কে ম্যাপযুক্ত

হার্ড-কোডিং কেবলমাত্র তখনই কার্যকর যদি আপনি স্থির প্ল্যাটফর্মে থাকেন এবং আপনার স্ক্রিন স্পেসের স্থানাঙ্কগুলি আগে থেকে কী তা জেনে থাকেন বা আপনি যদি স্ক্রিনের মাত্রার প্রতিটি সেটের জন্য স্ক্রিন লেআউট লেখার জন্য প্রস্তুত হন।

সাধারণ কো-অর্ডিনেটগুলি দুর্দান্ত, তবে অস্পষ্টতায় ভোগেন যখন পর্দার দিক অনুপাত স্থির হয় না (উদাহরণস্বরূপ, ০. maps৫ মানচিত্র যখন প্রশস্ত স্ক্রিনে চালিত হয় তখন এটি 4: 3-এর চেয়ে বেশি হয়)) এছাড়াও, লেখকদের জন্য, কোনও ইউআই উপাদান (0.2 x 0.2) হিসাবে ঘোষণা করা সত্যই বিপরীত, কেবল এটি রেন্ডার করার সময় এটি আসলে বর্গক্ষেত্র নয় বলে সন্ধান করতে পারে।

ভার্চুয়াল কো-অর্ডিনেটগুলি দ্ব্যর্থহীন, তবে রিম্যাপিং পর্যায়ে সাধারণ কো-অর্ডিনেটের মতো একই সমস্যায় ভুগছে: একটি ক্ষুদ্র দশমিক তফাৎ হতে পারে একের পর এক ত্রুটি যার অর্থ ইউআই উপাদানগুলি এখন টালি করা উচিত তাদের মধ্যে একটি সিঁড়ি থাকতে পারে।

একইভাবে, যখন আপনার কোনও স্থির রেজোলিউশন স্ক্রিন থাকে, তখন সাধারণ এবং ভার্চুয়াল উভয় স্থানাঙ্কের অর্থ হ'ল আপনার শিল্পীর ইউআই চিত্রের সূক্ষ্মভাবে তৈরি পিক্সেল এবং পিক্সেলের মধ্যে পিক্সেলগুলির মধ্যে 1: 1 ম্যাপিংয়ের গ্যারান্টি দেওয়া খুব কঠিন, যার অর্থ আপনার ঝুঁকি রয়েছে বাজে স্কেলিং আর্টফ্যাক্টস (ধরে নিচ্ছেন আপনি স্ক্রিনে টেক্সচারযুক্ত কোয়াড হিসাবে রেন্ডার করছেন)।

বিশেষত দিক অনুপাত সম্পর্কে অস্পষ্টতা এড়াতে আমরা ভার্চুয়াল সমন্বয় পদ্ধতির সাথে চলেছি। সুতরাং কোনও 16:10 স্ক্রিনে রেন্ডার করার সময়, ইউআই স্পেসটি (0,0) -> (1600,1000) হয় তবে 4: 3 তে রেন্ডার করার সময়, ব্যবহারযোগ্য ইউআই স্পেসটি আসলে (133,0) -> (1467) হয় , 0)।

এর চেয়ে আরও ভাল সমাধান কি আছে যা সম্পর্কে আমি অবগত নই? এই 3 টি পদ্ধতির যে সমস্যা রয়েছে তা হ্রাস করার জন্য কি কোনও ভাল কৌশল আছে?

উত্তর:


5

আমি মনে করি যে আমি সম্মত হলাম যে স্বাভাবিকীকরণ সমবায়গুলি ইউআই স্টাফগুলিতে সত্যিই ভাল মানচিত্র দেয় না।

আমি সাধারণত 2 ডি লেআউটগুলির জন্য যা করি তা হ'ল মূলত আপনার "ভার্চুয়াল" সমন্বিত স্থান, তবে আমি একটি স্থান বেছে নিয়েছি যা আমার পছন্দসই লক্ষ্য রেজোলিউশন (উদাহরণস্বরূপ 1280x720) সহ 1: 1 এর মানচিত্র করে। এটি স্থির নয়, তবে এটি মোকাবেলা করা স্বজ্ঞাত এবং আমি জানি যে 90% ক্ষেত্রে এটি ঠিক দেখাবে। স্পষ্টতই আত্মতৃপ্ত না হওয়া এবং আসলে প্রায়শই বিভিন্ন রেজোলিউশন পরীক্ষা করা গুরুত্বপূর্ণ check

রেজোলিউশনগুলি পুনরায় নির্ধারণের সময় খাস্তা জন্য, আমি ফন্ট-রেন্ডারিং থেকে কিছু টিপস ধার করতাম এবং ইঙ্গিত সম্পর্কিত তথ্য সরবরাহ করতাম। সুতরাং নিশ্চিত হয়ে নিন যে জিনিসগুলিকে অবিচ্ছিন্ন হতে হবে কোনও উপায়ে ট্যাগ করা হয়েছে, ঠিক যেখানে পিক্সেলগুলি যেখানে খাস্তা সারিবদ্ধকরণ প্রয়োজনীয় সেখানে গোল করে performing

সম্ভবত বিষয়গুলিকে আরও আপেক্ষিক করার বিষয়ে বিবেচনা করুন। সুতরাং সবকিছু "পরম এক্স, ওয়াইতে 1 পজিশন অবজেক্ট 1 হওয়ার পরিবর্তে আপনি" অবজেক্ট 2 এর নীচের বামটি অবজেক্ট 1 এর নীচের ডান থেকে কিছু অফসেটে নির্দিষ্ট করতে পারেন "। গুরুত্বপূর্ণ সম্পর্ক হারাতে না পারার পরে বিষয়গুলি পুনরুদ্ধার করা এবং / বা স্থানান্তর করা আরও সহজ।


5

সিইজিইউআইয়ের সমন্বয় ব্যবস্থাটি সত্যিই ভালভাবে চিন্তাভাবনা করে মনে হচ্ছে। এটি ইউনিফাইড সমন্বিত সিস্টেম আপেক্ষিক অবস্থানের সাথে নিখুঁত অবস্থানের মিশ্রণ করে। আপনি যেমন অবস্থানগুলি নির্দিষ্ট করতে পারেন:

  • পর্দার মাঝখানে
    UDim(0.5,0)
  • ডান প্রান্তের বামে পাঁচ পিক্সেল
    UDim(1.0,-5)
  • মাঝখানে দুটি উইজেট তবে 10 পিক্সেল দ্বারা পৃথক
    HA_RIGHT,UDim(0.5,-5) HA_LEFT,UDim(0.5,5)

2

যদি সন্দেহ হয় তবে সিএসএস বক্স মডেল বা এর সরলকরণ কেন যাবেন না?

আপনি শতাংশ বা পিক্সেলগুলিতে অবস্থান নির্দিষ্ট করতে পারেন। আপনি শতাংশ সহ পাত্রে অবস্থান নিতে পারেন তবে উদাহরণস্বরূপ পিক্সেল দ্বারা আইটেমগুলি তাদের মধ্যে স্থাপন করতে পারেন।


1

আমি ভার্চুয়াল স্থানাঙ্কগুলি ব্যবহার করতে পছন্দ করি তবে সাধারণ টার্গোল রেজোলিউশনের আশেপাশে ভিত্তি করে (আপনি সম্ভবত গেমটি চালাবেন বলে আশা করেন এমন সর্বোচ্চ রেজোলিউশনের মধ্যে একটি।

আজকাল, একটি ভাল পছন্দ 1920x1080 হতে পারে।

সমস্ত আর্টওয়ার্ক এবং স্ক্রিন মক-আপগুলি সেই রেজোলিউশনে তৈরি করা যায় এবং পিক্সেলগুলিতে অবস্থান / দূরত্বগুলি পরিমাপ করা সহজ করে তোলে।

ভার্চুয়াল স্থানাঙ্কের জন্য যদি অন্য কোনও অনুপাতের সাথে চলমান থাকে তবে আপনি কীভাবে এটি স্ক্রিনে ফিট করতে পারেন তা বেছে নিতে পারেন (লেটারবক্সিং, উভয় পক্ষের ক্রপিং বা কিছুটা)

কোডিংয়ের সময়, আমি 'পিক্সেলগুলিতে চিন্তাভাবনা' স্বাভাবিকতর স্থানাঙ্কে চিন্তা করার চেয়ে অনেক সহজ মনে করি! - আমি লেখাটি '0.0463 ইউনিট উচ্চ' না হয়ে '50 (ভার্চুয়াল) পিক্সেল উচ্চতায় 'হওয়া চাই


0

এটি সম্পূর্ণরূপে আপনার কী ধরনের জিইউআই রয়েছে তা নির্ভর করে তবে প্রায়শই গেমগুলির পর্দার প্রান্ত এবং কোণে জিনিসগুলি নোঙ্গর করা থাকে এবং তারপরে কোনও মডেল ডায়ালগ বা কোনও কিছুর জন্য তাদের পর্দার মাঝখানে একটি বাক্স থাকতে পারে।

যদি এটি আপনার ক্ষেত্রে হয় তবে আমি কি এমন একটি স্কিম ব্যবহার করার পরামর্শ দেব যেখানে আপনি একটি অ্যাঙ্কর এবং একটি অফসেট (x, y) নির্দিষ্ট করবেন? এটি জাভার সীমান্ত লেআউটের অনুরূপ হবে (তবে সম্ভবত চারটি কোণ, চারটি ছদ্ম কিনারা এবং পর্দার একটি কেন্দ্রের সাথে)। সুতরাং উদাহরণস্বরূপ, আপনি উপরের-বাম কোণ থেকে একটি অফসেট (0,0) নির্দিষ্ট করতে পারেন; তারপরে উপাদানটি ঠিক পর্দার কোণায় নোঙ্গর করা হবে। এবং তারপরে কোনও রেজোলিউশন, দিক অনুপাত ইত্যাদি বিবেচনা না করেই আপনার পর্দার কোণায় স্বাস্থ্য সূচক থাকবে। তবে আপনি যদি উপরের ডান কোণে কোনও উপাদান নোঙ্গর করেন তবে উপাদানটি স্বাভাবিকভাবেই তার শীর্ষে ডান পয়েন্ট (উপরের বামের পরিবর্তে) এর সাথে আপেক্ষিকভাবে নোঙ্গর করা হবে, তাই পুনরায় সমাধান হয়ে যায় না কেন এটি স্বয়ংক্রিয়ভাবে পর্দার কোণায় নোঙ্গর হয়ে যায়।

আমি স্পষ্টতই স্বাভাবিকের 0.0-1.0 স্থানাঙ্কের বিরুদ্ধে সুপারিশ করি; এগুলি ভাসমান-পয়েন্ট নির্ভুলতার ভিত্তিতে পরিবর্তিত হতে পারে। জিইউআইগুলি পিক্সেলগুলিতে ম্যাপ করা উচিত, যদি না আপনার 3 ডি জিইআই থাকে।


ভাল, আপেক্ষিক অবস্থান এবং অ্যাঙ্কারগুলি ব্যবহার করে ইউআই সিস্টেমের যে কোনও ধরণের জন্য যথেষ্ট দেওয়া। আমি বিশেষত বিভিন্ন উপাদানগুলির মধ্যে পরিমাপে আরও আগ্রহী। এবং এই ধরণের জিনিসটির জন্য, 3 ডি / 2 ডি জিইউআই পার্থক্যটি হতাশার ধরণের: বিশেষত যখন আপনি টেক্সচার্ড স্ক্রিন স্পেস কোয়াডগুলি স্বেচ্ছাসেবীর আকারের চিত্রগুলি ব্যবহার করতে এবং আপনার UI স্পেসে স্কেল / পজিশন ব্যবহার করেন।
মিস্টার ক্র্যাঙ্কি

0

অনেক ধরণের খেলা এবং পরিস্থিতি নির্ভর করে। দ্রুত এবং নোংরা প্রোটোটাইপগুলির জন্য, আমি গ্রাফ পেপারে ইউআই পরিকল্পনা করা, একটি নির্দিষ্ট উইন্ডো আকারের জন্য সংখ্যার স্থানাঙ্কের একটি তালিকা এবং হার্ডকোডের সমস্ত কিছুই পছন্দ করি - এটি আমার পক্ষে সহজ এবং দ্রুত। তবে এমন একটি "বাস্তব" প্রকল্পের জন্য যেখানে আপনি পুনরায় আকারযুক্ত উইন্ডোজ বা বিকল্প স্ক্রিন রেজোলিউশন চান, এটি অবশ্যই আদর্শ হবে না এবং এমন একধরণের সমাধান যা উভয় দিকের স্কেলিংয়ের পক্ষে সহায়তা করে তা আরও ভাল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.