প্ররোচিত লাফানো


12

একটি বিষয় যা আমাকে বিস্মিত করে চলেছে, এবং তা হল কীভাবে প্ল্যাটফর্মারটিতে 'মিথ্যা-প্ররোচিত' লাফ প্রয়োগ করা যায়। আমি কী বিষয়ে কথা বলছি তা যদি আপনি না জানেন, তবে মারিও, কির্বি এবং গুহর গল্পের উদ্ধৃতি থেকে লাফিয়ে পড়ুন think তাদের সবার মাঝে মিল কি? ভাল, আপনার জাম্পের উচ্চতা নির্ধারণ করা হয় আপনি কতক্ষণ জাম্প বোতাম টিপে রাখেন।

এই চরিত্রটির 'আবেগগুলি' তাদের লাফানোর আগে তৈরি হয়নি, জেনে গিয়েছিল প্রকৃত পদার্থবিজ্ঞানের মতো, বরং মাঝ-বায়ুতে থাকার সময় - এটি, আপনি খুব ভালভাবে আপনার আঙুলটি সর্বোচ্চ উচ্চতার মাঝের দিকে তুলতে পারবেন এবং এটি বন্ধ হয়ে যাবে, এমনকি যদি এটির এবং সম্পূর্ণ স্টপের মধ্যে বিচ্ছিন্নতা; এ কারণেই আপনি কেবল একটি হপের জন্য ট্যাপ করতে পারেন এবং এটি একটি দীর্ঘ লাফের জন্য ধরে রাখতে পারেন -, তারা কীভাবে তাদের ট্র্যাজেটরিগুলিকে আর্ক হিসাবে রাখে তা দেখে আমি মন্ত্রমুগ্ধ হয়েছি।

আমার বর্তমান বাস্তবায়ন নিম্নলিখিত হিসাবে কাজ করে:

এখানে চিত্র বর্ণনা লিখুন

যখন জাম্প বোতামটি টিপানো হয়, তখন মাধ্যাকর্ষণ বন্ধ হয়ে যায় এবং অবতারের ওয়াই সমন্বয়টি মাধ্যাকর্ষণটির ধ্রুবক মান দ্বারা হ্রাস পায়। উদাহরণস্বরূপ, যদি জিনিসগুলি টিকিট প্রতি জেড ইউনিটে পড়ে তবে এটি প্রতি টিকের জেড ইউনিট বৃদ্ধি পাবে।

একবার বাটনটি প্রকাশিত হয়ে গেলে বা সীমাটি পৌঁছে গেলে অবতারটি এমন পরিমাণে বিচ্ছিন্ন হয় যা তার গতি 0 পর্যন্ত না পৌঁছা পর্যন্ত এটি এক্স ইউনিটগুলিকে কভার করে দেয়; এটি একবার হয়ে গেলে, এটির গতি মাধ্যাকর্ষণের সাথে মেলে না ততক্ষণ এটি ত্বরান্বিত হয় - উদাহরণটিতে আটকে থাকলে আমি বলতে পারি যে এটি 0 থেকে জেড ইউনিট / টিক পর্যন্ত তীব্র হয় যখন এখনও এক্স ইউনিটগুলি coveringাকা থাকে।

এই বাস্তবায়নটি জাম্পটিকে খুব তির্যক করে তোলে এবং অবতারের গতি মাধ্যাকর্ষণ থেকে দ্রুত না হলে এটি আমার বর্তমান প্রকল্পে খুব দ্রুত এগিয়ে যায় (এটি টিকের জন্য প্রায় 4 পিক্সেল গতিবেগ হয় এবং মাধ্যাকর্ষণটি টিকের প্রতি 10 পিক্সেল হয়) 40FPS এর ফ্রেমরেট), এটি এটি অনুভূমিকের চেয়ে আরও উল্লম্ব করে তোলে। প্ল্যাটফর্মারগুলির সাথে পরিচিত তারা লক্ষ্য করবেন যে চরিত্রটির অর্ক লাফ প্রায় সর্বদা তাদের আরও লাফিয়ে উঠতে দেয় এমনকি যদি তারা গেমের মাধ্যাকর্ষণ হিসাবে তত দ্রুত না হয় এবং যখন এটি সঠিকভাবে না খেলেও নিজেকে প্রমাণ করে দেয় খুব পাল্টা স্বজ্ঞাত। আমি এটি জানি কারণ আমি প্রমাণ করতে পারি যে আমার বাস্তবায়ন খুব বিরক্তিকর।

এখানে চিত্র বর্ণনা লিখুন

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

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

আপনাকে আগেই ধন্যবাদ।


3
আপনি কি নীচের প্রশ্ন এবং এর উত্তর (গুলি) একবার দেখেছেন? গেমদেব.স্ট্যাকেক্সেঞ্জঞ্জ
প্রশ্নগুলি /

এই বিষয়টি খুব পরিষ্কার করা হচ্ছে
মুটোহ

1
ঝাঁপ হ্যান্ডলিং এবং মাধ্যাকর্ষণ সম্ভাব্য সদৃশ যদিও এটি সুন্দর ছবি না থাকলেও এটি একই প্রশ্ন।
মাইকেলহাউস

উত্তর:


8

আমার মনে হয় আপনার মূল সমস্যাটি এখানে রয়েছে:

যখন জাম্প বোতামটি টিপানো হয়, তখন মাধ্যাকর্ষণ বন্ধ হয়ে যায় এবং অবতারের ওয়াই সমন্বয়টি মাধ্যাকর্ষণটির ধ্রুবক মান দ্বারা হ্রাস পায়। উদাহরণস্বরূপ, যদি জিনিসগুলি টিকিট প্রতি জেড ইউনিটে পড়ে তবে এটি প্রতি টিকের জেড ইউনিট বৃদ্ধি পাবে।

মাধ্যাকর্ষণ এর মতো কাজ করে না। গুগল বিশদগুলির জন্য "অভিন্ন ত্বরণ গতি", তবে সহজ ভাষায়, অন্য সহকর্মী যেমন বলেছিলেন, মাধ্যাকর্ষণ একটি ত্বরণ নয়, বেগ নয়।

এটিকে সহজভাবে বলতে গেলে, বেগ যখন সময়ের সাথে অবস্থানের পরিবর্তনের ধ্রুবক হার , ত্বরণ হ'ল সময়ের সাথে সাথে বেগের পরিবর্তনের স্থির হার ।

সুতরাং আপনার ব্যবসায়ের প্রথম ক্রমটি হ'ল কেবল আপনার গতি নয়, ত্বরণকে অন্তর্ভুক্ত করার জন্য আপনার পড়ন্ত অ্যালগরিদম পরিবর্তন করা। পরিবর্তে:

pos_y = pos_y + (velocity_y * time_difference)

আপনার মতো কিছু করতে হবে

pos_y = pos_y + (velocity_y * time_difference) + (gravity_y * (time_difference ^ 2) / 2)
velocity_y = velocity_y + (acceleration_y * time_difference)

এইভাবে সবকিছু একটি প্যারাবোলায় পড়বে যা শারীরিকভাবে সঠিক গতি।

এখন, সহজ জাম্পিং বাস্তবায়নের জন্য (আমরা ঠিক এই পরে আপনার সঠিক প্রশ্নের কাছে যাব), আপনি কেবল velocity_yএকটি পছন্দসই মানটিতে সেট করেছেন । যতক্ষণ না acceleration_yআপনার জন্য সাইন এবং আপনার পছন্দসই velocity_yআলাদা থাকে ততক্ষণ আপনার অবজেক্টটি সঠিকভাবে লাফিয়ে উঠবে (অন্য কথায়, আপনি "মাধ্যাকর্ষণ বন্ধ করবেন না" keep আপনি এটি চালিয়ে যান, এবং কেবলমাত্র অবজেক্টের গতিবেগকে কিছু পূর্বনির্ধারিত মান হিসাবে সেট করে)

আপনি খেয়াল করবেন যে velocity_yআপনি যখন লাফানো শুরু করবেন তখন বৃহত্তরটি তত বেশি লাফিয়ে উঠবে। সুতরাং আপনার কাঙ্ক্ষিত প্রভাবটি বাস্তবায়নের জন্য, আপনি লাফাতে এক ধরণের ত্বরণ যোগ করুন (শারীরিক ভাষায়, এর অর্থ একটি শক্তি যোগ করা object

এটি করার জন্য, আপনি আগের মতো একই জিনিসটি করেন তবে এখন ত্বরণ এবং বেগের একই চিহ্ন থাকতে হবে। বোতামটি টিপে যাওয়ার সময় আপনি এটি করুন:

pos_y = pos_y + (velocity_y * time_difference) + (force_y * (time_difference ^ 2) / 2)
velocity_y = velocity_y + (force_y * time_difference)

4

সমাধান হতাশায় বিলম্ব করা নয়। আপনি যখন কোনও বাতাস বাতাসে ফেলে দেন, এটি সর্বোচ্চ উচ্চতায় না পৌঁছানো অবধি স্থির গতিতে চলবে না, তবে প্রেরণার মুহুর্ত থেকে হ্রাস পাবে।

মাধ্যাকর্ষণ একটি বেগ নয়, তবে একটি ত্বরণ। সুতরাং যদি কোনও খেলোয়াড়ের গতি 20 ইউনিটের উপরের হয় এবং মাধ্যাকর্ষণটি -10 ইউনিট হয়, পরবর্তী টিকটিতে, উপরের গতি 10 ইউনিট হবে, পরবর্তী, 0 ইউনিট ইত্যাদি হবে etc.

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

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

এইভাবে, খেলোয়াড় তাদের লাফানোর সময় একটি দুর্দান্ত বক্ররেখা দেখতে পাবে, তারা নিয়মিত মাধ্যাকর্ষণ দ্বারা হ্রাস পাচ্ছে কিনা।


2

ছোট গল্পটি হ'ল: আপনার কোথাও কোথাও কোথাও কোথাও কোথাও কোথাও কোথাও কোথাও নন-প্যারাবলিক বিভাগ থাকতে চলেছেন।

জাম্পিং বাস্তবায়নের সময় আমি কয়েকটি পদ্ধতির চেষ্টা করেছি:

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

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

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

এগুলি ব্যবহার করে দেখুন এবং দেখতে ভাল লাগে।

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