Crestfallen Philosophy Studio
Open in Telegram
233
Subscribers
No data24 hours
No data7 days
+130 days
Posts Archive
خیلی هم خب دوستان، میریم بر سر سیستم جدید چند پایانی.
تو سیستم قبلی گفتیم که باید برای هر کدوم از اتفاقات چند سین جدا داشته باشیم ولی اینجا دیگه نیازی نیست. اینجا فقط و فقط به یک اسکریپت گلوبال نیاز داریم. در اونجا یک استرینگ مشخص میکنیم. حالا داخل اسکریپت خوده بازی، با توجه به انتخاباتمون، استرینگ رو تغییر میدیم. بعد در مراحل، شرط میذاریم با مشخصه استرینگ. برای مثال، وقتی مجرم رو بکشید، استرینگ رو به KILL تغییر میدیم، اگر به سلول برش گردونیم به CELL و اگر آزاد بشه FREE. حالا وقتی وارد اتاق رییس میشیم، میاییم مشخصات اتاق و دیالوگ ها رو با این استرینگ تغییر میدیم.
کدر🧅
🆔 @Crestfallen_Studio
WILSON... WILSON... LO SIONTO
گرمابه در حال تکمیله دوستان.
کدر🧅
🆔 @Crestfallen_Studio
دوستان، من رشته بازی سازی برای کارشناسی ارشد قبول شدم.
SO LETS GOOOOOOOOOOOOOOOOOO
We're Cooking something👾
اتاق دکتر هم تقریبا تکمیل شد👾
کدر🧅
🆔 @Crestfallen_Studio
Repost from N/a
Fear Anthology: Screaming Woods Flashlight and Environment Test
خیلی خب میریم سر موومنت و حرکت کردن. کلا فانکشن ساده ایه.
داخل سین پلیر، یک متغییر const(فرقشون با متغییرهای دیگه اینه که این متغییر مقدارش ثابت میمونه و هیچی تغییرش نمیده) برای سرعت مشخص میکنیم (من خودم چندتا مشخص کردم، یکیش سرعت معمولیه یکی هم سرعت زیاد که با گرفتن شیفت تغییر میکنه). فانکشن حرکت، یک خط کد داریم.
input_vector = Input.get_vector("ui_left","ui_right","ui_up","ui_down"). که با این ما در واقع جهت حرکت رو مشخص میکنیم. یک فانکشن ووید داریم که داخل اون سرعت رو تعیین میکنیم و داخل فانکشن اصلی صداش میکنیم. و حالا فانکشن حرکت رو داخل فانکشن فیزیک پراسس صدا میزنیمش. حالا اگر مثل من هستید و علاقه شدیدی به جزییات دارید، میتونید اصطکاک هم عضوی از کد کنید. فرمول نسبتا ساده ای داره ولی من خودم نمیدونستم چطور بنویسمش پس سرچش کردم. برای اصطکاک هم یک const دیگه لازم داریم که مقدارش باید خییییییییییلییییی بالا باشه تا حالت سر خوردن کارکتر نداشته باشه. یکی از دلایل اضاف کردن اصطکاک این بود که میخواستم مپ بازی حالت زنده تری بگیره، پس چندتا کانست برای اصطکاک زدم، یکی خیلی بالا که برای حالت معمولیه، یکی هم برای جاهای لیزه، مثل جایی که تر باشه، گل آلود داخل روستا.
velocity-=velocity.normalized()*amountدر صورتی این کد عملی میشه که کارکتر در حال حرکت باشه. و در غیر اینصورت هیچی. و این فانکشن رو باز داخل فانکشن حرکت صدا میزنیمش. داخل فانکشن حرکت وقتی این فانکشن رو صدا میزنیم، و درون پرانتز، متغییر اصطکاک رو مینویسیم که جای amount میشینه تمام... الان یه کارکتر داریم که حرکت میکنه و میتونه لیز بخوره. Very well, let's go to the movement. It is a simple function. Inside Scene Player, we specify a const variable (the difference from other variables is that this variable's value remains constant and nothing changes it) for speed (I specified several myself, one is normal speed and one is high speed that changes when taking a shift). The movement function is one line of code.
input_vector = Input.get_vector("ui_left","ui_right","ui_up","ui_down"). With this we actually determine the direction of movement. We have a void function in which we determine the speed and call it inside the main function. And now we call the movement function inside the physics function of the process. Now, if you are like me and have a keen eye for detail, you can make friction a part of the code. It has a relatively simple formula, but I didn't know how to write it myself, so I looked it up. For friction, we need another const, whose value must be very high so that the character does not slide. One of the reasons for adding friction was that I wanted the game map to be more alive, so I made several consts for friction, one very high for normal mode, and one for slippery places, like wet, muddy places in the village.
velocity-=velocity.normalized()*amountThis code will be executed if the character is moving. And otherwise nothing. And we call this function again inside the movement function. Inside the motion function, when we call this function, and inside the bracket, we write the friction variable that takes the place of amount. That's it... now we have a character that moves and can slip. کدر🧅 🆔@Crestfallen_Studio
من قرار بود movement رو بگم....😂
آخ فردا اون رو میگم من از همه عذر میخوام
We put a series of letters inside the game map so that the players will be attracted and read them and get to know the game world better. Well, we gave one of these letters an area2d so that if the player is tempted of reading it and enters this environment, the monster gets instantiated. We build a special invisible wall so that the monster cannot leave the office (no monster is worse than the work environment, this was my message😂.) Our work is practically complete. But we can still be better. We give a shader to the map, a shader like vcr, the code of these shaders is full of trouble and difficult, so my suggestion is that you can find them on the internet. Now you hide the shader, and if the player enters the specified environment, this shader will be shown, and if it leaves the monster's field of view, the shader's visibility will return to the opposite state (shader.visible=!shader.visible). Now we have a really scary monster.
کدر🧅
🆔@Crestfallen_Studio
خیلی خب دوستان، درباره سیستم هیولا میخوام توضیح بدم.
سیستم نسبتا سادهای و عملا به چهارتا سین نیاز هست، خوده هیولا، پلیر، تیر و مپ بازی.
هیولا: بعد از تعیین انیمیشنش، چندتا متغییر باید مشخص بشه که مهمترینشون، متغییر هدف هست که آدرس سین پلیر داخل سین مپ هستش. من خودم اینجا یک متغییر بولیین گذاشتم به نام follow گذاشتم که همون اول کار روی false میذاریمش. یک area2d به هیولا میدیم. این برای اینه که وقتی کارکتر و یا پلیر وارد این محیط میشه، follow تبدیل به true میشه و وقتی خارج میشه false میشه. حالا داخل خوده کد، مینویسم که اگر follow==true بود و هدف هم مخالف تهی بود(target!=null) با سرعت تعیین شده، به مختصاتی که پلیر قرار داره برو، در غیر این صورت از سر جات تکون نخور. و البته یک area2d دیگه به هیولا میدیم که اگر پلیر واردش بشه، بازیباز ببازه و وارد سین game over بشه.
یکی دیگه از فانکشن هایی که نوشته میشه اینجا فانکشن stun هستش، که مینویسیم تایمر استارت بخوره، سرعت هیولا 1 بشه و کولیژن شیپ هیولا از کار بیوفته. و وقتی تایمر به اتمام برسه، سرعت هیولا یک و نیم برابر میشه، کولیژن شیپ هیولا دوباره فعال بشه. و داخل سین تیر، وقتی گلوله به هیولا برخورد کنه، این فانکشن stun صدا زده میشه.
حالا عملا شما یک دشمن دارید که دنبالتون میاد اگر در محدوده دیدش باشید، میتونه بکشتتون و بهش هم میتونید تیر بزنید. عملا تکمیله، ولی کار ما هنوز تموم نشده.
داخل مپ بازی ما یک سری نامه گذاشتیم که بازیباز ها جذبشون بشن و بخوننشون و یکم با جهان بازی بیشتر آشنا بشن. خب ما به یکی از این نامه ها، یک area2d دادیم که اگر پلیر فکر خوندنش به سرش بزنه و وارد این محیط بشه، هیولا اینستینشیت بشه. یک سری دیوار نامرئی خاص میکشیم که هیولا نتونه از دفتر کار خارج بشه(هیچ هیولایی بدتر از محیط کار نیست، این پیام من بود😂. ) کارمون عملا تکمیله. اما بازم میتونیم بهتر باشیم. به مپ یک شیدر میدیم، شیدری مثل vcr که کد این شیدر ها پر از دردسره زدنشون و سخته، پس پیشنهاد من اینه که میتونید در اینترنت پیداشون کنید. حالا اون رو Hide میکنید و در صورتی که پلیر وارد محیط مشخص شده بشه، این شیدر Show میشه و اگر از محیط دید هیولا خارج بشه، ویزیبلیتی شیدر به حالت مخالف بر میگرده (shader.visible=!shader.visible) . الان ما یک هیولای واقعا ترسناک داریم.
Alright friends, I want to explain about the monster system.
It is a relatively simple system and practically four scenes are needed, the monster itself, the player, the bullet and the map.
Monster: After determining its animation, several variables must be specified, the most important of which is the target variable, which is the address of the player scene inside the map scene. I myself put a Boolean variable here called follow, which we set to false at the very beginning. We give an area2d to the monster. This is because when the character or player enters this environment, follow becomes true and when it leaves, it becomes false agin. Now inside the code itself, I write that if follow==true and the target is the opposite of null (target!=null), go to the coordinates where the player is going with the specified speed, otherwise don't move. And of course, we will give another area2d to the monster, if the player enters it, the player will lose and enter the game over scene.
Another function that is written here is the stun function, which we write so that the timer starts, the speed of the monster becomes 1, and the collision shape of the monster stops working. And when the timer ends, the speed of the monster will be x1.5 , the collision shape of the monster will be activated again. And inside the shooting scene, when the bullet hits the monster, this stun function is called.
Now you practically have an enemy who will follow you if you are within his range of vision, it can kill you, and you can shoot it. It is practically completed, but our work is not finished yet.
Repost from Pixels are beautiful
خب دوستان این بازی اولیه که من دارم تو تلگرام ریلیز میکنم (تو گیم جولتم میزارمش بزودی)
اگر مشکلی چیزی داشت بزارید رو اینکه بازی چلنج بودش و اینکه 3 هفته وقت داشتم براش
پس یس
اگر باگی چیزی دیدید حتما بهم بگید
این بازی مال کامپیوتره!
بزودی پورت اندرویدشم درست میکنم
اگر خوشتون اومد خوشحال میشم که حمایت کنید!
#Game
دوستان من از همتون عذر میخوام، فایلی که امروز صبح فرستاده شده بوده فایل قدیمی بوده و فایل جدید رو اشتباها نفرستادیم. این فایل جدیده و بدون ایراد.
دوستار شما
کدر🧅
👾ورژن نهایی پروتوتایپ👾
ℹ️ تغییرات که اعمال شده:
🛠🛠🛠🛠🛠🛠🛠
1⃣ افزوده شدن تفنگ. 🎩 2⃣ افزوده شدن سکانس قطار. 🚂 3⃣ افزوده شدن لود بلخره. 😅 4⃣ مدل سه بعدی و کمی تغییر مکالمه ها. 🗣 5⃣ حل مشکل انیمیشن حرکت.🚶♂➡️ 6⃣ بهبود صدا. 🔈 7⃣ رفع اکثریت باگ ها. 🪰 8⃣ از این به بعد تصمیم هاتون با اعمالتونه نه با انتخاب گزینه. ☯ 9⃣ بهبود کیفیت کلی. 🕓ممنون از همتون🙏 مخصوصا از کامیار🧅 که اکثریت(کلش عملا😂) کد رو زد و پوریا👨🦲 که قراره مدل های سه بعدی رو بزنه برای بازی. متشکرم که توی این پروژه همراهم هستید.❤️🔥 ممنون میشیم نظر بدید تو کامنتا.🫡 همچنین اگر خوشتون اومد شیرش کنید پیش دوستانتان.❤️ Alt + f4 to exit
