Crestfallen Philosophy Studio
Open in Telegram
233
Subscribers
No data24 hours
No data7 days
+130 days
Posts Archive
is this a show to you? a game? or life?👾
این برای تو یه سریاله؟ یه بازی؟ یا زندگی؟👾
بالاخره سیستم لودینگ رو درست کردم. فانکشن ساده ای داره و در آینده توضیح میدم
at last the loading system is fixed, and in the near future I will explain how to make it
کدر🧅
🆔@Crestfallen_Studio
خیلی خب دوستان یکی از مشکلات (در واقع نبود یک فانکشن) در شوتینگ حل شد و الان انیمیشن کارکتر با موس تغییر میکنه
کدر🧅
🆔@Crestfallen_Studio
در تاریکی قایم شده 👾
It hides inside the Darkness👾
یه فانکشن ساده که بعدا بهتون توضیح میدم
a simple function which I will explain it later
کدر🧅
🆔 @Crestfallen_Studio
slots: In this one, we specify the size of squares inside the inventory, and of course we have two main and important functions. One is to empty slots and two is to add items. Emptying the slots is simple, but adding them is not. all the specifications of the item must be checked and then added. Pay attention that the slot and the item are related through the inventory UI and if one of the specifications of their name is different, we will encounter a bug. Now that we have created the scene slots, we return to the global script and preload the slots there.
Inventory UI: This is where most of our access to items is and it looks like an inventory. The basis is simple, but dont let me fool you, its a bit complicated. First of all, we call the global in the script to update the inventory, and if you remember, we preloaded the slots scene inside the global, and here we call it through the global itself so that the slots are added to the inventory itself. This was its base, now we have to empty the inventory once again from inside the code and put the update function.
player: here only opening and closing the inventory. You add inventory UI scene to the player and hide it. Through the code, you specify a button as opening and closing it, and here it depends on your taste, you can stop the game when opening the inventory by using the code Engine.time=0 and then play the time again. You must put one instead of zero to unpause the game. I personally made it like this, when the inventory is open, the player's movement speed decreases.
main: Here you spawn the items in the map with the code, which I didnt use because I manually add the item to the map... shame.
کدر🧅
🆔 @Crestfallen_Studio
خیلی خب دوستان عزیز، میریم بر سر اینونتوری سیستم. این برخلاف باور خودم زیادی پیچیده بود(حداقل از نظر خودم) و برام عجیب بود که تقریبا همه بازیا دارنش😂.
همونطور که توی شکل میبینید این سیستم شیش مولفه و اسکریپت داره که یکی یکی همه رو باید بررسی کنیم.
global: این یک اسکریپت هست که در واقع گلوبال شده و دسترسی به اون راحتتره و یک سری از فانکشن های اصلی و مشترک در این سیستم رو داره توی خودش. سایز اینونتوری(اینکه چندتا آیتم جا دارد)، اد کردن آیتم، دور انداختن آیتم و همینطور رفرنس برای خوده پلیر در این اسکریپت هستن. یکی از مهمترین کارها، گذاشتن یک سیگنال به نام آپدیت در تمامی فانکشن ها (به غیر از سایز) هستش که بعدا بدردمون میخوره. بعدا دوباره به اینجا برمیگردیم.
Item: در این اسکریپت و سین، ما مشخصات آیتم رو تعیین میکنیم. دقت کنید که برای هر آیتم یک سین جدا نداریم و همه اون ها در یک سین هستن. اینجا تکسچر، تعداد، تاثیر، نوع آیتم و ... مشخص میکنیم(اینجا هر چیزی که توی بازی خودتون نیاز باشه رو اضاف میکنید) در اینجا فانکشن برداشتن آیتم هم داریم، که اگر رفرنس پلیر که در اسکریپت گلوبالمون داشتیم همخوانی داشت(یعنی اینکه خوده پلیره که وارد محیط تعیین شده بشه) آیتم برداشته بشه، یا به عبارت دیگه یک آیتم از همون جنس به اسلات اضاف بشه و آیتمی که در مپ هست از بین بره.
slots: در این یکی ما اندازه مربع ها و خونه های داخل اینونتوری رو مشخص میکنیم و در البته دوتا فانکشن اصلی و مهم رو داریم. یک خالی کردن اسلات ها و دو اد کردن آیتم ها. خالی اسلات ها که ساده است ولی اد کردن مهم خیلی مهمه، باید همه مشخصات آیتم چک بشن و بعد اد میشن. دقت کنید اسلات و آیتم، از طریق اینونتوری یو آی بهم مرتبطن و اگر یکی از مشخصات اسمشون فرق داشته باشه، به باگ برخورد میکنیم. الان که سین اسلات ها رو ساختیم، به اسکریپت گلوبال بر میگردیم و اسلات ها را اونجا پریلود میکنیم با اسم خودش.
Inventory UI: اینجا بیشتر دسترسی ما به آیتم هاست و شکل قیافه اینونتوری رو داره. پایه و اساسش همینه ولی یکم پیچیده تر هم هست. اول از همه، گلوبال رو در اسکریپت صدا میزنیم برای آپیدت شدن اینونتوری و اگر یادتون باشه داخل گلوبال ما سین اسلات ها رو پریلود کردیم، و اینجا صداش میزنیم از طریق خوده گلوبال تا اسلات ها به خوده اینونتوری اد بشن. این پایه اش بود، حالا باید از دوباره داخل خوده، کد، یک بار دیگه اینوتوری رو خالی کنیم و فانکشن آپدیتش رو بذاریم.
player: در اینجا فقط باز و بسته کردن اینونتوریه. سین یو آی اینونتوری رو به پلیر اد میکنید و مخفی میکنیدش. از طریق کد یک دکمه رو به عنوان باز و بسته کردنش مشخص میکنید، و اینجا دیگه به سلیقه خودتون بستگی داره، میتونید موقع باز کردن اینونتوری بازی رو متوقف کنید که به زبان کد Engine.time=0 و بعد دوباره زمان رو پلی بدید که به جای صفر باید یک رو بذارید. من شخصا گفتم وقتی اینوتوری باز باشه، سرعت حرکت کردن پلیر کم میشه
main:اینجا با کد اسپان کردن آیتم رو مشخص میکنید که من نزدمش، و خودم دستی آیتم رو در نقشه اد میکنم... شرمنده
Alright, dear friends, let's go over the system inventory. Contrary to my belief, this was very complicated (at least in my opinion) and I found it strange that almost all games have it.
As you can see in the picture, this system has six components and scripts that we have to check one by one.
global: This is a script that is actually globalized and easier to access and contains a series of main and common functions in this system. The inventory size (how many items it holds), adding items, discarding items, and the reference for the player itself are in this script. One of the most important things is to put a signal called update in all the functions (except for size), which will get to it later. We will come back here again later.
Item: In this script and scene, we determine the specifications of the item. Pay attention that we don't have a separate scene for each item and they are all in one scene. Here we specify the texture, number, effect, type of item and etc (whatever you want for your game). The player himself who enters the designated area, gets the item, or in other words, adds an item of the same type to the slot and destroys the item in the map.
خیلی خب دوستان عزیز، درباره ساخت چند پایانی بازی میخوام توضیح بدم. در واقع چند پایانی یک مرحله.
برای مثال همین مرحله اول بازی چند سین اصلی داره: ژاندارمری اولیه، اتاق رییس، ژاندارمری با آژیر، ژاندارمری با آژیر خاموش، اتاق رییس، ژاندارمری در آرامش و در آخر کوچه.
حالا داخل ژاندارمری با آژیر خاموش، اونجا چند انتخاب دارید. بعد از ژاندارمری با آژیر خاموش چند سین باقی میمونه؟ سه تا. چندتا انتخاب داریم؟ دوتا(بیشتر ولی اسپویل نمیکنم) پس اگر میخوایم تاثیر انتخاب رو در ذهن مخاطب فرو کنیم، باید برای هر کدوم از اون سین ها، یک وریانت جدید بسازیم با سناریو ها و دیالوگ های جدید. پس برای هر کدوم از سناریو ها یک بولین تعریف میکنیم روی false میذاریمشون. زندانی رو ببری به زندان یک بولین true میشه، زندانی رو بکشی یک بولین دیگه true میشه و ...
البته اینم بگم که استفاده از بولین حتما لازم نیست ولی اینجوری تمیز تره و بهتره.
حالا در یک فانکشن دیگه، ما بر بر اساس اینکه که کدومش TRUE هست به سین بعدی میریم. و به همین منوال ادامه میدیم. در واقع درسته که ما سه تا سین داریم در ظاهر، ولی در واقع شیش تا(بیشتر) داریم
Well, dear friends, I want to explain about the creation of multiple endings. In fact, multiple endings of one stage.
For example, the first stage of the game has several main scenes: the initial gendarmerie, the chief's room, the gendarmerie with the siren, the gendarmerie with the siren off, the chief's room, the gendarmerie in peace and at the end of the alley.
Now inside the Gendarmerie with the siren off, you have a few choices there. After the gendarmerie with the siren off, how many tracks are left? three. How many choices do we have? Two (more but I won't spoil it) so if we want to impress the impact of the choice on the audience, we have to create a new version for each of those scenes with new scenarios and dialogues. So we define a boolean for each of the scenarios and set them to false. Take the prisoner to the prison, a Boolean will be true, kill the prisoner, another Boolean will be true and...
Of course, I must say that it is not necessary to use Bolin, but it is cleaner and better this way.
Now in another function, we go to the next scene based on which one is TRUE. And we continue in the same way. In fact, it is true that we have three scenes in appearance, but in reality, we have six (more).
کدر🧅
🆔 @Crestfallen_Studio
Some enemies will effect your vision in various ways👾
بعضی دشمن هارو روی دید شما به روش های مختلف تاثیر میزارن👾
🆔 @Crestfallen_Studio
+1
در حال پخت و پز هستیم، نمیدونم چی ولی خوشمزه باید باشه!
We are Cooking something. Have no idea what but must be delicious
کدر🧅
🆔 @Crestfallen_Studio
اگر از این بخش خوشتون اومده، لایک کنید تا ادامه بدم و هر دو یا سه روز یک بار، یک بخش دیگه رو توضیح بدم.
کدر🧅
🆔 @Crestfallen_Studio
خیلی خب دوستان، از اونجایی که تعداد لایک ها بالاست چشم توضیح میدم اونم به صورت الگوریتم وار که متوجه بشید.
اول از همه ما سه تا سین داریم؛ پلیر ، تیر و مپ. داخل پلیر چندتا متغییر داریم. یکیش یک بولین هست به نام aim که false میذاریمش. وقتی راست کلیک میکنیم، اون true میشه. که وقتی true بشه انیمیشن تفنگ به دست مفتش هم پلی میشه. البته وقتی aim تبدیل به true بشه، قدرت راه رفتن هم از مفتش میگیریم، اگر براتون سواله که چرا باید اینکار رو بکنیم، ساده است، استرس بیشتر به بازیباز😂
حالا میریم داخل سین تیر: مشخصات تیر رو تعیین و مسیر رفت تیر و سرعتش رو مشخص میکنیم. و البته اینکه وقتی به سطح های خاص برخورد کنه؛ مثل دیوار، نابود بشه.
حالا دوباره بر میگردیم داخل سین پلیر و مینویسیم که وقتی چپ کلیک کنیم، سیگنال شلیک فرستاده بشه و در مسیر تعیین شده با موس حرکت کنه.
الان میریم داخل سین مپ و اونجا و سیم تیر اینستینشیت بشه. (اینستینشیت در واقع دستور برای احضار یک سین به درون یک سین دیگه است مثل وقتی که وارد محیط دفتر شدید و یک دفعه هیولا ظاهر شد، چون وارد محیط از پیش تعیین شده شدید و دستور اینستینشیت رو فعال کردید!)
اگر بد توضیح دادم شرمنده هستم دوستان ولی از همتون ممنونم که علاقه نشون دادید.
کدر🧅
🆔 @Crestfallen_Studio
دوستانی که علاقه دارن که توضیح بدم در رابطه به نحوه ساخت سیستم تیراندازی و فن های کد زنی ری اکت قلب بزنن
کدر🧅
🆔 @Crestfallen_Studio
چه کاری از دستت بر میاد؟🛠تست سیستم تیر اندازی🛠
what can you do?🛠Testing the shooting system🛠 🆔 @Crestfallen_Studio
