জিইউআই উপাদানগুলি কীভাবে যেতে হবে?


12

দ্রষ্টব্য: আমি আমার নিজের জিইউআই সিস্টেম তৈরির পরিকল্পনা করছি। এটি শেখার জন্য হালকা, হালকা ওজনের জন্য উপযুক্ত হবে, কেবল আমার প্রয়োজন বিটগুলি আছে, গেমটির সাথে সম্পর্কযুক্ত ইত্যাদি

আমি এটি কীভাবে করব তা নিয়ে ভাবছিলাম। যে উপাদানগুলি আমি বলতে চাইছি তা হ'ল:

  • রেডিওর বোতামগুলি
  • এখানে বাক্সগুলি প্রবেশ করান
  • বোতাম
  • স্লাইডার
  • চেকবাক্সগুলি

আমি এগুলি কীভাবে তৈরি করব তা সন্ধান করছি না। তবে তারা কীভাবে চলবে তা আরও বেশি।

ধারণা

আমার কাছে প্রতিটি স্টেটের প্রয়োজন যা স্টাফের প্রয়োজন, তাই প্রায় সবগুলিতে উপাদানগুলির একটি ধারক থাকে। প্রতিটি এলিমেন্ট হ'ল একটি জিইউআই টুকরা।

এগুলির প্রত্যেকের অবস্থান, একটি গ্রাফিক ইত্যাদি রয়েছে

আমি যে বিষয়টিকে আরও আটকে রাখি তা হ'ল তাদের যুক্তি।

এর জন্য আমার ধারণা, সামঞ্জস্যতা এবং সরলতার জন্য অনুমতি দেওয়া ছিল একটি মেইনমেনস্টার্টবাটন এড়ানো; একটি অপশনেব্যাকবটন ইত্যাদি ইত্যাদি পরিবর্তে স্লাইডার স্লাইডার 1 করতে সক্ষম হবেন; বাটন শুরু;।

পরিবর্তে, প্রত্যেকের একটি GUI নেমস্পেসের কোনও ফাংশন যেমন গুই :: স্টার্টবটনক্লিক, বা জিইউআই :: কলারস্লাইডারহোভারের জন্য একটি উত্সাহিত :: ফাংশন থাকবে।

আমি কেবল ভাবছিলাম যে এটি ব্যতিক্রমীভাবে ধীর হবে কিনা।

এবং এই বিষয়টির জন্য, গেমসের জন্য জিইউআই করার কি কোনও সহজ, সহজ উপায় আছে? কোন কিউটি, ডাব্লুএক্সউজেডস বা কিছুই নেই।

উত্তর:


15

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

একটি "সহজ" জিনিস আপনি করতে পারেন মাঝারিটি ব্যবহার করার চেষ্টা করা। এখানে এখানে একটি প্রশ্ন আছে

আপনি যদি এটি নিজেই রোল করতে চলেছেন তবে আমি কয়েকটি জিনিস সুপারিশ করব।

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

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

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

  • আপনার প্রথম প্রকল্পের জন্য, আরও সরাসরি রুট গ্রহণ বিবেচনা করুন। হ্যাঁ, আপনার ক্রিয়াযোগ্য ইভেন্টগুলিকে প্রতিনিধি করুন এবং উপাদান তৈরিতে আপনার যা প্রয়োজন তা নির্ধারণ করুন (যেমন onMouseButtonDown, onMouseButtonUp, onHover ইত্যাদি), তবে আপনি যা কিছু করতে চান তা কেবল হার্ড কোডিং বিবেচনা করুন (যেমন রঙ পরিবর্তন, বোতাম টিপুন শব্দগুলি) যতক্ষণ না আপনি কিছু পান get ক্রিয়ামূলক। আপনি যখন এই মুহুর্তে পৌঁছেছেন তখন সেই আচরণের ডেটা তৈরির কথা বিবেচনা করুন (অর্থাত "প্রেস সাউন্ড" এর জন্য বোতামে একটি পরিবর্তনশীল থাকতে পারে, বা আপনার ইউআই উপাদানগুলি যখন আপনি তৈরি করেন তখন আপনি তাদের সাথে সংযুক্তি ব্যবহারের সংজ্ঞাটি ব্যবহার করতে পারেন এমন উপাদানগুলি বিবেচনা করুন)।

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


2
আরও জটিল জিইউআই স্টাফগুলির জন্য আপনাকে খুব শীঘ্রই এক ধরণের লেআউট-পরিচালনা দরকার। HBox এবং VBox এর মতো বেসিক লেআউটগুলি নিখুঁত স্থানাঙ্কের সাথে সমস্ত উপাদানের অবস্থানের চেয়ে ব্যবহার করা আরও সহজ। উদাহরণ: web.archive.org/web/20100410150433/http://doc.qt.nokia.com/4.6/… এটি আপনার জিইউআই ব্যবহার করা সহজ করে তোলে তবে প্রয়োগ করা এত সহজ নয়;)
বাম্মজ্যাক ack

8

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

আমার ব্যক্তিগত প্রিয় ইউআই সিস্টেমটি হ'ল উইন্ডোজ উপস্থাপনা ফাউন্ডেশন (ডাব্লুপিএফ)। এটি সত্যই ইউআই পার্থক্যটিকে পরবর্তী স্তরে নিয়ে যায়। এর আরও কিছু আকর্ষণীয় বৈশিষ্ট্য এখানে দেওয়া হল:

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

  2. স্টাইল এবং টেম্পলেটগুলির মধ্যে "ট্রিগার" অন্তর্ভুক্ত থাকতে পারে। ট্রিগাররা কিছু নির্দিষ্ট ইভেন্ট বা সম্পত্তি মান (বা মানগুলির সংমিশ্রণ) শুনতে এবং শর্তে একটি শৈলী বা টেমপ্লেটের দিকগুলি পরিবর্তন করতে পারে। উদাহরণস্বরূপ, মাউস বোতামের ওপরে ওঠার পরে পটভূমির রঙ পরিবর্তন করার উদ্দেশ্যে একটি বাটন টেমপ্লেটটিতে সাধারণত "ইসমাউসওভার" বৈশিষ্ট্যে ট্রিগার থাকে।

  3. হালকা ওজনের উপাদানগুলি থেকে সর্বনিম্ন কার্যকারিতা সহ পূর্ণ-বিকাশযুক্ত ভারী ওজন নিয়ন্ত্রণ থেকে শুরু করে ইউআই উপাদানগুলির কয়েকটি পৃথক "স্তর" রয়েছে। আপনি কীভাবে আপনার ইউআই গঠন করেন তাতে এটি আপনাকে কিছুটা নমনীয়তা দেয়। সবচেয়ে সহজ ইউআই উপাদান শ্রেণীর, UIElementএর কোনও স্টাইল বা টেম্পলেট নেই এবং কেবলমাত্র ইনপুট ইভেন্টের সর্বাধিক সমর্থন করে। স্থিতি সূচকগুলির মতো সাধারণ উপাদানের জন্য, এই কার্যকারিতাটি আপনার প্রয়োজনীয় সমস্ত হতে পারে। আপনার যদি আরও বিস্তৃত ইনপুট সমর্থনের প্রয়োজন হয় তবে আপনি FrameworkElement(যা প্রসারিত UIElement) থেকে প্রাপ্ত হতে পারেন । Ditionতিহ্যবাহী উইজেটগুলি সাধারণত উত্পন্ন হয় Control, যা FrameworkElementকাস্টম শৈলী এবং টেমপ্লেট সমর্থন (অন্যান্য জিনিসগুলির মধ্যে) প্রসারিত করে এবং যুক্ত করে।

  4. ডাব্লুপিএফ একটি রক্ষণাবেক্ষণযোগ্য, স্কেলযোগ্য, রেজোলিউশন-স্বাধীন ভেক্টর গ্রাফিক্স মডেল ব্যবহার করে। উইন্ডোজে ডাব্লুপিএফ অ্যাপ্লিকেশনগুলি ডাইরেক্ট 3 ডি ব্যবহার করে রেন্ডার এবং রচনা করা হয়।

  5. ডব্লিউপিএফ প্রবর্তনের মধ্যে একটি নতুন ঘোষিত প্রোগ্রামিং ভাষা ছিল যা জ্যামল নামে পরিচিত। এক্সএমএল ভিত্তিক এক্সামল ইউআই "দৃশ্য" ঘোষণার জন্য পছন্দসই ভাষা। এটি আসলে বেশ চতুর এবং এটি প্রথম নজরে একইরকম প্রদর্শিত হলেও এটি XUL (এবং আরও অনেক শক্তিশালী) এর মতো বিদ্যমান ভাষা থেকে মূলত পৃথক।

  6. ডাব্লুপিএফ একটি খুব উন্নত পাঠ্য সাবসিস্টেম আছে। এটি সমস্ত ওপেনটাইপ হরফ বৈশিষ্ট্য, দ্বিদলীয় ক্লিয়ারটাইপ অ্যান্টিয়ালিজিং, সাবপিক্সেল পজিশনিং ইত্যাদি সমর্থন করে supports

"ঠিক আছে, দুর্দান্ত, এখন এটি খেলার বিকাশের সাথে কীভাবে প্রাসঙ্গিক?"

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

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

এছাড়াও একটি ওপেন সোর্স, "ডাব্লুপিএফ / জি (গেমসের জন্য ডাব্লুপিএফ)" ডাব্লুপিএফ-এর নিয়ন্ত্রিত সি ++ / ডাইরেক্ট 3 ডি বাস্তবায়ন রয়েছে]] ( http://wpfg.codeplex.com/ ) যা বিশেষত উইন 32 এর গেমগুলিতে ব্যবহারের জন্য ডিজাইন করা হয়েছে এবং উইন্ডোজ মোবাইল। সক্রিয় বিকাশ বন্ধ হয়ে গেছে বলে মনে হয়, তবে শেষ বার যখন আমি এটি যাচাই করেছিলাম, এটি বরং সম্পূর্ণ বাস্তবায়ন ছিল। মাইক্রোসফ্টের ডাব্লুপিএফ বাস্তবায়নের তুলনায় সত্যিই পাঠ্য সাবসিস্টেমটির অভাব ছিল, তবে গেমসের ক্ষেত্রে এটি কোনও ইস্যু কম নয়। আমি কল্পনা করব যে ডাইরেক্টপি 3-ভিত্তিক গেম ইঞ্জিনের সাথে ডাব্লুপিএফ / জি সংহত করা অপেক্ষাকৃত সহজবোধ্য হবে। এই রুটে যাওয়া আপনাকে ইউআই কাস্টমাইজেশনের জন্য বিস্তৃত সমর্থন সহ একটি অত্যন্ত সক্ষম, রেজোলিউশন-স্বাধীন ইউআই কাঠামো সরবরাহ করতে পারে।

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

আমার চলমান WPF- ভিত্তিক গেম প্রকল্পের স্ক্রিনশট shot


NoesisGUI ডাব্লুপিএফ ব্যবহার করে। এটি বেশ ভাল তবে আমি ডাব্লুপিএফকে জানি না এবং এটি শিখতে আমার খুব কষ্ট হয়। আমি ব্যক্তিগতভাবে একটি ওয়েব স্ট্যাক পদ্ধতির পছন্দ করব।
ব্যবহারকারী 441521

2

আমি তাত্ক্ষণিক জিইউআইতে যাব, এর মতো: http://code.google.com/p/nvidia-widgets/

এনভিডিয়া উইজেটগুলি মলিরকেট থেকে আইএমজিইউআই (তাত্ক্ষণিক জিইউআই) ভিত্তিক।

আমি মনে করি এটি জিইউআই পেতে পারে যতটা সহজ।

আপনার চাহিদা কীসের উপর নির্ভর করে।


1
হ্যাঁ হ্যাঁ, এবং দ্রুত ডিবাগের কাজ বা প্রোটোটাইপিংয়ের জন্য আদর্শ তবে তাত্ক্ষণিক জিইউআইতে ইউআই এবং আপনার গেম যুক্তির মধ্যে সংশ্লেষের পরিমাণ আমাকে ভয় দেয়।
tenpn

2

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

মূলত, সমস্ত বোতাম, চেকবক্স, ইত্যাদি ক্লাস এলিমেন্টের সাবক্লাস হয়; এবং উপাদানগুলির ইভেন্ট থাকে। তারপরে আমাদের কাছে যৌগিক উপাদান রয়েছে (যা তারা নিজেরাই এলিমেন্টের একটি সাবক্লাস), যাতে অন্যান্য উপাদান থাকে। প্রতিটি চক্রের তিনটি পদ্ধতি বলা হয়: প্রক্রিয়া ইভেন্ট (ইভেন্ট), টিক (সময়), এবং অঙ্কন (পৃষ্ঠ)। প্রত্যেকটি যৌগিক উপাদান তখন তার শিশু উপাদানগুলিতে সেই পদ্ধতিগুলি কল করে। এই কলগুলিতে (বিশেষত প্রক্রিয়া ইভেন্ট পদ্ধতি) আমরা কোনও প্রাসঙ্গিক ইভেন্ট বন্ধ করি।

এগুলির সবই পাইথনে (সি ++ এর চেয়ে অনেক ধীর গতির ভাষা) এবং এটি পুরোপুরি সূক্ষ্মভাবে চলে।


2

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

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


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

2

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

আপনার প্রয়োজনীয়তা পেরেক গুরুত্বপূর্ণ। আপনি যদি অনিশ্চিত হন তবে নিজেকে YAGNI মনে করিয়ে দিন


1

ওপেনগিএলের জন্য নির্মিত জিইউআইয়ের একটি উদাহরণ (উত্স কোড এবং সমস্ত) এখানে রয়েছে, বিশেষত থিংল নামে পরিচিত স্লিক 2 ডি এর জন্য যা থিনলেটের একটি বন্দর ।

স্লিক 2 ডি এর জন্য অন্য একটি জিইউআই ছিল এসইউআই যা আপনি যাচাই করতে চাইতে পারেন।

আমি এই উদাহরণগুলি অনুসরণ করব এবং একটি এক্সএমএল চালিত জিইউআই সহ যাব। যদিও এই প্রকল্পগুলি পুরানো / মৃত, আপনি তাদের কাছ থেকে কিছু ধারণা নিতে সক্ষম হতে পারেন।


1

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

উদাহরণস্বরূপ, এগুলি সমস্ত নিয়ন্ত্রণ, যার অবস্থান, আকার, শিশু নিয়ন্ত্রণের তালিকা, তার পিতামাতার একটি উল্লেখ, Textনিয়ন্ত্রণ যা কিছু ব্যবহার করতে পারে তার জন্য সম্পত্তি, পাশাপাশি বিভিন্ন অতিরিক্ত কাজ এবং পূর্বনির্ধারিত ক্রিয়া।

এগুলির মধ্যে বিভিন্ন ইভেন্ট যেমন Click, MouseOverএবং রয়েছে Resizing

উদাহরণস্বরূপ, যখন কোনও শিশু নিয়ন্ত্রণ পরিবর্তন করা হয়, তখন এটির বিন্যাসটি পরিবর্তিত চেইনের উপরে একটি বিজ্ঞপ্তি প্রেরণ করে এবং তারপরে সমস্ত অভিভাবক কল করে PerformLayout()

পাশাপাশি, অটো-সাইজিং এবং স্বয়ংক্রিয়ভাবে সাজানো এই জিইউআইয়ের সাধারণ বৈশিষ্ট্য যা প্রোগ্রামারদের কেবল নিয়ন্ত্রণ যোগ করতে দেয় এবং প্যারেন্ট নিয়ন্ত্রণগুলি স্বয়ংক্রিয়ভাবে সেগুলি সামঞ্জস্য বা ব্যবস্থা করে দেয়।


1

স্বার্থের জন্য আমি ভেবেছিলাম আমি স্কেলফর্মটি ফেলে দেব । মূলত শিল্পীরা চিত্রক, ফটোশপ ইত্যাদি ব্যবহার করতে পারেন, তারপরে ইউআই ডিজাইনার সমস্ত ইন্টারঅ্যাক্টিভিটি বিন্যাস করতে ফ্ল্যাশ ব্যবহার করেন। তারপরে স্কেলফর্ম এটিকে আপনার ইঞ্জিনের কোডে রূপান্তরিত করে (এটি ব্যবহার না করায় এটি আমার বোঝার পক্ষে ভাল। ক্রেসিস ওয়ারহেড তাদের লবির জন্য এই সিস্টেমটি ব্যবহার করেছিলেন।

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