# مباحث متفرقه برنامه نویسی > طراحی و ساخت بازی‌های کامپیوتری > آموزش: چگونه بازی Angry Birds بسازیم؟!

## mahdi7s

با سلام

یک بازی ساده و تک مرحله ای شبیه Angry Birds ساخته ام که توضیحات و آموزش و ... را می توانید از اینجا مشاهده کنید.

موفق باشید

----------


## amin1softco

بازیش جالب بود ولی توضیحات راضی کننده نبود. 
+

----------


## mahdi7s

سلام



> بازیش جالب بود ولی توضیحات راضی کننده نبود.


در زمان نوشتن آن توضیحات بیشتر در نظر داشتم قسمت های کلی و اصلی را توضیح دهم تا جزئیات ساخت بازی-از طرفی وقت درست و حسابی هم نداشتم :خجالت: 
در حال حاضر شما و یا فرد دیگری که آن مطلب را خوانده، اگر احساس می کنید توضیحات قسمتی کم است و یا اصلا در مورد موضوعی توضیح داده نشده آن را به من بگویید، من توضیحات را ویرایش و اعلام می کنم.

!!!- تا آنجایی که من می دانم از علامت + برای جمع دو عدد استفاده می شود! اگر شما منظور خاص دیگری ار آن دارید می توانید آن را به زبان فارسی بگویید! :چشمک: 

موفق باشید

----------


## amin1softco

در کل خوندم خیلی برام سوال پیش اومد تا به اون لینکه مراجعه کردم بازم بررسی می کنم سوالی بود می پرسم ...




> !!!- تا آنجایی که من می دانم از علامت + برای جمع دو عدد استفاده می شود!  اگر شما منظور خاص دیگری ار آن دارید می توانید آن را به زبان فارسی  بگویید!


+ را من بیشتر برای این استفاده می کنم که ارجاع بدم یا اینکه بگم در فکر چیه ازش استفاده می کنم اینجا هم منظور این بوده توضیحات نوشته را با توضیحات خودتون مقایسه کنید .
و از معنی زیر استفاده شده ;)
Plus and minus are Latin terms meaning "more" and "less", respectively.

----------


## mahdi7s

با سلام




> در کل خوندم خیلی برام سوال پیش اومد تا به اون لینکه مراجعه کردم بازم بررسی می کنم سوالی بود می پرسم ...
> + را من بیشتر برای این استفاده می کنم که ارجاع بدم یا اینکه بگم در فکر چیه ازش استفاده می کنم اینجا هم منظور این بوده توضیحات نوشته را با توضیحات خودتون مقایسه کنید .


این طور که من متوجه شدم شما دو مطلب سایتم را باهم قاطی کرده اید! (اگر بد متوجه شدم بیشتر توضیح دهید)
این لینکی که گذاشته اید در مورد Three.js (انجین *سه* بعدی تحت وب) و Ammo.js (پورت جاوااسکریپت موتور فیزیک *سه* بعدی Bullet ) می باشد و مربوط به مطلب قبلی سایتم می شود و در کل هیچ ربطی به مطلب فعلی که یک بازی *دو* بعدی (با استفاده از انجین cocos2d و موتور فیزیک box2d ) هست، ندارد.

موفق باشید.

----------


## amin1softco

والا من این پست جدیدت رو چند خطش رو خوندم چیزی دستگیرم نشد و نفهمیدم چی به چیه رو گوگل سرچ زدم در مورد موتور ammo.js رسیدم به اون لینک و دیگه همونو خوندم یک چیزایی فهمیدم .
الان هنوز مجدد بررسی نکردم الانم که میگی پریدی رو یک موتور دیگه که باید بعداً بخونمش.
در ثانی منم اونقدر که بدردم بخوره یاد میگیرم تنبلی و هزار درد :دییییی

----------


## amin1softco

امروز رفتم دوباره از اول خوندم . (البته بی دقت) خلاصه آخرش این بنده که پشت پرنده است چطوری پیاده شده ؟
ولی در کل بدی هم ننوشته بودی...

----------


## mahdi7s

با سلام




> ... این بنده که پشت پرنده است چطوری پیاده شده ؟...


مثل خود پرنده! البته با یک تفاوت کوچک، برای پرنده زمانی که شما کش تیرکمان را می کشید فقط مکان پرنده تغییر می کند، اما برای آن بند لازم است چرخش هم تغییر کند، به کد زیر(که در رویداد onTouchesMoved در فایل game.js نوشته شده) نگاه کنید:

if (topRubber) {
                rubber.setScaleY(1.1 - ((0.7 / this.slingRadius.max) * length));
                this.slingRubber3.setRotation(-rubberDeg);
                this.slingRubber3.setPosition(cc.pAdd(from, cc.p((length) * Math.cos(rubberAng), (length) * Math.sin(rubberAng))));
            }

نام آن بند در کد slingRubber3 هست. کد تخصیص مکان جدید برای این بند دقیقا شبیه کدی است که برای تعیین مکان پرنده نوشته شده(که در آن پست توضیح دادم). چیز اضافه ای که وجود دارد چرخش آن است، متغیر rubberDeg زاویه ای است که از بردار حاصل از تفریق دو پارامتر to (نقطه ی پایانی کش) و from (نقطه ابتدای کش) بدست آمده (اگر توجه کنید می بیند دو کش تیرکمان نیز چرخشی برابر با بند پشت سر پرنده دارند، برای همین چرخش آن بند را از چرخش آن دو بند محاسبه میکنیم) و در آخر برای تعیین چرخش از متد setRotation استفاده کرده ایم و منفی زاویه بدست آمده را به فرستادیم. چرا منفی زاویه بدست آمده؟ چون در انجین Cocos2D زوایای منفی پاد ساعت گرد و زوایای مثبت ساعت گرد هستند!

موفق باشید.

----------


## mtareh

ممنون خوب بود

----------


## alireza 124

لینکش خرابه :گریه:  اگه کسی اینو داره آپ کنه چون خیلی لازمش دارم :افسرده:

----------

