আপনি কীভাবে 2 ডি প্ল্যাটফর্মারটিতে বিভিন্ন দিক অনুপাত পরিচালনা করবেন?


41

অনেক দিন আগে, 4: 3 আপনি পিসিতে খুঁজে পাবেন এমন একমাত্র অ্যাপিট অনুপাত। আজ সবচেয়ে সাধারণ এক 16:10, তবে বেশিরভাগ নতুন মনিটর (বিশেষত ল্যাপটপ) 16: 9

আমি একটি 2 ডি প্লাটফর্মার লিখছি, এবং আমি সিদ্ধান্ত নিতে পারি না কীভাবে আমার সমস্ত ভিন্ন অনুপাত পরিচালনা করা উচিত।

এখানে কিছু ধারনা:

  1. 4: 3 আরও কন্টেন্ট পায়, প্রশস্ত স্ক্রিন উপরে এবং নীচে কাটা হয়
  2. 16: 9 আরও কন্টেন্ট পায়, অন্যগুলি বাম এবং ডানদিকে কাটা হয়
  3. গেমটি 16: 9 এ অন্যান্য এআরসের জন্য কালো অনুভূমিক বারগুলির সাথে রয়েছে
  4. গেমটি 4: 3 এ অন্যান্য এআরসের জন্য কালো উল্লম্ব বারগুলির সাথে রয়েছে

8
আমাদের 5: 4 রেশিওগুলিতে তাদের ভুলে যাবেন না :)
অ্যান্ড্রু রাসেল

2
আমি ভাবছি যদি এটি আরও সাধারণ প্রশ্নে সম্পাদিত হতে পারে তবে " আপনি একাধিক স্ক্রিনের অনুপাতটি কীভাবে পরিচালনা করবেন? " প্ল্যাটফর্মারগুলি কি বিশেষ ক্ষেত্রে রয়েছে?
আনকো

আপনি হরথস্টোন রুটে যেতে পারেন এবং বাম / ডানদিকে মৃত জায়গা থাকতে পারে যা আপনি কেবল এমন পর্দাগুলিতে কাটতেন যা এটি দেখতে পায় না। এটি কালো বারের ইমোর চেয়ে অনেক ভাল (কারণ যদি আপনি সেখানে গুরুত্বহীন কিছু রাখেন তবে আপনার প্লেয়াররা সম্ভবত এটি লক্ষ্য করবেন না!)।
এথন দ্য সাহসী

উত্তর:


12

আপনার গেমটিকে "প্রশস্ত" (কোন ক্ষেত্রে ব্যবহারের পদ্ধতি 3) বা সংকীর্ণ (যার ক্ষেত্রে ব্যবহার পদ্ধতি 4) তৈরি করার কোনও বাধ্যতামূলক কারণ আপনার কাছে না থাকলে , 1 এবং 2 এর সংমিশ্রণে যান (অথবা আপনি যদি চান তবে 3 এবং 4 জিনিসগুলি পর্দার বাইরে লুকান)।

একটি আপস দিক অনুপাত নির্বাচন করুন (16:10 একটি ভাল, এমনকি 16:11)। যদি ব্যবহারকারী 16: 9-এ থাকে তবে তাদের পক্ষে আরও বেশি সামগ্রী দিন এবং তারা 4: 3 এ থাকলে উপরের এবং নীচে আরও বেশি সামগ্রী দিন content

যাই হোক না কেন - আমি আপনার ক্যামেরা শ্রেণিতে এরকম কিছু দিয়ে এটি প্রয়োগ করা ভাল বলে মনে করি:

float scaleToFitWidth = viewport.Width / nominalWorldSize.Width;
float scaleToFitHeight = viewport.Height / nominalWorldSize.Height;
float scale = Math.Min(scaleToFitWidth, scaleToFitHeight); // world to client

কোন পর্যায়ে আপনি বিভিন্ন নামমাত্র বিশ্বের মাপের সাথে পরীক্ষা করতে পারেন (যেমন: বিশ্ব ইউনিটে ক্যামেরার আকার) এবং কেবল সেরাটি নির্বাচন করতে পারেন।


@ অ্যান্ড্রু রাসেল ভাল এবং টু দ্য পয়েন্ট উত্তর! আমি বরং অন্যান্য পছন্দগুলির চেয়ে বিকল্প 3 এবং 4 এর সংমিশ্রণটি পছন্দ করব। প্রায়শই, যা দৃশ্যমান তা গেমের আচরণকে প্রভাবিত করে এবং আমি অনুমান করি যে আমরা সাধারণত আমাদের গেমটি বিভিন্ন হার্ডওয়্যার কনফিগারেশনে আলাদাভাবে আচরণ করতে চাই না। অতএব, বাধ্যতামূলক ভার্চুয়াল দিক অনুপাতের জন্য সম্ভবত "ঝুঁকি" এবং একটি কালো ব্যাকগ্রাউন্ডে রেন্ডার দৃশ্যের অবস্থান নির্ধারণের অতিরিক্ত পরিশ্রমের জন্য নন্দনতত্বের একটি সামান্যতম বিনিময় করা। দিনের শেষে, যদিও এটি গেম মেকানিক্সকে সবচেয়ে ভাল সমাধান করে তার উপর নির্ভর করে।
পাওয়ার্সলেভ

16

ঠিক আছে, পিসিতে একটি মৌলিক পরামর্শ হিসাবে আমি বলব "আপনার ব্যবহারকারী পূর্ণ পর্দা চালাতে চান" এমনটি ধরবেন না। এবং উইন্ডোড মোডে, আপনার আদর্শ অনুপাতটি চয়ন করুন এবং কেবল এটি সরাসরি ব্যবহার করুন।

আমি মনে করি যে ব্যবহারকারীরা পূর্ণ পর্দার সামগ্রী সহ উপস্থাপিত হলে সাধারণত ব্ল্যাক বারগুলি গ্রহণ করে। সুতরাং 3 এবং 4 কৌশলগুলি গ্রহণযোগ্য, যদি আদর্শ না হয়। তাদের সুবিধা রয়েছে যে আপনি সর্বদা জানেন যে আপনি কতটা সামগ্রী উপস্থাপন করছেন: অর্থাত্ কোনও চুপচাপ বাগ নেই যা কেবলমাত্র প্রশস্ত স্ক্রিনে চলার সময় ঘটে।

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

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

ইউআই / এইচইডি উপাদান নির্ধারণ দুটি পদ্ধতির একটিতে যোগাযোগ করা যেতে পারে:

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

এবং যদি আপনি কনসোলের জন্য একটি গেম তৈরি করেন তবে শিরোনাম-নিরাপদ অঞ্চলটি ভুলে যাবেন না!
অ্যান্ড্রু রাসেল

2
খুব ভাল উত্তর। তদতিরিক্ত: এটি যদি কোনও মাল্টিপ্লেয়ার বা অন্যান্য প্রতিযোগিতামূলক খেলা হয় তবে এমন দিকটি দিক-অনুপাতটি চয়ন করুন যাতে এটি অন্যকে কোনও সুবিধা দেয় না। যেমন। যদি আপনার গেমের চলাচল বেশিরভাগ অনুভূমিকভাবে হয় তবে # 2 এর পরিবর্তে # 1 ব্যবহার করুন, কারণ সমাধান # 2, 16: 9 এর সাথে অন্যান্য খেলোয়াড়ের তুলনায় আরও বেশি অনুভূমিক ভিউপোর্ট (এবং চেহারা-এগিয়ে বোনাস) থাকবে। অন্যদিকে সমাধান # 1 কেবল ব্যাকগ্রাউন্ড প্রসারিত করে যা ভাল এবং এর ফলে প্রতিবন্ধকতা দেখা দেয় না। গেমটি উভয় মাত্রায় সমানভাবে চলতে থাকলে, # 3 বা # 4 এর মতো একটি নির্দিষ্ট অনুপাত বেছে নিন।
বাম্মজ্যাক

8

কোনটি আপনার খেলার জন্য সবচেয়ে উপযুক্ত? আপনি যদি কানাবাল্ট (অর্থাত্ একটি গেমটি অনুভূমিক গতির উপর নির্ভর করে) তৈরি করে থাকেন তবে সংক্ষিপ্ত দিকগুলির উপর কালো বার (# 3) সহ একটি বিস্তৃত দিক অনুপাত পার্শ্বীয় গতিবিধি হাইলাইট করার জন্য আদর্শ be অন্যদিকে, যদি আপনার কাছে সুপার স্ম্যাশ ব্রাদার্সের মতো আরও বায়ু খেলা হয় তবে একটি লম্বা স্ক্রিন (# 2 বা # 4) সেরা হবে। আমি আমার সিদ্ধান্তটি গেমের জন্য সবচেয়ে ভাল কাজ করে তার উপর ভিত্তি করে চাই।

আমি অন্যান্য প্রতিক্রিয়াকারীদের সাথে একমত হয়েছি যে উপাদানগুলি যেগুলি একটি ডিসপ্লেতে দৃশ্যমান হতে পারে তবে অন্যটিতে নয় এমন ক্ষেত্রে যত্ন নেওয়া উচিত।


1

ক্যাসল ক্র্যাশারগুলি কিছুটা # 2 এবং কিছুটা # 3 ব্যবহার করে বলে মনে হচ্ছে - আপনি 4: 3 স্ক্রিনে কালো বারগুলি পেয়েছেন এবং খুব সামান্য ছোট দৃশ্যমান অঞ্চলও পাবেন - তবে আপনার সর্বদা প্রান্তগুলির চারপাশে একটি "নিরাপদ অঞ্চল" থাকা উচিত যেখানে আপনি যাই হোক না কেন গুরুত্বপূর্ণ কিছু রাখেন না (সিআরটি টিভিগুলির মতো পর্দার জন্য যেগুলি ক্রপ করে)


1

আরও একটি বিকল্প আছে। আপনি একটি মধ্যবর্তী অনুপাতের জন্য ফ্রেম তৈরি করতে পারেন এবং উভয় সাধারণ রেজোলিউশনে ক্রপিং এবং সম্প্রসারণ (বা সীমানা) উভয়ই করতে পারেন।

আমি বিশ্বাস করি যে টিভি চিত্রগ্রহণটি এইভাবে ফ্রেম করা হয়েছে, যেমন প্রশস্ত স্ক্রিনটি ঠিক দেখা যাচ্ছে (প্রত্যেকে দৃশ্যের মাঝামাঝি তেমন ভিড় করে না), যেখানে 4: 3 এর জন্য ফসল কাটা যথেষ্ট তাত্পর্যপূর্ণ নয় এবং সেখানে ন্যূনতম প্যানিং রয়েছে।


1

এখানে মোবাইল ডিভাইসে একাধিক স্ক্রিন মাপ পরিচালনা করার বিষয়ে একটি ব্লগ পোস্ট রয়েছে এবং এখানে এটির দ্বিতীয় অংশটি কীভাবে জাভাতে লিবিডডিএক্স ব্যবহার করে কোডিং করেছে । এটি অ্যান্ড্রু এর উত্তর মত কিছুটা কিন্তু অন্য কাউকে সাহায্য করতে পারে।

ব্লগ পোস্টটি তিনটি প্রধান পন্থা কভার করে:

  1. উপরে বা পাশে কালো বারগুলি নিয়ে লাইভ করুন।
  2. ভার্চুয়াল ভিউপোর্ট ব্যবহার করুন।
  3. ভাসমান উপাদানগুলি ব্যবহার করুন, যেমন আপনি কোনও ওয়েব পৃষ্ঠার ফ্লেক্সবক্স বিন্যাসে খুঁজে পাবেন।

নং 1 বেশ স্ব স্ব বর্ণনামূলক।

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

নং 3-তে আপনি কীভাবে ফ্লেক্সবক্স বা ফ্লোট ব্যবহার করে কোনও ওয়েব পৃষ্ঠায় উপাদান রাখবেন তার অনুরূপ স্ক্রিনে বস্তু স্থাপন করা জড়িত। উদাহরণস্বরূপ, আপনি উপরের থেকে বিরতি বোতামটি 5 পিক্সেল এবং ডান থেকে 5 পিক্সেল রাখবেন। ডিভাইসটি কী অনুপাতের অনুপাত তা বিবেচনা করেই, বিরতি বোতামটি সর্বদা উপরের ডানদিকে থাকবে।


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