کانال بازی سازی تلگرام
سی پلاس پلاس+openGL :: آموزش ساخت بازی اندروید+پکیج های تخصصی

آموزش ساخت بازی اندروید+پکیج های تخصصی

هرگز دل من ز علم محروم نشد
کم ماند ز اسرار که معلوم نشد
هفتاد و دو سال فکر کردم شب و روز
معلومم شد که هیچ معلوم نشد
---
تمام اعمالی که انجام می دهیم، حتی اگر ذره ای و مثقالی باشد، به خودمان باز می گردد و بازتابش آنها را در زندگی خواهیم دید. زلزال ۷
او کسی است که (روح) شما را در شب (به هنگام خواب) میگیرد; و از آنچه در روز کرده‏اید، با خبر است; سپس در روز شما را (از خواب) برمیانگیزد; و (این وضع همچنان ادامه مییابد) تا سرآمد معینی فرا رسد; سپس بازگشت شما به سوی اوست; و سپس شما را از آنچه عمل میکردید، با خبر میسازد. انعام ۶۰
دلها به یاد خدا آرام میگیرد. رعد آیه ۲۷
بدانید زندگی دنیا تنها بازی و سرگرمی، و تجمل پرستی و تفاخر در میان شما و افزون طلبی در اموال و فرزندان است . حدید آیه ۲۰
آن خدایی که آدمی را از خون بسته (که تحول نطفه است) بیافرید.
بخوان و (بدان که) پروردگار تو کریم‌ترین کریمان عالم است.
آن خدایی که بشر را علم نوشتن به قلم آموخت.
به آدمی آنچه را که نمی‌دانست تعلیم داد.
راستی که انسان سرکش و مغرور می‌شود.
چون که خود را در غنا و دارایی ببیند. علق ۲- ۷
این زندگانی چند روزه دنیا افسوس و بازیچه‌ای بیش نیست، عنکبوت ۶۴
در روی زمین به تکبر راه مرو که نمی توانی زمین را بشکافی و هرگز قامتت به بلندای کوهها نمی رسد. اسراء ۳۷
در آنچه خداوند بر تو بخشیده است، سرای آخرت را بجوی و سهم خود را از دنیا فراموش مکن و همانگونه که خدا به تو نیکی کرده است نیکی کن و هرگز فساد در زمین منما که خدا مفسدان را دوست ندارد. قصص ۷۷
و هرگاه نعمت و رحمتی به انسان بچشانیم و سپس آن را از او برگیریم او مأیوس و نومید میشود و به کفران و ناسپاسی بر میخیزد. هود ۹
بندگان مرا آگاه ساز که من بسیار آمرزنده و مهربانم. حجر ۴۹
از رحمت خدا نا امید مباشید که جز کافر هیچ کس از رحمت خدا نا امید نیست. یوسف ۸۷
پس به یاد من باشید تا به یاد شما باشم. بقره ۱۵۲
زندگانی دنیا چیزی جز متاع فریبنده نیست . آل عمران ۱۸۵
از آنچه به شما روزی داده ایم پیش از آنکه روزی فرا رسد که نه معامله ای وجود دارد و نه دوستی و شفاعت ، انفاق کنید. بقره ٢۴۵
بسا چیزی را ناخوش داشته باشید که آن به سود شماست و بسا چیزی را دوست داشته باشید که به زیان شماست، و خدا میداند و شما نمیدانید. بقره ۲۱۶
ما آیات (خود) را برای شما بیان کردیم شاید اندیشه کنید...حدید ۱۷

پیوندهای روزانه
پیوندها

۸ مطلب با موضوع «سی پلاس پلاس+openGL» ثبت شده است

gameover.blog.ir


http://s9.picofile.com/file/8275584984/logo.jpg
۰ نظر موافقین ۰ مخالفین ۰ ۰۲ شهریور ۹۵ ، ۰۳:۰۱
مدیرکل

gameover.blog.ir

Overloading یا سربارگذاری:

متد های که نام یکسان دارند اما پارامتر های ورودی متفاوتی دارند، برای مثال  public bool Retrieve() و public bool Retrieve(int id) در این مثال متد Retrieve دارای دو overload است. OverLoading زمانی است که شما چند متد همنام در یک محدوده (scope) با امضاهای (signatures) متفاوت دارید .
 همچنین Overloading چند ریختی زمان کامپایل (Compile Time Polymorphism) می باشد .
 

//Overloading
public class test
{
    public void getStuff(int id)
    {}
    public void getStuff(string name)
    {}
}

Overriding یک اصل یا قانون است که به شما اجازه می دهد تا قابلیت های متدها را در کلاس های مشتق شده تغییر دهید
همچنین Overriding چند ریختی زمان اجرا (Run Time Polymorphism) می باشد.

 

//Overriding
public class test
{
        public virtual getStuff(int id)
        {
            //Get stuff default location
        }
}
 
public class test2 : test
{
        public override getStuff(int id)
        {
            //base.getStuff(id);
            //or - Get stuff new location
        }
}


منبع:
http://mazizi.blog.ir/1393/12/04/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-Overloading-%D9%88-Overriding-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE
۰ نظر موافقین ۰ مخالفین ۰ ۱۱ اسفند ۹۴ ، ۰۷:۴۲
مدیرکل

منبع:gameover.blog.ir

اینم 30 تا PDF فارسی از کتابی که مدتها قبل و حدود 10 سال پیش تو بازار خریده بود داداشم :

http://s5.picofile.com/file/8126131742/openGL.jpg


فهرست مطالب :

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ دی ۹۴ ، ۱۲:۳۴
مدیرکل

نکته:اولا این کتاب خیلی کمیاب هست و حتی توی سایت های خارجی هم بسیار نادر هست ولی ما این کتاب رو به رایگان براتون می ذاریم تا دانلود بفرمایید.

تعداد صفحه: نزدیک 800


نکته ی بعدی: افراد عادی که با انجین های بازی سازی unity کار نکردن یا کلا قصد ساخت بازی (چه دو بعدی چه سه بعدی) رو دارن نیازی به این کتاب نیست و باید اول بدون درگیر شدن با جزئیات،برن مستقیم با یونیتی کار کنن . چون در openGL فقط کارهای گرافیک رو انجام میدیم تحت Visual c ++ و خروجی اندروید و غیره هم در کار نیست. یه خروجی صرفا EXE می سازیم که کتابخانه ها و فایل های DLL و Lib یا ... رو به محیط ویژوال استادیو add reference و تیک می زنیم و فایل dll رو در c:\windows\system32 میریزیم و lib رو هم در پوشه ی include و الی آخر... .

این کتاب برای زمانی هست که شما حرفه ای یونیتی یا انیجن های دیگه می شید.بین انجین های دیگه مثل cry یا unreal و unity و game maker studio (خود گیم میکر منسوخ هست و حتما استادیو خروجی اندروید میده) و OGRE و torque 3d و  S2Engine HD  هم هم خودتون مختارید با چی کار کنید. اما بنده توصیه ام اینه که شروع کارتون با unity باشه بعدش حالا خواستید برید سمت انجین های دیگه تا تست کنید و خودتون تشخیص بدید برتری های یونیتی رو. فقط فیزیک یونتیی کمی توی قسمت Rigid body و سرعت های بالا ممکنه ضعیف عمل کنه که اونا رو باید با تکنیک پیاده سازی کرد و شاید آنریل توی سیستم های فیزیک قوی تر باشه.اما باز هم شروع کار یونیتی از نظر ما.


بعد از تسلط به یونیتی و شروع بازی سازی،اونجایی که دوست دارید مطالعات آزاد تری رو در زمینه ی کدنویسی سخت تر با open GL انجام بدید(هر چند منسوخ هست) فقط به صرف اینکه ایده های ساخت انجین های بازی سازی رو درک کنید می تونید از کتب openGL مثل این و سایر کتب و directX و .... کمک بگیرد.(فرق open GL هم با directX اینه که openGL از توابع بیشتری استفاده می کنه و اشیای سه بعدی و ترسیمات texture و فایل های عکس و انداخت اونا روی مدل و shader ها(متریال های روی مدل ها) و نورپردازی ها و سایه گذاری ها و به طور کلی فقط کار گرافیک رو انجام میده و با صدا و سایر جنبه ها کاری نداره.(مباحث دیگه مثل openAL یا Cross Platform 3D Audio مربوط به صدا) و Directx هم جزو برنامه نویسی های حرفه ای تر هست که مستقیما با سحت افزار درگیر می شید و اونجا برای حرفه ای ها هست که دوست دارن کدهاشون با سرعت بیشتری بدون تبدیلات اضافه به فرمت اجرایی روی سیستم عامل ویندوز در بیاد و الی آخر...)

این شما و این یکی از بهترین کتاب های openGL (فقط حرفه ای ها مطالعه کنن و مبتدیان سعی کنید درگیر جزئیات این کتاب نشید که چطوری بازی بسازیم و از کجا شروع کنیم.اگه سوالی در رابطه با بازی سازی دارید در وبلاگ نظر بدید بنده ی حقیر راهنماییتون خواهم کرد انشاءا... . چون خودم مدت ها سر در گم بودم و چندین سال در این باب تحقیق کردم و البته باز هم بی سواد هستم در برابر اساتید و تمام شما بزرگواران. .و من ا... توفیق):


http://pxhst.co/avaxhome/ad/ac/0014acad_medium.jpeg

http://www.mediafire.com/download/fs1wa0a33ow1cvb/OpenGL+Game+Programming+by+Kevin+Hawkins_15+Oct+2014.rar

۱ نظر موافقین ۰ مخالفین ۰ ۱۹ دی ۹۴ ، ۱۱:۴۸
مدیرکل
منبع:gameover.blog.ir
این کد بسیار کمیاب هست و بهترین کدی بود که براتون قرار میدیم:
نمایش فایل bmp:
ابتدا تابع LoadBitmapFile رو کدنویسی می کنیم:
۰ نظر موافقین ۰ مخالفین ۰ ۱۹ دی ۹۴ ، ۱۰:۲۰
مدیرکل

تا آخرش بخونید لطفا

http://gameover.blog.ir

منبع :

http://promakers.ir/showthread.php?tid=10091&pid=108607

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

//game maker script
//Generating random numbers without repeating
//Author:sajjad3011....gameover.blog.ir....
//
n=8
a[0]=irandom_range(0,n)
for(i=1;i<=n;i++)
{
a[i]=irandom_range(0,n);
for(j=0;j<=(i-1);j++)
 {
   if(a[i]==a[j])
   {
    a[i]=irandom_range(0,n);
    j=0;i--;
   }//if
  }//for j
}//for i
-----------
حالا برای VB6 :

یک listview و یک command button بذارید روی فرم حله

http://s5.picofile.com/file/8153302468/random_bi_tekrar_vb6.jpg

اینم کد دیگه چی میخوایدbig grin :

کد:
'Author:sajjad3011
Private Sub Command1_Click()
List1.Clear

Const n = 9
Dim a(0 To n) As Integer


' Generate random value between 1 and n
a(1) = CInt(Int((n * Rnd()) + 1))

For i = 2 To n
a(i) = CInt(Int((n * Rnd()) + 1))
For j = 1 To i - 1
   If (a(i) = a(j)) Then
  
   a(i) = CInt(Int((6 * Rnd()) + 1))

    j = 1
    i = i - 1
   End If 'if
  Next j 'or j
Next i 'for i

For i = 1 To UBound(a)
List1.AddItem (a(i))
Next i
End Sub




'----------------------------
حالا بهترین الگوریتم برای تولید اعداد تصادفی :
منبع :
https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
در روش های قبلی از همون اول عناصر رو به رندوم تولید می کردیم و بررسی می کردیم و به صورت غیر تکراری توی عناصر آرایه می ریختیم این کار بهینه نیست.
در این روش  دو مرحله ی ساده رو انجام می دیم:

1. ابتدا اعداد 0 تا n-1 رو می ریزیم توی خونه های آرایه.
2. سپس می یایم محتوای خونه های آرایه رو به صورت رندوم جابجا می کنیم با هم.
اینم الگوریتمش :
for i from 0 to n − 2 do
       j ← random integer such that i ≤ j < n
       exchange a[j] and a[i]
نکته:
توی یونیتی تابع تولید عدد تصادفی اینه (خودتون می تونید ازش الگو بگیرید با الگوریتم بالا):

Random.Range(min,max)


۰ نظر موافقین ۰ مخالفین ۰ ۱۴ مرداد ۹۴ ، ۱۱:۱۱
مدیرکل

http://s5.picofile.com/file/8149102168/book.jpg

در سایت زیر بیشتر کتب برنامه نویسی مربوط به بازی سازی از جی مانکی گرفته تا استنسیل و گیم میکر و تورک 3Dو فلش و ایکس ان ای و کرای انجین و یو دی کی و یونیتی و خلاصه هرچی که فکرشو می کنید توی این سایت کتابش رایگان هست.
برید حالشو ببرید.

http://it-ebooks.info

۰ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۰:۴۴
مدیرکل

خوب تصمیم گرفتم مقدماتی رو یاد بدم واسه اینکه گم نشن مبتدی ها:
ساده ترین محیط کد زنی borland turbo c هست. TC.EXE .
واسه windows 7 هم ورژن مربوط رو اگه مورد داشتید بگید من راهنمایی کنم واس دانلود.
با VS و DEVCPP و Eclips و ... هم میشه کد زد ولی من TC کار می کردم.
---
خوب توی TC ساختار اینطوری هست:

کد:
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
void main()
{
//my codes
getch();
}
کد بالا چیز خاصی نداره.
تابع اولی که اجرا میشه main هست.
بالاشم فایل های header(سر فایل یا فایل های سرایند پسوند h) رو ضمیمه کردیم با دستور include که توی PHP با include( هست و توی جاوا و VB.net با import هست و توی csharp با using هست و و و .... winking
--
معمولا ابتدا نوع تابع میاد بعدش نام تابع(int main یا void main یا float main و ...)
چون تابع اصلی ما main نمی خواد چیزی رو به دستوری برگشت(return) بده واسه همین نوعش رو void یا غیر بازگشتی دادم.
getch هم get می کنه یک character رو بدون نمایش(echo)(اگه میخواستیم نماش بده getche رو میذاشتیم به جاش)
http://s5.picofile.com/file/8118656018/tc_win7.jpg
http://s5.picofile.com/file/8118656350/tc2_win7.jpg

کل مطلب رو Rar کردیم(بعد از Extract با مروگر fireFox فایل html رو باز کنید):
http://s4.picofile.com/file/8176849500/c_tut_gameover.rar.html


۰ نظر موافقین ۰ مخالفین ۰ ۲۲ اسفند ۹۳ ، ۰۹:۰۳
مدیرکل