টানেল প্রভাব cocos2d


12

আমি COCOS2D (আইওএস) এ একটি অনুরূপ টানেল প্রভাব তৈরি করতে চাই। যে কেউ কোনও পয়েন্টার পরামর্শ দিতে পারে?

রেফ ইমেজ

রেফ ভিডিও 1

রেফ ভিডিও 2

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

এটির সাথে, এটি সিসিএসকেলটো দিয়ে অ্যানিমেট করা এবং অ্যানিমেশন সময়কাল সহ আকারটি ২.০ এ পরিবর্তন করা হলেও এটি কোনওভাবেই রেফারেন্সে প্রদর্শিত টানেলের প্রভাবের কাছে আসে না।

ধন্যবাদ, স্যাম

উত্তর:


10

আমি এই প্রভাবটির লেখকের কাছ থেকে প্রয়োগের বিবরণ পেয়েছি:

এটি 2 ডি বিমানের গভীরতার মায়া তৈরি করতে অবশ্যই অনেক কাজ হয়েছিল।

যদিও নীতিটি খুব সহজ: বৃত্তগুলি স্ক্রিনের মাঝামাঝি 0 দিয়ে স্কেল দিয়ে শুরু হয় Then , তৃতীয়, এবং চতুর্থ এবং আরও অনেক কিছু।

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

চেনাশোনাগুলি স্ক্রিনের বাইরে চলে যাওয়ার পরে এগুলি দ্রুত বিবর্ণ হয়ে আবার প্রাথমিক অবস্থানে ফেলা হয় (স্মৃতি সংরক্ষণ করার জন্য যাতে আমার নতুন চেনাশোনা তৈরি করার প্রয়োজন হয় না তবে আমি একই পর্বগুলি পুনরায় ব্যবহার করি)।

আমার ইংরেজি সম্পর্কে দুঃখিত, তবে আমি আশা করি যে সাধারণ ধারণাটি ব্যাখ্যা করেছে :)


1

আপনি প্রায় জেড মান এবং স্কেল হ্রাস করার জন্য একাধিক রিং স্প্রিট পেয়েছেন। শুধু তাদের সব কেন্দ্র করবেন না।

আপনি যে পয়েন্টে সুড়ঙ্গটি দূরের ইভেন্ট দিগন্তে আঘাত করতে চান সেখানে আপনাকে সেই পয়েন্টটি ট্র্যাক করে রাখতে হবে। আপনি চাইলে সময়ের সাথে সাথে এই পয়েন্টটি স্থানান্তর করতে পারেন।

তারপর, হিসাবে আপনি প্রতিটি নতুন পরী স্থান, যে সময়ে এটি সঞ্চালিত, এটা ক্ষুদ্র, এটা অস্বচ্ছতা নির্ধারণ করে কিভাবে আপনি চান, তারপর একটি শুরু CCSpawnসঙ্গে CCScaleToএবং CCFadeToউদাহরণস্বরূপ:

sprite->runAction(CCSpawn::create(
    CCScaleTo::create(2.0f, 1.5f),
    CCFadeTo::create(5.0f, 255),
    nullptr));

সমস্ত স্প্রিটগুলি প্রাক-তৈরি করুন এবং এটিকে দক্ষ রাখতে পিছনে কোনটি রয়েছে তা ঘোরান।


1

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


0

সত্যি কথা বলতে, আমি মনে করি না যে 2 ডি ক্যামেরা ব্যবহার করে চিত্রটি রেন্ডার হয়েছে। দেখে মনে হচ্ছে গেমটি 3 ডি রেন্ডারিং সিস্টেম ব্যবহার করে রেন্ডার করা হয়েছে। আপনি যেহেতু কোকোস 2 ডি ব্যবহার করতে চান, তাই আপনাকে সেই 3 ডি ট্রান্সমোরেশন ম্যাট্রিক্সটি নিজেই অনুকরণ করতে হবে। এখানে একটি ধারণা শুরু করতে হবে: আপনি একটি 3D দৃশ্যে জানেন, প্রতিটি বস্তু 3 টি স্কেলারের মান, x, y এবং z দ্বারা সংজ্ঞায়িত হয়। আপনি যে সহজ পদ্ধতিটি ব্যবহার করতে পারেন তা হ'ল আপনার পরামর্শ অনুসারে স্কেলিং, তবে আপনি যেমন প্রয়োগ করেছিলেন তেমন নয়! ccScaleToসময়ের সাথে সাথে রৈখিক স্কেলিংয়ের ফলস্বরূপ, যা 3 ডি বোধ তৈরি করে না। আপনি মান দ্বারা মান স্কেলিং দিয়ে শুরু করতে পারেন 1/z। এটি আপনি ভাবতে পারেন এমন সহজ প্রজেকশন ম্যাট্রিক্সের সাথে একরকম অভিন্ন! যদি আপনি এমনটি বোধ করেনও যা আপনাকে সন্তুষ্ট করে না তবে আরও আধুনিক এবং আরও জটিল প্রজেকশন ম্যাট্রিকগুলি একবার দেখুন

পার্শ্ব দ্রষ্টব্য: কোকোস 2 ডি তে কাস্টম প্রজেকশন ম্যাট্রিক্স প্রয়োগ করা কিছুটা নোংরা হবে। আপনি যদি সত্যিই এর প্রভাবটি পছন্দ না করেন তবে আমি দৃ strongly়ভাবে আপনার ইঞ্জিনটি 3 ডি সমর্থন সহ একটিতে পরিবর্তিত করার পরামর্শ দিচ্ছি।


জিনিসগুলিকে আরও জটিল করে তুলতে আমি 3 ডি প্রবর্তন করতে চাই না তবে এই প্রভাবটি নকল টানেল ভিউ রেন্ডার করার জন্য কোকোস 2 ডি তে তৈরি করা হয়েছে (এই গেমটির লেখকের সাথে আমার কিছুক্ষণ আগে কথোপকথন হয়েছিল)
সৌরভ পাসোলিয়া

0

সিউডো কোডে আমি এটি কীভাবে করেছি তা এখানে

টানেল-প্রভাব সক্রিয় করুন:

  1. একটি সিসিপিপিটফোরভার তৈরি করুন (সিসিফুঙ্ক (ক্রিয়েট সার্কেল))
  2. "ভিউনোড" নামে আপনার দৃশ্যে একটি নোড যুক্ত করুন

createCircle ()

  1. দৃশ্যের কেন্দ্রে স্তর তৈরি করুন tion শিশু হিসাবে এটি "ভিউনোডে" যুক্ত করুন।
  2. রান অ্যাকশন: সিসি সিক্যুইয়েন্স (সিসিএসিএক্সপেনসিয়েনাল ইন (সিসিএসসেকেলটো), সিসিআরসিমেভসেল্ফ)
  3. আপনার লেয়ারে স্টাফ রাখুন, যেমন সিরকেলস, ​​শত্রু, স্পেসশিপ, যা কিছু হোক।

নিয়ন্ত্রণ (প্যারাল্যাক্স সহ)

  1. টানেল-প্রভাব সহ সমস্ত স্তরগুলির জন্য (যেমন ভিউনোডের শিশুরা)
  2. টাচ অবস্থানের ভিত্তিতে অ্যাঙ্কর অবস্থান আপডেট করুন।

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

অ্যাঙ্করটি স্থাপন করা সমস্ত স্তরগুলিতে একই আন্দোলন সৃষ্টি করে তা নিশ্চিত করার জন্য আপনি সমস্ত জিনিসকে একই আকারের স্তরগুলিতে মুড়ে রাখুন।

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