«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
بایگانی مرداد ۱۳۹۴ :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

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

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

۷۹ مطلب در مرداد ۱۳۹۴ ثبت شده است

منبع : gameover.blog.ir

بعضی از پروژه های گیم میکر استادیو هستن که توی خروجی apk خطای کامپایلر null زیر رو نشون می دن و build failed میشه.

کد:
BUILD FAILED
C:\Users\User\AppData\Local\Android\android-sdk\tools\ant\build.xml:650: The following error occurred while executing this line:
C:\Users\User\AppData\Local\Android\android-sdk\tools\ant\build.xml:691: null returned: 1
اما پروژه های دیگه شما بدون خطا به apk بیلد میشه.

هیچکس دلیل رو نمی دونه یا اکثرا می گن برو SDK یا JDK رو عوض کن یا گیم میکر استادیو رو حذف و نصب و .. کن.

اما علت اصلی از خود پروژه شماست.

علت اصلی این خطا در اغلب پروژه ها اینه که Display name و Package name رو درست ندادید.

باید برید به مسیر Global game Options->Android Tab->Display name و اسم مناسبی با کاراکتر های مجاز بدید.

مثلا نباید اسم دارای پرانتز باشه یا  فاصله یا حروف بزرگ یا کاراکترهای غیرمجاز و .... big grin

با تغییر اسم می تونید به راحتی خروچی apk بگیرید.

امیدوارم این آموزش مفید بوده باشه.winking
۱ نظر موافقین ۰ مخالفین ۰ ۳۱ مرداد ۹۴ ، ۱۵:۴۶
مدیرکل
gameover.blog.ir

هوش دشمن (Enemy AI)


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

gameover.blog.ir

تگ یا Tag عنی برچسب یا اسم مستعار.
توی html ما قبلا به چند تا ابجکت id می دادیم که ثابت بود و هر ابجکت یه اسم ثابت داشت نمی تونستیم تغییرش بدیم ولی می تونستیم یه کلاس یا class تعریف کنیم و همه ی ابجکت های لخواه رو از نوع اون کلاس تعریف کنیم یا برچسب بزنیم. بعدش که میخواستیم تغییراتی روی اون ابجکت ها ایجاد کنیم دیگه دستی اینکار سخت بود. کافی بود اسم اون کلاس رو داشته باشیم و خصوصیاتشو دستکاری کنیم یا بهشون دستیابی داشته باشیم.
توی html چیزی بود تو مایه های tagByName یا tagByID که بهش ایدی میدادیم و خودش همه رو لیست می کرد بعدش میریختیم توی ارایه و با یه حلقه ی تکرار به کل ابجکت های ریخته شده توی ارایه دسترسی داشتیم و یه سری عملیات کلی روی اونا انجام میدادیم.

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

gameover.blog.ir

AI = Artificial Intelligence به معنی هوش مصنوعی هست.

هوش رو با منطق(logic) (دستورات شرطی مثل and و not و or و if و ... ) میسازن.

بعضی جاهاشو هم با دستورات محاسبات یا ریاضیات (Mathematics) میسازن(مثل add و sub و ... و دستورات جمع و تفریق و ... که توی درس assembly یا ... می تونید بخونید توسط CPU انجام میشه)

سال 86 یا 87 بود اگه اشتباه نکنم یه کد هوش مصنوعی با CPP نوشته بودم که واقعا فکر می کرد و می تونست یاد بگیره و مغزشو گسترش بده و تصمیم بگیره تا در کل یک منطقه به حرکت در بیاد. روش کار من الگوریتم پر کردن یک ناحیه ی بسته بود که با داشتن مختصات داخل اون میومدم چهار جهتش رو بررسی می کردم اگه اطرافش خالی بود مختصات نقاط اون چهار طرف بالا و پایین و چپ و راست رو save می کردم توی یک stack یا پشته یا آرایه و بعدش اونا رو دونه دونه از آرایه بیرون میاوردم و چهار جهت هر یک از اونا رو دوباره بررسی می کردم که جای خالی داریم یا نه اگه داشتیم مختصات اون نقاط رو بازم می ریختم توی آرایه و همینطور الی آخر تا همه جا رنگ آمیزی بشه.

خوب این روش کمک های زیادی به ما می کنه و می تونیم چیزای زیادی برای درک خوش مصنوعی در زندگی و جاهای دیگه ازش یاد بگیریم.

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

و همینطور باید جاهای بررسی شده تا رسیدن به اولین دیوار رو علامتگذاری کرد تا دوباره اون نقاط رو بررسی نکنه و وقت هدر نده.

اینا همش از لحاظ تئوری،توضیحات بود که من براتون دادم.sajjad3011

واسه اینکه هوش بنویسید باید توابع و روش ها و فکر خودتون رو شترش بدید و مهم از همه اینه که باید کد ببینید و فیلم های یوتیوب و سایت های ایرانی و غیره ... رو بررسی کنید یا مطالعه کنید.


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

منبع :gameover.blog.ir

توی یونیتی این روش رو میشه با way points ایجاد کرد که بالاتر درس دادم.

روش کار A star اینه که تمام مسیر ها رو باید توی آرایه یا یه لیستی ذخیره کنیم و فاصله ها رو محاسبه کنیم.(جستجوی مکاشفه ای یا huristic)

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

محاسبات قبلی برای پیدا کردن مسیر بهینه وجود داره که اونا رو دیگه خودتون می تونید با هر روشی انجام بدید.

مثلا زمانی که player بیکار هست یا ایستاده می تونید محاسبات اضافه رو انجام بدید. یا وقتی کاراکتر روی فلان نقطه ( onCollisionEnter یا ...) هست فاصله ی نزدیک ترین مسیر و بهینه ترین مسیر رو پیدا کنیم بعدش دشمن رو حرکت بدیم بیاد سمت ما(player)

مثلا این عکس رو ببینید :
[تصویر: a_star_sajjad3011.jpg]

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

 منبع :gameover.blog.ir

یک plane به عنوان زمین و چند تا cube به عنوان مانع بذارید روی plane .
یه sphere با متریال زرد رنگ به نام player1 با تگ Player ایجاد کنید.
یه cube با متریال قرمز رنگ به نام enemy به عنوان دشمن ایجاد کنید که قراره هوش بدیم بهش و یه rigid body component بدید بهش.(چطوری؟ بپرسید تازه کاراbroken heart )
-

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

 منبع :gameover.blog.ir

http://s5.picofile.com/file/8153967184/way_ai.jpg

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

منبع :gameover.blog.ir
اسکریپت خود را به زبان js ایجاد در بخش تعریف متغیرهای سراسری (قبل از تابع Start) این را بنویسید:

کد:
var اسم دلخواه مجاز: Transform[];
مثال:
کد PHP:
var waypoints Transform[]; 

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

گیم ابجکت رو انتخاب و به زیر شاخه ی اسکریپت در کادر خصوصیات(inspector) نگاه کنید و پارامتر size رو بیابید.

تغییرش بدید تا طول آرایه تغییر کنه.(مثال: اگه size رو دید 3 ، سه تا پارامتر Element0 و Element1 و Element2 ایجاد میشه.)

نوع رو چون Transform گذاشته بودیم می تونیم گیم ابجکت های دلخواه رو بکشیم بندازیم توی هریک از این سه سلول آرایه.

یک کاربرد : ساخت نقاط روی یک مسیر و استفاده برای مسیر یابی در بازی های مختلف(ورزشی،مسابقه ای،استراتژی و الی آخر...)

در بخش AI in Unity انجمن (زیر شاخه ی بخش مقالات اموزشی Unity) ساخت یک موجود هوشمند ساده رو با همین روش و یه دو تا کد کوچولو یادتون میدم. خودتون مراجعه کنید بعدا.
۰ نظر موافقین ۰ مخالفین ۰ ۳۰ مرداد ۹۴ ، ۰۴:۰۶
مدیرکل


مباحث ساده هوش مصنوعی
http://promakers.ir/showthread.php?tid=8810
http://promakers.ir/showthread.php?tid=1...#pid109686

تشکرها کم بود ولی عیبی نداره . در درس بعدی Lerp رو یاد می دم و بعدش احتمال داره روی Slerp بحث کنم. با توجه به اینکه به سایت های
۰ نظر موافقین ۰ مخالفین ۰ ۳۰ مرداد ۹۴ ، ۰۴:۰۶
مدیرکل

کپی شده از gameover.blog.ir

آموزش image effect (افزودن افکت بلور یا image blur Effect در یونیتی):
--
دوربین اصلی را انتخاب کنید.

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ مرداد ۹۴ ، ۰۳:۴۸
مدیرکل
وبلاگ gameover.blog.ir

//treble jump unity _ 2d
//gameover.blog.ir
 if (jumpkeydown) { if (grounded) { rigidbody2D.velocity.y = 0; rigidbody2D.AddForce(new Vector2(0, jumpForce)); candobulejump = true; } else if (candoublejump) { candoublejump = false; cantreblejump=true; rigidbody2D.velocity.y = 0; rigidbody2D.AddForce(new Vector2(0, jumpForce)); } else if (candtreblejump) { candtreblejump= false; rigidbody2D.velocity.y = 0; rigidbody2D.AddForce(new Vector2(0, jumpForce)); } }

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ مرداد ۹۴ ، ۰۲:۰۶
مدیرکل
اینو توی رویداد Step بذارید:
if (mouse_check_button_pressed(mb_left) && position_meeting(mouse_x,mouse_y,obj_knight)// && is a logical operator equivalent too 'and', when you have and it returns if both are true else //false
    {
        //code
    }

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

کل ابزارها ی اندروید

http://downloads.puresoftware.org/files/android/

http://kaopu.so/pan/WINDOWS_TOOLS


وبلاگ gameover.blog.ir

آموزش گام به گام نصب و راه اندازی Basic4Android
--
منبع :
http://basic4android.org/index.php?/topi...%AF%D8%B1/
--
Java Development Kit:
http://www.mediafire.com/download/ralelg...id.org.zip
--
Sun Java 64 Bit:
http://www.mediafire.com/download/boww8o...67.x64.zip
یا
SunJava 32 Bit :
http://www.mediafire.com/download/h8kq3j...67.x86.zip
--
Android.SDK.Release.23.0.2:
http://www.mediafire.com/download/0p8faa...23.0.2.zip
--
فایل های مورد نیاز برای قرار دادن در Android SDK :
Build-Tools_r19.0.3-Windows:
http://www.mediafire.com/download/o9r9k5...indows.zip
Platform-Tools_r19.0.1-Windows:
http://www.mediafire.com/download/f1jdxs...indows.zip
PlatForms:
http://www.mediafire.com/download/xzlbgx...rms%29.zip
Samples:
http://www.mediafire.com/download/4abmzq...les%29.rar
System-Images:
http://www.mediafire.com/download/zmz4fk...ges%29.zip

اضافه شد: فایل های adb.bat + adb.exe + AdbWinApi.dll + zipalign :
http://www.basic4android.org/attachments...winapi.rar


تمامی فایل ها تست شده و قابل نصب بر روی تمام ویندوزها می باشند
پسورد تمام لینک های بالا:
www.basic4android.org

آموزش کامل چگونگی نصب و راه اندازی Basic4Android بعد از دانلود تمام ابزارهای بالا:

ابتدا Java JDK بر حسب سیستم خودتون رو نصب کنید.

بعد از آن به سراغ نصب Android SDK میریم:
اندروید SDK را در محلی به جز درایو ویندوز نصب کنید به صورتی که دائمی باشد و در صورت تعویض ویندوز اندروید SDK و اطلاعات آن از بین نرود.
مثلا من در این مسیر نصب خودم رو انجام میدم: ( توجه کنید توی پوشه نصب Android SDK از فاصله استفاده نکنید... یعنی حروف به هم چسبیده باشند )

G:\android-sdk(32.0.2)

حالا چک کنید که تمام پوشه های زیر در Android SDK وجود داشته باشد. هر پوشه ای که وجود نداشت را بسازید تا دقیقا مطابق تصویر زیر شود:

لیست متنی پوشه ها:
add-ons
build-tools
platforms
platform-tools
samples
system-images
tools

تک تک به سراغ پوشه ها میریم:
add-ons را خالی میگذاریم !

build-tools :
پوشه android-4.4.2 را همراه با فایل های موجود در آن که در پوشه دانلود شده build-tools_r19.0.3-windows وجود دارد را در build-tools کپی کنید

platforms :
پوشه __MACOSX و پوشه android-14 که در پوشه android-14 ای که مربوط به platforms است را در platforms کپی کنید

platform-tools :
تمام فایل ها و پوشه های موجود در platform-tools_r19.0.1-windows\platform-tools که دانلود کرده اید را در platform-tools کپی کنید:
[تصویر: 32_files_in_platform_tools.png]


samples :
فایل android-14 موجود در android-14 دانلود شده مربوط به samples را در داخل پوشه samples کپی کنید.

system-images :
فایل android-14 موجود در android-14 دانلود شده مربوط به system-images را در داخل پوشه system-images کپی کنید.

tools :
این رو توجه کنین و یادتون نره چون در غیر این صورت با خطا مواجه میشید. باید حتما 1 بار این فایل رو اجرا کنید:
فایل adb پیوست شده را دانلود و چهار فایل adb.exe و adb.bat و AdbWinApi.dll و zipalign.exe را درون پوشه tools بریزید
( بعد از اتمام کار و راه اندازی کامل Basic4Android لازم است قبل از اجرای Run AVD Manager فایل adb.bat را یک بار اجرا کنید )


نصب Basic4Android و Patch کردن آن :
بعد از نصب خود برنامه ی Basic4Android که آخرین مرحله است سراغ به Keygun کردن آن میرسد.
فایل b4a-gen را در مسیر نصب Basic4Android کپی کنید مثلا در این مسیر:
D:\Program Files (x86)\Anywhere Software\Basic4android

b4a-gen.exe را اجرا کنید و یک email اختیاری مثلا support@basic4android.org را وارد کنید و بعد بر روی گذینه Generate Lisence File کلیک کنید
تا فایل Lisence ساخته شود.
حالا برنامه Basic4Android را باز کنید و ایمیل وارد کرده در b4a-gen.exe را که همان support@basic4android.org میشود را وارد کنید.

خب الان Basic4Android شما کاملا نصب شده و فقط مونده که 3 تا مسیر به برنامه بدیم:
از منو Tools گذینه Configure Paths را انتخاب کنید:

http://s6.picofile.com/file/8203724150/config.jpg

در قسمت اول که javac.exe است باید آدرس فایل javac.exe که بعد از نصب Java JDK به وجود آمده است را بدهید مثلا:
D:\Program Files\Java\jdk1.7.0_40\bin\javac.exe

در قسمت android.jar باید آدرس فایل android.jar موجود در مسیر نصب sdk و پوشه platforms و android-14 وجود دارد را بدهید مثلا:
G:\android-sdk(23.0.2)\platforms\android-14\android.jar

در قسمت Additional Libraries باید آدرس فایل Library موجود در مسیر نصب Basic4Android را بدهید مثلا:
D:\Program Files (x86)\Anywhere Software\Basic4android\Libraries

سپس OK کنید.

مرحله آخر:
از منو Tools گذینه Run AVD Manager را انتخاب کنید تا باز شود.
چون بار اول است باید یک AVD بسازیم . بر روی گذینه Create کلیک کنید.
AVD Name: Android-14
Device: 3.2" HVGA silder (ADP1) (320×480: ,dpi
Target: Android4.0- API Level 14
CPU/ABI: ARM (armeabi-v7a
Hardware Keyboard present را تیک بزنید تا فعال شود.
Skin: Skin with dynamic hardware controls
SD Card: Size 500 MiB

سایر تنظیمات را دست نزدید.
[تصویر: armeAbi.jpg]

OK را بزنید

نصب و تمامی تنظیمات به پایان رسید.


پسورد فایل پیوست شده : برنامه نویسان بیسیک4اندروید

http://www.basic4android.org
پسورد اشتب بود خودتون عقب جلو کنیدbig grin

منبع :
http://basic4android.org/index.php?showtopic=4
--
برای دانلود آموزش تصویری نصب تمامی ابزارها به تاپیک زیر مراجعه کنید :
http://www.basic4android.org/showthread....8%B3%DB%8C


اگه ناقص بود ابزارها اینجا رو ببینید winking:
http://basic4android.org/index.php?/topi...%88%D8%B1/
دانلود b4a ورژن 5 ریتیل کامل :
http://s3.picofile.com/file/8203723968/B...l.rar.html

رفع خطای CPU/ABI : "No system images installed for this target" برای basic4android یا b4a:
سوال :
من برنامه را نصب کردم اما در حال حاظر 2 مشکل دارم.
1 هنگامی که sdk رو بازمیکنم یه ارور میده ومیره نمیدونم چیه ولی احتمالا به مشکل دومم متصل هست
2 هنگامی که Avd رو اجرا میکنم و crate رو میزنم اطلا عات رو طبق آموزش شما در پنجره ظاهر شده برایم وارد میکنم اما در آخر دکمه ی ok غیر فعال باقی می ماند وفعال نمیشود که من اوکیش کنم.
خواهش میکنم من دو عکس مربوط به ۲ مشکلم برای شما upload کردم لطفا هرچه سریعتر مشکلمو به خبر بدید.

جواب :

[تصویر: avd.jpg]


در هنگامی که می خواید یک AVD=android virtual device یا دستگاه مجازی اندروید ایجاد کنید ممکنه با خطای پیدا کردن system images مواجه بشیم.

برای رفع این مشکل، دو نکته مهم رو باید حتما رعایت کنید:

به احتمال زیاد مسیرandroid.jar رو توی b4a درست config کانفیگ نکردید.

پوشه ی android-14 موجود در فایل zip دانلود شده از لینک زیر رو داخل پوشه system-images در مسیر

AppData\Local\android\android-sdk\system-images

کپی کنید:

https://www.mediafire.com/?18qpqdkz3cq8oxm


بعد از نصب می تونید برید ببینید ARM -ABI (ای آر ام ای بی آی) نصب شده:
http://i.stack.imgur.com/GQal9.jpg
حالا basic4android رو باز کنید و از منوی Tools گزینه ی Configure paths رو انتخاب کنید و جلوی android.jar مسیر درست سیستم خودتون رو بدید. برای من مسیرش اینه :

C:\Users\userName\AppData\Local\android\android-sdk\platforms\android-14\android.jar

به جای userName باید اسم کاربری دقیق سیستم خودتونو بدید.

البته اگه بلد نیستید می تونید توی منوی Run بنویسید appdata و enter بزنید تا مسیر رو بیاره و برید توی local و سپس android و android-sdk و بقیشو دنبال کنید تا به مسیر دقیق دسترسی پیدا کنید.

حالا راحت می تونید create AVD بزنید و یه دستگا ایجاد کنید و اونو Start کنید.
[تصویر: arm_abi.jpg]
http://s6.picofile.com/file/8183832434/avd_2.jpg
باید ورژن 5 از b4a رو از جای درست دانلود کنی. واسه بچه ها دیشب توی یاهو حتی b4a version 5 نصب نمی شد من فرستادم صب شد.اینو دریافت کن :
http://s6.picofile.com/file/8203723184/B4A_5_02_Retail.zip.html

فایل های adb.bat + adb.exe + AdbWinApi.dll + zipalign دوباره گذاشتم چون توی لینک قبلی حذف شده بود :

www.mediafire.com/download/nse7rzmsmmd2lie/adb-zipalign-winapi.zip


اینم یه سری دیگه(منبع : http://androidsdk.blogfa.com/post/28)

لینک دانلود :
 http://dl-ssl.google.com/android/repository/build-tools_r21.1.1-windows.zip
http://dl-ssl.google.com/android/repository/build-tools_r21.1-windows.zip
http://dl-ssl.google.com/android/repository/build-tools_r21.0.2-windows.zip
http://dl-ssl.google.com/android/repository/build-tools_r21.0.1-windows.zip
http://dl-ssl.google.com/android/repository/build-tools_r21-windows.zip

اندروید 21 برای پوشه ی platforms:

http://www.mediafire.com/download/nf40umk4kcqpf5i/android-21.rar


خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۲ نظر موافقین ۰ مخالفین ۰ ۲۹ مرداد ۹۴ ، ۱۷:۰۸
مدیرکل
۱ نظر موافقین ۰ مخالفین ۰ ۲۸ مرداد ۹۴ ، ۰۵:۳۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۷ مرداد ۹۴ ، ۲۲:۱۵
مدیرکل
x رو به توان n می رسونه :

power(x, n);


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

ویرایش شد:( یکشنبه - ۲۵ مرداد ۱۳۹۴)

ابتدا اسپرایت منوی ثابت رو با نام  s_menu ایجاد کنید سپس یک ابجکت به نام o_control بذارید روی room و سپس:

ابتدا کد غلط :

اینو بذارید توی رویداد Draw  :

x1=view_xview+ window_get_width()/2-sprite_get_width(s_icon)/2
y1=view_yview + sprite_get_height(s_icon)/2+10
draw_sprite_ext(s_menu,image_index,x1,y1,image_xscale,image_yscale,image_angle,image_blend,image_alpha)

[تصویر: menuSabet.gif]

---

اما کدهای بالا یک باگ بزرگ داشت .
 اصلاح :

نکته بسیار مهم:
به جای window_get_width حتما از view_wport[0] و به جای window_get_height حتما از view_hport[0] استفاده کنید چون وقتی روم رو full screen می کنید ممکنه به هم بریزه. اما با view_hport و view_wport به هم نمی ریزه.winking

مثال :
توی رویداد Draw اسپرایت spr_menu رو اینطوری در بالا و وسط room و view ی فعلی نمایش میدیم:
کد درست اینه :
x1=view_xviewview_wport[0]/2-sprite_get_width(spr_menu)/2
y1
=view_yview sprite_get_height(spr_menu)/2+10
draw_sprite_ext
(spr_menu,image_index,x1,y1,image_xscale,image_yscale,image_angle,image_blend,image_alpha

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

خب اول باید وارد سایت عدد بشید و در قسمت نمایش دهندگان وارد رسانه های من بشید روی رسانه جدید کلیک کنید پکیج نیم برنامتون بنویسید و تایید رو بزنید حالا کتاب خانه عدد رو از اینجا دانلود کنید و بریزید داخل قسمت لایبری b4a حالا b4a رو باز کنید
کتابخانه های adad و reflection رو فعال کنید
این کدو به مانفیست ادیتورتون اضافه کنید

نقل قول :AddApplicationText(
<activity
android:name="ir.adad.AdadActivity"
android:theme="@android:style/Theme.Dialog">
</activity>
<meta-data android:name="ir.adad.token" android:value="YOUR_TOKEN"></meta-data>
<meta-data android:name="ir.adad.test_mode" android:value="true"></meta-data>
)

داخل قسمت your-token اون شناسه ای که بهتون داخل قسمت جزییات رسانه های من داده کپی کنید


این کدم به صفحه ای که میخواین توش تبلیغ باشه بریزید
نقل قول :
Sub Activity_Create(FirstTime As Boolean)
Dim verticalPosition As String = "bottom" '"top" or "bottom"
Dim horizontalPosition As String = "center" '"left", "right" or "center"
Dim r As Reflector
Dim args(3) As Object = Array As Object(r.GetActivity, verticalPosition, horizontalPosition)
Dim types(3) As String = Array As String("android.app.Activity", "java.lang.String", "java.lang.String")
r.RunStaticMethod("ir.adad.AdadB4APlugin", "createAdView", args, types)
End Sub


اگر قبلا به برنامه اجاره یه دسترسی به اینترنت ندادید این کدو به مانفیست اضافه کنید
نقل قول :AddPermission(android.permission.INTERNET)



حالا برنامه رو تست کنید اگر درست بود زیر برنامتون یه نوشته میاد که سیستم درست کار میکنه

توجه موقع انتشار برنامه در مانفیست ادیتور:
نقل قول :<meta-data android:name="ir.adad.test_mode" android:value=" True "></meta-data>

True را به false تغییر بدید.
منبع :
http://promakers.ir/showthread.php?tid=11647


خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۲۴ مرداد ۹۴ ، ۲۲:۱۲
مدیرکل

نکته ۱: جم های خود را ذخیره کنید

 

زمانیکه بازی را شروع می کنید، ۵۰۰ جم دارید. در صورت ساخت و ساز، ۵۰ جم را برای کامل کردن ساختمان سازی از دست می دهید. اما می توانید جم هایتان را ذخیره کرده تا بیلدرهای(کارگران) بیشتری را خریده و ساخت و ساز را سریع تر انجام بدهید. هزینه های هر بیلدر به صورت زیر است:
بیلدر ۲: ۲۵۰ جم
بیلدر ۳: ۵۰۰ جم
بیلدر ۴: ۱۰۰۰جم
بیلدر ۵: ۲۰۰۰ جم
بیلدرهای 3 سریع بدست می آیند، اما بیلدرهای 4 و 5 ، معمولاً دیرتر تولید می شوند. بیلدرهای بیشتر، به شما اجازه می هند تا ساختمانهای بیشتری را بسازید و بنابراین می توانند بسیار به شما کمک کنند. اگه بتوانید پیروزیهای بیشتری بدست بیاورید، می توانید بیلدر 4 را در عرض چند ماه بدست بیاورید، بدون اینکه لازم باشد چیزی بخرید. اگه میخواهید بیلدرهای پنجم را هم بدست بیاورید، باید بیشتر تلاش کرده و پیروزی های بیشتری را بدست بیاورید.


نکته ۲: افراد ارزانی را انتخاب کنید

یکی از بزرگترین اشتباهاتی که تازه کاران انجام میدهند، این است که به هزینه ی هر فرد، توجهی نمی کنند. اگرچه، غول ها(جاینت ها)، عالی هستند، اما بسیار گران تر از بربری ها می باشند. در مراحل بالاتر، دراگون هافوق العاده اند، اما آنها از غول ها بسیار گران ترند. به عامل زمان هم باید توجه کرد. درست است که ویزاردها، بسیار قوی تر از کمانداران هستند، اما هم هزینه بیشتری دارند و هم 8 دقیقه طول میکشد تا ساخته شوند. در حالیکه، ۴کماندار را می توانید در کمتر از ۲ دقیقه بسازید. پس اگر به دنیال ذخیره ی منابعتان هستید، باید افراد ارزانی را انتخاب کنید. البته باید توجه داشته باشید که بهترین افراد، به سطح(لول) شما بستگی دارد.


نکته ۳: اسپل ها را تنها هنگامیکه نیاز است، استفاده کنید

اسپل ها بسیار گران هستند و مدتی طول میکشد تا ساخته شوند. اگرچه اسپل ها بسیار موثر و کارامد هستند، اما باید مطمئن شوید نبردی که در حال انجام ان هستید، استفاده از اسپل را ضمانت می کند.
اسپل خشم در 23000 اکسیر، و اسپل شفابخش در 15000 اکسیر، شروع می شود.


نکته 4: تاون هال خود را کم کم ارتقا دهید

تاون هال، یکی از مهمترین چیزهایی است که باید در بازی clash of clans بدانید. اگر تاون هال شما از تاون هال دشمنتان بیشتر باشد، میزان غنائمی که می توانید ازحریف بگیرید کاهش می یابد. اگر تاون هال شما، یک سطح از دشمنتان بالاتر باشد، تنها 90% غنائم را می توانید غارت کنید. اگر این اختلاف به سه سطح برسد، تنها 25% ، و برای اختلاف 4 سطح یا بیشتر، تنها 5% غنائم موجود را می توانید غارت کنید. در نتیجه، پیشنهاد می کنیم به تاون هال 4 رفته و در این تاون هال بمانید وساختارهای دفاعی، اردوگاه های سربازان و کاوش خود را به بهترین حالت ارتقا دهید. حتی می توانید دیوارهای خود را نیز ، قبل از رفتن به تاون هال 5، به حداکثر ارتقا دهید. این فرآیند را برای هر سطحی(لولی)، تکرار کنید.

نکته 5: بسرعت بازی را شروع کنید

وقتی برای اولین بار، کلش آف کلنز را بازی می کنید، سه روز شیلد(محافظت) دریافت می کنید. اما، حتی اگر شیلد شما از بین رفته باشد، به دلیل نکته ی 4، افراد اندکی، تمایل دارند به شما حمله کنند. بنابراین وقتی به منابع بیشتری نیاز دارید، بدون ترس از انتقام، بازی را شروع کنید.

 نکته 6: از ویژگی «NEXT» ، زیاد استفاده کنید

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


نکته 7: قلعه ی گروه را در مرکز پایگاه قرار دهید

قلعه ی گروه، شاید مهم ترین ساختار دفاعی در این بازی باشد، اما تنها به شرطی که آن را در مرکز پایگاهتان قرار دهید. زیرا هنگامیکه، افراد دشمن، وارد محدوده ی قلعه ی گروه می شوند،(اگر محدوده ی وسیعی داشته باشد)، افراد شما خارج قلعه را پر کرده و به افراد در حال حمله ی دشمن، حمله خواهند کرد.توجه کنید که سربازهای قلعه ی گروه، قادر به جهش از دیوارهای خودتان هستند.
اگر قلعه ی گروه را خارج از پایگاه قرار دهید، دشمن می تواند افراد داخل قلعه ی گروه را، فریب داده و بسادگی آنها را خارج از محدوده ی قلعه، بکشد. اگر قلعه را داخل پایگاه، نگه دارید، دشمن، برای گرفتن پایگاهتان، هم از افراد قلعه و هم ازساختارهای دفاعی، آسیب خواهد دید.
اگر می خواهید در تاون هال خود بمانید، درخواست کماندار بدهید، زیرا کمانداران، اغلب، افراد را از پشت دیوار، مورد هدف قرار می دهند؛ که به آنها اجازه می دهد تا بدون آسیب دیدن، غول ها و بربری ها را سرنگون کنند. بازکنانی که در سطوح بالایی هستند، شاید افراد متفاوتی، مثل دارگون ها انتخاب کنند، اما این امر به گروهی نیاز دارد که این سربازان را بدهد.
توجه کنید که این نکته، عملاً تنها برای بازیکنان تاون هال 7، و بالاتر به کارگرفته می شود. در تاون هال های پایین تر، ساختمان کافی برای جلوگیری از فریب خوردن یا غارت کردن افراد در قلعه ی گروه را، ندارید. تاون هال 7، هنوز قابلیت فریب خوردن دارد، اما محکم تر است. در تاون هال 8و بالاتر، دشمن مجبور می شود تا ساختمان ها یا تعدادی از افراد را برای بیرون راندن سربازان از قلعه ی گروهتان، تخریب کند.


نکته 8: به دارک اکسیر اهمیت فراوانی دهید

وقتی به تاون هال 7 یا بالاتر می رسید، منبعی که شما را محدود می کند، همیشه اکسیر تاریک است. معمولاً دارک اکسیر کافی را پس از حداکثر ارتقاهایی که به طلا و اکسیر مربوط اند، بدست می آورید. در نتیجه، دارک اکسیر را، نسبت به منابع دیگر، در بالاترین اولویت قرار دهید.

منبع : گیم آور

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ مرداد ۹۴ ، ۲۱:۲۵
مدیرکل
با دستور yield می گیم چند ثانیه صبر کن بعدش برو دستور بعدی. مثال :
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    IEnumerator Example() {
        print(Time.time);
        yield return new WaitForSeconds(5);
        print(Time.time);
    }
};

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

می دونیم که در حالت پیشفرض مسیر ذخیره سازی روی حافظه ی داخلی هست(Write Access =Internal Only)

دستور Application.persistentDataPath در یونیتی مسیر  SD card یا حافظه ی بیرونی رو می ده(به شرطی که گزینه ی  External Write Access  در Player Settings رو فعال کنیم) این یعنی Write Access = External (SDCard)

----
 Application.dataPath
 Application.streamingAssetsPath
 Application.temporaryCachePath
EditorApplication.applicationContentsPath
 EditorApplication.applicationPath
Directory.GetCurrentDirectory()  مسیر روت یا ریشه رو می ده
PlayerSettings.Android.forceSDCardPermission مقدار بولین برای دسترسی به کارت جافظه موبایل
یه گزینه هم هست به اسم  WRITE_EXTERNAL_STORAGE اگه Enable باشه کل دادها به مسیر  /mnt/sdcard/Android/data/data/com..... ارجاع داده می شن و اجازه ذخیره روی SD card

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


#Region  Project Attributes
    #ApplicationLabel: B4A Example
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region

ApplicationLabel جایی هست که شما اسم برنامه خودتون رو می نویسید یعنی اسمی که کاربر اون رو می بینه.
VersionCode جایی هست که شما ورژن برنامه خودتون رو وارد می کنید که می تونید اعداد 1,2,3,4,5,... در اون قرار بدید.
VersionName این جا جایی هست که شما اسم ورژن خودتون رو وارد می کنید حتما دیدید که در بازار یا جاهای دیگر نوشته ورژن 1.0.6 این همونه که البته می تونید در آن از حروف هم استفاده کنید.

SupportedOrientations شما در این جا می تونید از سه کلمه portrait یا landscape یا unspecified استفاده کنید اگر از کلمه unspecified استفاده کنید برنامه هم در حالت افقی و هم در حالت عمودی اجرا می شه ولی اگر از کلمه landscape استفاده کنید فقط در حالت افقی و اگر از portrait استفاده کنید فقط در حالت عمودی اجرا می شه.

CanInstallToExternalStorage اگر این کلمه مساوی False باشه برنامه داخل حافضه جانبی گوشی ذخیره نمی شه اما اگر مسای true باشه برنامه بر روی حافضه جانبی ذخیره می شه.

نکته :اون خطی که اولش ' هست یعنی به صورت کامنت هست.
منبع :
http://barnamenevis.org/showthread.php?4...54f59acfa6
۰ نظر موافقین ۰ مخالفین ۰ ۲۴ مرداد ۹۴ ، ۰۶:۲۰
مدیرکل
طبق تحقیقم شاید بتونید از این کدها الهام بگیرید :
var myTexture: Texture2D;
  
  function Startup()
  {
      SaveTextureToFile( myTexture,"picture.png");
  }

+

System.IO.File.WriteAllBytes("picture.png", myTexture.EncodeToPNG()); 

+

System.IO.File.WriteAllBytes(Application.dataPath + "/"+"picture5886.png", texture2.EncodeToPNG());    //app path n1!

۱ نظر موافقین ۰ مخالفین ۰ ۲۴ مرداد ۹۴ ، ۰۵:۳۹
مدیرکل
منبع:gameover.blog.ir
//gameover.blog.ir
Dim
MP As MediaPlayer MP.Initialize() MP.Load(File.DirAssets, "fereydun_asarayi.mp3") MP.Looping = True MP.Play

برای استاپ و پلی مجدد و ... هم اینا :
MP.Pause
MP.Play
MP.Stop




خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۱ نظر موافقین ۰ مخالفین ۰ ۲۴ مرداد ۹۴ ، ۰۵:۳۰
مدیرکل
منبع خارجی :
http://www.metatags.info/all_meta_tags

وقتی شما اطمینان داری که وبسایت در دایرکتوری مثل DMOZ (ODP) یا دایرکتوری یاهو ثبت شده ، یه چیزی رو باید همیشه بدونی. اونم اینه که اغلب پیش میاد از عنوان و توضیح مختصری که برای وبسایت خود در دایرکتوری ها استفاده کردید موتور های جستجو استفاده می کنن و عنوان و توضیح مختصری که دستی وارد کردید را نادیده میگیرن. برای اینکه از چنین امری جلوگیری کنیم باید یکی از دو تگ زیر را در بخش هدر بنویسیم.
کد:
<meta name="ROBOTS" content="NOODP" />
<meta name="ROBOTS" content="NOYDIR" />
فرق این دو تا با هم در اینه که NOYDIR برای دایرکتوری یاهو هست و NOODP برای دایرکتوری گوگل یا همون DMOZ خودمون که MSN هم بهره می بره از همین تگ.

البته میشه از هر دو همزمان استفاده کرد به صورت زیر:
کد:
<meta name="ROBOTS" content="NOODP,NOYDIR" />


موفق باشید،
منبع :
http://forum.iranphp.org/Thread-NOODP-%D9%88-NOYDIR-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AA%D8%A7-%D8%AA%DA%AF-%D8%B1%D9%88%D8%A8%D9%88%D8%AA-%D9%87%D8%A7-%D8%B1%D8%A7-%D8%A8%DB%8C%D8%B4%D8%AA%D8%B1-%D8%A8%D8%B4%D9%86%D8%A7%D8%B3%DB%8C%D8%AF
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ مرداد ۹۴ ، ۰۷:۱۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ مرداد ۹۴ ، ۰۶:۴۴
مدیرکل

 منبع :gameover.blog.ir

از کار انداختن دانلود عکس و انیمیشن های دانلودی به منظور هدر نرفتن پهنای باند شما:

  • Image Block - "Image Block adds a toggle button that conditionally blocks/allows loading of images on webpages."
  • QuickJava - adds buttons for turning on and off: images, animated images, JavaScript, Flash, Java... a lot of stuff that may or may not sound interesting to you
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ مرداد ۹۴ ، ۰۵:۳۶
مدیرکل
منبع :gameover.blog.ir
کاری کنید که هر 1 ثانیه مرورگر رفرش بشه یا مثلا زمان رو با html و php نشون بدید:

<head>
<meta http-equiv="refresh" content="5">
</head>
<?php

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

<?php echo date('h:i:s A');?>


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

 منبع :gameover.blog.ir

اینجا :
C:\Users\userName\AppData\Local\Genymobile\Genymotion\ova
مسیر بالا رو بلد نیستید توی منوی run بنویسید AppData

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

منبع : sinusi.blog.ir

سلام،دوستان همانطور که می دونید GenyMotion یک شبیه ساز آندروید هست.که می تونید اون رو از اینجا دانلود کنید.


اما مشکل اصلی دانلود Virtual Device های اون هست که من در این پست لینکشون رو براتون میگذارم.


Android 2.3.7 API 10


Google Nexus One - 2.3.7 - API 10 - 480x800
Google Nexus S - 2.3.7 - API 10 - 480x800
Motorola Droid Razr - 2.3.7 - API 10 - 540x960
Samsung Galaxy Note - 2.3.7 - API 10 - 800x1280
Samsung Galaxy S2 - 2.3.7 - API 10 - 480x800
Sony Xperia S - 2.3.7 - API 10 - 720x1280

================================

Android 4.1.1 API 16

Custom Phone 7\" - 4.1.1 - API 16 - 1024x600
Google Galaxy Nexus - 4.1.1 - API 16 -720x1280
Google Nexus 4 - 4.1.1 - API 16 - 768x1280
Google Nexus S - 4.1.1 - API 16 - 480x800
HTC Evo - 4.1.1 - API 16 - 720x1280
HTC One X - 4.1.1 - API 16 - 720x1280
HTC One XL - 4.1.1 - API 16 - 720x1280
LG Optimus L3 II - 4.1.1 - API 16 - 240x320
Motorola Droid Razr - 4.1.1 - API 16 - 540x960
Samsung Galaxy Note - 4.1.1 - API 16 - 800x1280
Samsung Galaxy Note 2 - 4.1.1 - API 16 - 720x1280
Samsung Galaxy S2 - 4.1.1 - API 16 - 480x800
Samsung Galaxy S3 - 4.1.1 - API 16 - 720x1280
Sony Xperia S - 4.1.1 - API 16 - 720x1280

================================
Android 4.1.1 API 16 Tablet

Custom Tablet 10\" - 4.1.1 - API 16 - 2560x1600
Google Nexus 7 - 4.1.1 - API 16 - 800x1280
Motorola Xoom - 4.1.1 - API 16 - 800x1280
Sony Xperia Tablet S - 4.1.1 - API 16 - 1280x800
Sony Xperia Tablet Z - 4.1.1 - API 16 - 1920x1200

================================

Android 4.2.2 API 17

Custom Phone 7\" - 4.2.2 - API 17 - 1024x600
Google Galaxy Nexus - 4.2.2 - API 17 -720x1280
Google Nexus 4 - 4.2.2 - API 17 - 768x1280
Google Nexus S - 4.2.2 - API 17 - 480x800
HTC Evo - 4.2.2 - API 17 - 720x1280
HTC One X - 4.2.2 - API 17 - 720x1280
HTC One XL - 4.2.2 - API 17 - 720x1280
LG Optimus L3 II - 4.2.2 - API 17 - 240x320
Motorola Droid Razr - 4.2.2 - API 17 - 540x960
Samsung Galaxy Note - 4.2.2 - API 17 - 800x1280
Samsung Galaxy Note 2 - 4.2.2 - API 17 - 720x1280
Samsung Galaxy S2 - 4.2.2 - API 17 - 480x800
Samsung Galaxy S3 - 4.2.2 - API 17 - 720x1280
Sony Xperia S - 4.2.2 - API 17 - 720x1280

================================

Android 4.2.2 API 17 Tablet

Custom Tablet 10\" - 4.2.2 - API 17 - 2560x1600
Google Nexus 10 - 4.2.2 - API 17 - 2560x1600
Google Nexus 7 - 4.2.2 - API 17 - 800x1280
Sony Xperia Tablet Z - 4.2.2 - API 17 - 1920x1200

================================

Android 4.3 API 18

Custom Phone 7\" - 4.3 - API 18 - 1024x600
Google Galaxy Nexus - 4.3 - API 18 -720x1280
Google Nexus 4 - 4.3 - API 18 - 768x1280
Google Nexus S - 4.3 - API 18 - 480x800
HTC Evo - 4.3 - API 18 - 720x1280
HTC One X - 4.3 - API 18 - 720x1280
HTC One XL - 4.3 - API 18 - 720x1280
LG Optimus L3 II - 4.3 - API 18 - 240x320
Motorola Droid Razr - 4.3 - API 18 - 540x960
Samsung Galaxy Note - 4.3 - API 18 - 800x1280
Samsung Galaxy Note 2 - 4.3 - API 18 - 720x1280
Samsung Galaxy S2 - 4.3 - API 18 - 480x800
Samsung Galaxy S3 - 4.3 - API 18 - 720x1280
Sony Xperia S - 4.3 - API 18 - 720x1280

================================

Android 4.3 API 18 Tablet

Custom Tablet 10\" - 4.3 - API 18 - 2560x1600
Google Nexus 10 - 4.3 - API 18 - 2560x1600
Google Nexus 7 - 4.3 - API 18 - 800x1280
Sony Xperia Tablet Z - 4.3 - API 18 - 1920x1200

================================

Android 4.4.2 API 19

Custom Phone 7\" - 4.4.2 - API 19 - 1024x600
Google Galaxy Nexus - 4.4.2 - API 19 -720x1280
Google Nexus 4 - 4.4.2 - API 19 - 768x1280
Google Nexus S - 4.4.2 - API 19 - 480x800
HTC Evo - 4.4.2 - API 19 - 720x1280
HTC One X - 4.4.2 - API 19 - 720x1280
HTC One XL - 4.4.2 - API 19 - 720x1280
LG Optimus L3 II - 4.4.2 - API 19 - 240x320
Motorola Droid Razr - 4.4.2 - API 19 - 540x960
Samsung Galaxy Note - 4.4.2 - API 19 - 800x1280
Samsung Galaxy Note 2 - 4.4.2 - API 19 - 720x1280
Samsung Galaxy S2 - 4.4.2 - API 19 - 480x800
Samsung Galaxy S3 - 4.4.2 - API 19 - 720x1280
Sony Xperia S - 4.4.2 - API 19 - 720x1280

================================
Android 4.4.2 API 19 Tablet

Custom Tablet 10\" - 4.4.2 - API 19 - 2560x1600
Google Nexus 10 - 4.4.2 - API 19 - 2560x1600
Google Nexus 7 - 4.4.2 - API 19 - 800x1280
Sony Xperia Tablet Z - 4.4.2 - API 19 - 1920x1200

بعد از دانلود فایل رو با پسوند ova در فولدر مربوطه
C:\Users\[Your Name]\AppData\Local\Genymobile\Genymotion\ova
 قرار بدید، بعد برید و داخل Genymotion دستگاه مربوط به اون فایل رو ایجاد کنید،بدون معطلی دستگاه براتون ساخته میشه و نیازی به دانلود نیست.

برگرفته شده از sinusi.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۲۰ مرداد ۹۴ ، ۱۶:۴۰
مدیرکل

 منبع :gameover.blog.ir

برای اینکه دکمه توی صفحه view بمونه و حتی راه بری بازم از صفحه خارج نشه باید به طور داینامیک توی رویداد draw بیای x و y آبجکت دکمه رو بذاری توی x و y دوربین(view):

کد PHP:
x=view_xview+window_get_region_width()/2-sprite_width/2
y
=view_yview 
view_xview و y=view_yview مختصات ابتدای view رو می ده(بالا و سمت چپ)
-
window_get_region_width()/2-sprite_width/2 فرمولی هست که نصف پهای پنجره رو منهای نصف پهنای اسپرایت می کن تا ابجکت از لحاظ عرضی در وسط صفحه بیفته و بالای صفحه.
فرمول بالا واسه اسپرایت بود . اگه بخوای دکمه رو بذاری اینطوری بذار:

اینم سورس کامل برای ساخت دکمه ی لمسی یا کلیدهای مجازی اندریود در گیم میکر استادیو:
[تصویر: spr_Down_0.jpg][تصویر: spr_Up_0.jpg][تصویر: spr_Right_0.jpg][تصویر: spr_Left_0.jpg]
http://s6.picofile.com/file/8192395026/T...l.zip.html

--
اینم توضیحات امین بلاگ 76 :

ساخت کلید مجازی با روش ساده ی خود گیم میکر استدیو:
1.یک آبجکت به اسم دلخواه مثلا obj_vkey_crtl بسازید
2.برای ایجاد کردن هر کدوم از کلید های دلخواه باید از تابع زیر استفاده کنید و مقدار دهی کرده و داخل یک متغیر بریزید
تابع:
کد:
virtual_key_add(x, y, w, h, keycode);
x,y :مختصات قرار گرفتن کلید ها داخل رابط کاربری (gui) هست
w,h :طول و عرض کلید ها
keycode: کلیدی که قراره کلید مجازی ما نماینده اون کلید باشه مثلا vk_left
مثال:
کد:
up = virtual_key_add(32, 32, 64, 64, vk_up);

3.الان کلید مجازی ساخته شده و فقط کافیه اون رو داخل GUI بازی به روشی که الان میگم draw کنید:
داخل ایونت Draw GUI همون آبجکت برای نمایش کلید ها باید از تابع زیر استفاده کنید:
کد:
virtual_key_show(key)
که به جای key باید متغیری که کلید ساخته شده رو داخلش ریختیم بنویسیم مثلا ما در مثال ساخت کلید ، کلید ساخته شده رو داخل متغیری به اسم up ذخیره کردیم بنابر این در تابع ذکر شده باید به جای key ، نام متغیر یعنی up رو بنویسیم
(لازم به ذکره که بگم بخش سوم این آموزش الزامی نیست یعنی میتونید کلید ها رو قابل نمایش نذارید)
[تصویر: vkek.gif]
سورس گرافیکی امین بلاگ 76 :
http://s4.picofile.com/file/7858193759/android_virtual_key_aminblog76_.rar.html


http://s4.picofile.com/file/7858145585/1.jpg

http://s4.picofile.com/file/7858148602/2.jpg

در مورود سورس امین بگم کار بهینه ای کرده.

کارش به این صورته که اومده فقط یه اسپرایت فلش جهت دار گذاشتی و در چهار جهت اونو چرخش داده. این کارو به وسیله ی تغییر پارامتر (پارامتر دوم) subimage در تابع draw_sprite مقدار دادن 0(باعث چرخش اسپرایت به بالا میشه) و 1(پایین) و 2(چپ) و 3(راست). اون قسمت کد که توضیح دادم اینه :
کد PHP:
draw_sprite(spr_keys,0,32*3,32)

//virtual_key_show(key_down)
draw_sprite(spr_keys,1,32*3,32*5)

//virtual_key_show(key_left)
draw_sprite(spr_keys,2,32,32*3)

//virtual_key_show(key_right)
draw_sprite(spr_keys,3,32*5,32*3

منبع :

http://promakers.ir/showthread.php?tid=5761&pid=69129#pid69129
۲ نظر موافقین ۰ مخالفین ۰ ۱۸ مرداد ۹۴ ، ۱۵:۰۰
مدیرکل

 منبع :gameover.blog.ir

توی کد فلش چپ اینو بذارید

image_scale = -1

توی کد فلش راست اینو:

image_scale =+1

اجرا کنید .

وقتی فلش چپ می زنید کاراکتر به چپ نیگا می کنه و وقتی فلش راست می زنید کاراکتر به راست نیگا می کنه.

اگه نمونه یونیتی رو خواستید باید با transform.localScale فکر می کنم کار کنید. سوال بود بپرسید

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

 منبع :gameover.blog.ir

نکته : این کد غلطه و رویداد radioButton_Check براش عمل نمی کنه :

RadioButton1.Initialize("")

RadioButton2.Initialize("")

RadioButton3.Initialize("")

RadioButton4.Initialize("")

حالا این کد درسته :

RadioButton1.Initialize("RadioButton1")

RadioButton2.Initialize("RadioButton2")

RadioButton3.Initialize("RadioButton3")

RadioButton4.Initialize("RadioButton4")
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۹۴ ، ۲۳:۰۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۹۴ ، ۲۲:۲۴
مدیرکل

 منبع :gameover.blog.ir

خیلی ساده ::D


قبل از insert یک select رو اجرا کن با where column_name=onsor_voroodi

اگه وجود داشت و تعداد سطرهای Cursor بیش از صفر شد یعنی تکراری هست و نباید درج کنی.

sajjad3011

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

منبع :gameover.blog.ir
این سورس رو مدت ها قبل به درخواست mgood ساخته بودم.
درخواست کننده:alibar80
سازنده:sajjad3011

شات:
[تصویر: light_small.gif]
http://s3.picofile.com/file/8205001718/light.gif
سورس:
http://opizo.com/RrHWa1


توضیح:
در این سورس،توی اتاق تاریک نور آبی ایجاد می کنیم که هرجا player می ره دورش هست و اون ناحیه رو روشن می کنه.با گیم میکر 8.1 و ورژن های بالاتر باز کنید یا پسوند رو عوض کنید.

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

 منبع :gameover.blog.ir

درخواست کننده:yasa
سازنده: sajjad3011
شات:

:
[تصویر: shot_small.gif]
http://s3.picofile.com/file/8204983168/shot.gif
سورس:
http://s6.picofile.com/file/8204983150/i...1.zip.html
توضیح :
در این سورس می تونید با کلیک توی جاهای خالی هر room ستاره ایجاد کنید و با راست کلیک روی ستاره ها اونا رو destroy(حذف و نابود) کنید.
با فشردن دکمه ی next به room بعدی و با فشردن دکمه ی previous به room قبلی می ریم.
بعد از ایجاد ستاره در هر room برای ذخیره ی دائم و حتی بازیابی پس از بستن بازی و اجرای مجدد باید روی دکمه ی ذخیره کلیک کنید.
اسم روم ها رو هم هرچی دوست دارید بذارید.سورس انعطاف لازم رو داره و اسم روم ها رو به صورت داینامیک تشخیص میده.
-
هر سورسی خواستید پ.خ کنید تا من بسازم.

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

instance_count تعداد ابجکت ها رو بر می گردونه.


مثال : کد زیر حدود 100 ابجکت ایجاد می کنه:


Example:

while (instance_count < 100)
   {
   instance_create(random(room_width), random(room_height), obj_Star);
   }
 منبع :gameover.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۹۴ ، ۰۵:۰۴
مدیرکل

gameover.blog.ir


http://s3.picofile.com/file/8204905684/nullPointer.jpg

کد دارای خطا اینه :

کد:
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("main")
Dim Label1 As Label
Label1.Initialize("")
'Activity.AddView(Label1,10dip,10dip,100dip,100dip)
Label1.Text="salam"
Label1.Left=50%x
Label1.Top=50%y
End Sub





کد اصلاح شده بدون خطا

کد:
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("main")
Dim Label1 As Label
Label1.Initialize("")
Activity.AddView(Label1,10dip,10dip,100dip,100dip)
Label1.Text="salam"
Label1.Left=50%x
Label1.Top=50%y
End Sub

در حقیقت با کد Activity.AddView(Label1,10dip,10dip,100dip,100dip) ابتدا LABEL1 رو به اکتیویتی اضافه کردیم.(توی کد اول اینو جزو توضیحات گذاشته بودم)



یکی از موارد دیگه ای که این خطا رخ میده اینه که توی متد addView به جای درصد و عدد،مستقیم از ScrollView.Height یا خصوصیات و صفات view ها استفاده کنیم.
مثال رفع اشکال شده توسط خودم :
کد:
Label1.Initialize("")
'ScrollView1.Panel.AddView(Label1, 0, 0, ScrollView1.Width, Label1.Height)'Error null pointer
ScrollView1.Panel.AddView(Label1, 0, 0, 100%x, 10%y)'Solved
توی سایت اصلی هم گفتم یا یاد بگیرن :
http://www.b4x.com/android/forum/threads...ion.14939/



خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۹۴ ، ۰۳:۰۸
مدیرکل

 منبع :gameover.blog.ir

منبع :

http://www.b4x.com/android/forum/threads/trigonometric-circle.8547/#post48013

http://s3.picofile.com/file/8204828992/DrawArc.jpg


ابتدا یک روال(sub) به نام DrawArc برای رسم کمان می نویسیم :

کد:
Sub DrawArc(xc As Float, yc As Float, r As Float, a1 As Float, a2 As Float, col As Int, Strike As Float)
'    The routine draws always in the trigonometric direction (counter clockwise) from angle a1 to a2
'a1=start angle
'a2=end angle
'col=color
'xc,yc=(x,y)
'r=radius
'strike=stroke width = border

    Dim x1, y1, x2, y2 As Float
    Dim da, a As Float

'    da=260/r            '    calculates the angle interval As a function of the radius
'    da=250/r
    da=1000/r
    
    If a2<a1 Then
        a2=a2+360
    End If
    
    x1=xc+r*CosD(a1)
    y1=yc-r*SinD(a1)
    cvsMain.DrawLine(x1,y1,xc,yc,col,Strike)    ' draws the radius
    For a = a1+da To a2 Step da
        x2=xc+r*CosD(a)
        y2=yc-r*SinD(a)
        cvsMain.DrawLine(x1,y1,x2,y2,col,Strike)
        x1=x2
        y1=y2
    Next
    x2=xc+r*CosD(a2)
    y2=yc-r*SinD(a2)
    cvsMain.DrawLine(x1,y1,x2,y2,col,Strike)    ' draws the last segment
    cvsMain.DrawLine(x2,y2,xc,yc,col,Strike)    ' draws the radius
End Sub
سپس در رویداد Activity_Create این تابع رو با ورودی های دلخواه فراخوانی می کنیم و چند کمان رسم می کنیم :
کد:
Sub Activity_Create(FirstTime As Boolean)
    cvsMain.Initialize(Activity)
    DrawArc(x0,y0,100dip,80,350,Colors.Red,1dip)
'    DrawArc(x0-30dip,y0,90dip,80,350,Colors.Red,1dip)
    DrawArc(x0+40dip,y0+40dip,100dip,80,350,Colors.Red,2dip)
    DrawArc(x0,y0+180dip,100dip,80,359,Colors.Green,1dip)
    DrawArc(x0+40dip,y0+200dip,100dip,80,1,Colors.Green,1dip)
End Sub
پارامتر ها هم گفتم به این صورت هست :
'angle a1 to a2
'a1=start angle
'a2=end angle
'col=color
'xc,yc=(x,y)
'r=radius
'strike=stroke width = border

دو پارامتر اول x و y هست.
A1 :درجه یا زاویه شروع
A2 : زاویه ی پایان کمان
Col:رنگ رسم کمان
R : شعاع دایره ی کمان
Strike: ضخامت کمان

اینم سورس آماده :
http://s3.picofile.com/file/8204828918/DrawArc.zip.html


خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۱۶ مرداد ۹۴ ، ۱۹:۰۴
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۵ مرداد ۹۴ ، ۱۸:۱۱
مدیرکل

http://www.plazza.ir/sites/default/files/imagecache/node_actual/plazza.ir_27389_5_90268_9827.jpg
گوشیتو بذار توی ماشین و آمار همسایه مزاحمت رو در بیار
گوشیتو اگه توی مترو دزدیدن آمار دزد رو هر 15 ثانیه با عکس گرفتن از محیط در بیار
گوشیتو بذار توی اتاقت و برو مسافرت و آمار دله دزد ها و مزاحم های اتاقت رو از راه دور و از روی سایت در بیار.
500 تا تک تومن یعنی نداری؟بخر و لذت ببر :

http://iranapps.ir/app/gameover.dozdgirHamrah


۰ نظر موافقین ۰ مخالفین ۰ ۱۵ مرداد ۹۴ ، ۱۷:۱۱
مدیرکل
http://www.hidoctor.ir/wp-content/uploads/2015/05/otoscope-3.jpg
یه دستگاه برای دیدن داخل گوش هست وقتی که گوش شما عفونت می کنه دکتر ازش برای تشخیص رشد قارچها استفاده می کنه و بعدش ممکنه گلیسیرین فینیکه بده برای جلوگیری از رشد عفونت های گوش.
اطلاعات بیشتر در مورد اتوسکوپ:

http://www.hidoctor.ir/74727_%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%AF%D8%B3%D8%AA%DA%AF%D8%A7%D9%87-%D8%A7%D8%AA%D9%88%D8%B3%DA%A9%D9%88%D9%BE.html/


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

برای  حذف کل سطرها :

DELETE FROM table_name;

or

DELETE * FROM table_name;

برای حذف سطور دلخواه با شرط :

DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';

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

مسیر C:\ProgramData\BlueStacks\UserData\SharedFolder\ J

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

تعریف آریه دو بعدی/تعریف آرایه چند بعدی:

مثال آرایه دو بعدی:

Dim arr(2,4) As Int

arr(1,1)=1

arr(1,2)=1

arr(2,1)=1

arr(2,2)=1



مثال  آرایه ی سه بعدی :

Dim ArrayOf6Dimensions(3,3,3) As Int




خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1

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

yui=yahoo user interface

به درد حل مشکلات شما برای طراحی واسط کاربری وبسایت هاتون شبیه یاهو هست.(یا به شیوه یاهو)

کتابشم اینه:

http://it-ebooks.info/book/725/

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

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

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)




مثال سیشارپ:

for(k=0;k<myarr.length-2;k++)
{
a = random.range(0,n);
b = random.range(0,n);

temp=myarr[a];
myarr[a]=myarr[b];
myarr[a]=temp;

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


می دونید بعضی اوقات سازندگان اپلیکیشن دقت نمی کنن و خصوصیت Width و Height پیش فرض imageView توی پنجره ی Designer پیشفرض روی 100 و 100 هست و Gravity روی Fill. هست. این باعث میشه که عکس کش بیاد و به اندازه ی width=100 و height=100 بشه.
برای رفع این مشکل شما باید در پنجره ی Designer خصوصیت Gravity رو روی Center بذارید. تا پهنای image view دقیقا بعد از اجرا به اندازه ی عکس شما در بیاد. این کار کیفیت رزولوشن رو بالا می بره و از بی کیفیت بودن کار شما جلوگیری می کنه.موفق باشید

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


در قسمت بالای برنامه جلوی ApplicationLabel اسم دلخواهی رو بذارید که می خواید در بالای برنامه موقع اجرا نمایان بشه :

کد:
#Region Module Attributes
    #FullScreen: False
    #IncludeTitle: True
    #ApplicationLabel:اسم دلخواه
    #VersionCode: 1
    #VersionName:اسم دلخواه
    #SupportedOrientations: landscape
#End Region
از منوی Project->Manifest Editor این خطوط رو به مانیفست اضافه کنید :
کد:
SetApplicationAttribute(android:label, "برچسب اپلیکیشن")
SetActivityAttribute(Main, android:label, "برچسب اکتیویتی")

نکته ی بسیار مهم :

اگه دیدید نوار عنوان تغییر نمی کنه و هر کاری می کنید درست نمیشه علاوه بر کارهای فوق توی رویداد Activity_Create برنامه بعد از Activity.LoadLayout این کد رو بذارید:

کد:
Activity.Title=Application.LabelName


مثال :
کد:
Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout1")
    Activity.Title=Application.LabelName
End Sub


خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ مرداد ۹۴ ، ۱۶:۰۴
مدیرکل


Topic jamee B4A Library
Basic4Androiad v3.20 Full Patch (Soft)
Amozesh ezafe kardan them be b4A
Amozesh Amade sazie B4A (Video)
Amozesh Hello World!!!(video)
Amozesh ListView va halghe(video)
Amozesh estefade az WebBrowser(video)
Amozesh ProgressBar and Timer(video)
Amozesh 2Activity (video)
Amozesh sakht AvatarGrabber (video)
Amozesh Add kardan Menu
Amozesh add kardan library
Amozesh Exit kardan soft and roydad KeyPress
Amozesh Random
Amuzeshe Add Kardane Font dar B4A
Amozesh Substring Dar B4A
Amoozeshe Tasvirie Avaz Shodane Khodkare Range Label Be Soorate Randomi(video)
Amozesh ijad tamas ba barnmae basic4android
Amozesh check Internet Connection And Get IP In B4A
Amozesh sakht Mashin hesab
Amozesh Split Text
Amozesh ersal payamak
Amozesh sakht keypad majazi(video)
Amozesh Ussd
Amozesh Load Website Dar B4A
Second Line(Raftan Be Khatte Dovom)In B4A
Amuzesh sakht Lib dar Basic4Android(video)
Amoozeshe Raftan Az Ye Form Ya Activity Be Ye Activity E Dg(video)
Amuzeshe hazfe item tekrari az listview
Amozesh Kar Ba RadioButton Dar B4A
Amozesh  Try & Catch Dar B4A
Amozeshe dastrese be tamame noghat tanzimat goshi
Amuzeshe texte motaharek dar b4a
Amozesh crαcĸ Var rah andazi b4a
Amozesh tab host dar b4a
Amuzesh kar ba dialog dar basic for Android
Amozesh gereftan aks az barname dar chand goshi
Amozesh scroll(video)
Amoozesh b4a Service(video)
Baz kardan ye Image dar net b4a
Add Kardan file b4a
Amozesh Do While....Loop In B4A
Amozesh Mod (baghimande taghsim ) dar b4a
border dadane to b4a
listview jaleb b4a
Link dadan be moror gar
Moghayese Code Hamun Dar Sholooghie Code Ha !
Amoozeshe Tashkhise Lamse Karbar(Touch)
Gereftane ListeBarname Haye Dar Hale Ejra In B4A
Amuzeshe sakhte ketabe ghese + source basic4android
Use Html book b4a
text shadow dar b4a
Imge size to html b4a
Roshan Negah Dashtane Safheye Mobile Dar B4A
Tanzime Ringtone Mob Dar basic4android
Fix Shodane Andazeye Control Ha Ba Charkheshe Mobile Dar B4A
GridView In B4A
harkate mtn ba webview b4a
Style ziba be txt ba webview b4a
rangi kardan title b4a
Amoozesh Notification dar B4a
Gereftane Saat Va tarikh dar B4a
Amoozesh Ersale Sms Dar B4a
fix kardane abzar ha ro tamame goshi ha b4a
Move Image With Touch In B4A
Amuzeshe Reflection
Tanzim kardane noe zange goshi (B4A)
fix kardane abzar ha ro tamame goshi ha b4a
chang kardan emulator b4a
Scroll Dadan Be ListView

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

نوتیفیکیشن فرقش با toastMessage(شبیه tool tip) اینه که پیامی رو نشون می ده و باید یک آیکن (و متن info)حتما بهش بدیم. همچنین معمولا از نوتیفیکیشن ها در سرویس ها استفاده میشه.البته اجباری نیست.

 شکل کلی:




Dim n As Notification
n.Initialize
n.Icon = "icon"
n.SetInfo("This is the title", "and this is the body.", Main) 'Change Main to "" if this code is in the main module.
n.Notify(1)

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1

۲ نظر موافقین ۰ مخالفین ۰ ۱۰ مرداد ۹۴ ، ۰۳:۲۸
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ مرداد ۹۴ ، ۰۳:۰۲
مدیرکل
gameover.blog.ir
'random file name without Repeation
'Author:Sajjad3011
Sub
CStr(o As Object) As String Return "" & o End Sub imgFormat="png" strFileName = "aks." & imgFormat ' Do While File.Exists(File.DirRootExternal,strFileName) strFileName = CStr(Rnd(1,1000)) & CStr(Rnd(1,1000)) & CStr(Rnd(1,1000)) & "." & imgFormat Loop

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ مرداد ۹۴ ، ۲۱:۳۲
مدیرکل
gameover.blog.ir
Sub CStr(o As Object) As String
 Return "" & o
End Sub

Sub CInt(o As Object) As Int
  Return Floor(o)
End Sub

Sub CLng(o As Object) As Long
  Return Floor(o)
End Sub

منبع :
http://www.b4x.com/android/forum/threads/how-to-convert-a-string-to-integer.18093/

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۱ نظر موافقین ۰ مخالفین ۰ ۰۹ مرداد ۹۴ ، ۲۱:۲۷
مدیرکل
Do While condition
    ...

Loop

یا

Syntax:

    Do Until condition
        ...

    Loop

====================
مثال / Example :

i=1
Do
While i < 10 i= i + 1 Loop

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ مرداد ۹۴ ، ۱۸:۳۱
مدیرکل
http://s4.picofile.com/file/8162601268/intent_action_view.jpg

Private
i As Intent i.Initialize(i.ACTION_VIEW, "http://google.com") StartActivity(i)

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۲ نظر موافقین ۰ مخالفین ۰ ۰۹ مرداد ۹۴ ، ۱۶:۱۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ مرداد ۹۴ ، ۰۳:۱۱
مدیرکل

http://promakers.ir/showthread.php?tid=11780

---

اینو بذار توی رویداد mouse Global Left Button(اشتباهی توی Mouse LEft نذاری حتما باید Global باشه یعنی توی سراسر room که کلیک می کنیم) :
کد :
x_clicked=mouse_x;
y_clicked=mouse_y;
direction=point_direction(x,y,x_clicked,y_clicked)
image_angle=direction;
harkat=true
//move_towards_point(mouse_x,mouse_y,4) 

اینم بذار توی Step :
کد :
if(harkat==true){
room_caption="true";
if 
speed>10 speed-=0.5;

if(
distance_to_point(x_clicked,y_clicked)<10
{
speed=0
harkat
=false;
}
else

speed+=0.5;
}


اینم توی Create(یعنی وقتی ابجکت ایجاد میشه تازه موقع اجرا روی روم لود میشه):
کد :
globalvar harkat,x_clicked,y_clicked;
harkat=false;
۰ نظر موافقین ۰ مخالفین ۰ ۰۸ مرداد ۹۴ ، ۲۱:۴۹
مدیرکل
Sub Globals
    Dim httpjob1 As HttpJob
End Sub

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
      Dim Timer1 As  Timer
End Sub

Sub Activity_Create(FirstTime As Boolean)
httpjob1.initialize("httpjob1",Me)
Timer1.Initialize("Timer1", 5000) ' 5000 = 5 second
Timer1.Enabled = True
End Sub

Sub JobDone(Job As HttpJob)
If Job.success = True Then ToastMessageShow(Job.GetString, True)
End Sub

Sub Timer1_Tick
httpjob1.download("http://example/tablighat.html")
'httpjob1.download("http://example/tablighat.php")
End Sub

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ مرداد ۹۴ ، ۱۹:۴۹
مدیرکل
<?php
//Author:Sajjad3011 $base_name = rand() . rand() . rand(); // todlide adad tasadofi $extension = '.jpg'; // Change as necessary $file_name = $base_name . $extension; $i = 0; while (file_exists($file_name)) {     $file_name = $base_name . $i++ . $extension; } ?>
۰ نظر موافقین ۰ مخالفین ۰ ۰۸ مرداد ۹۴ ، ۱۷:۵۶
مدیرکل
Sub Process_Globals
   Dim Timer1 as Timer
End Sub
Sub Activity_Create
   Timer1.Initialize("Timer1", 1000) ' 1000 = 1 second
   Timer1.Enabled = True
End Sub
Sub Timer1_Tick
   'Handle tick events
End Sub

توضیح :

1000 میلی ثانیه میشه یک ثانیه. پس هر یک ثانیه رویداد تیک (Timer1_Tick) یکبار اجرا میشه. و توش هرچی بنویسیم به اجرا در خواهد اومد.موفق باشید
منبع :
http://www.b4x.com/android/wiki/index.php/Timer


خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۱ نظر موافقین ۰ مخالفین ۰ ۰۸ مرداد ۹۴ ، ۰۱:۳۶
مدیرکل

gameover.blog.ir

این پکیج رو ایمپورت کنید فایل سین level1 رو اجرا کنید بعدش با لپ تاپ یا گوشی تست بگیرید فیلم روی پلن اجرا میشه.


http://s8.picofile.com/file/8313169984/maxresdefault.jpg


هر مشکلی بود ساپورت با ماست

فقط 500 تومان

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

خواندن از فایل XML و اضافه به listView در b4a

کد:
Sub Parser_StartElement (Uri As String, Name As String, Attributes As Attributes)

End Sub
Sub Parser_EndElement (Uri As String, Name As String, Text As StringBuilder)
    If parser.Parents.IndexOf("item") > -1 Then
        If Name = "title" Then
            Title = Text.ToString
        Else If Name = "link" Then
            Link = Text.ToString
        End If
    End If
    If Name = "item" Then
        ListView1.AddSingleLine2(Title, Link) 'add the title as the text and the link as the value
    End If
End Sub
اینم کد initialize و آماده سازی:
کد:
Dim in As InputStream
    in = File.OpenInput(File.DirAssets, "rss.xml") 'This file was added with the file manager.
    parser.Parse(in, "Parser") '"Parser" is the events subs prefix.
    in.Close
این سورس:
http://s5.picofile.com/file/8161001300/XmlSax.zip.html
منبع:
http://www.b4x.com/android/forum/threads...rary.6866/

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ مرداد ۹۴ ، ۱۷:۱۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ مرداد ۹۴ ، ۱۷:۰۱
مدیرکل

میخوام یاد بدم عکسی رو دانلود و نمایش بدید(البته پس از دانلود توی گوشی ذخیره میشه و توی پوشه ی Files محل اجرا برنامه دیگه چیزی نمی بینیم چون apk باید روی گوشی یا blueStack آنزیپ(یا unPack) بشه و روی حافظه اونجا قرار می گیره و فایل دانلودی هم میره همونجا.big grin

ما انواع ماژول داریم:
ماژول اکتیویتی
ماژول سرویس
ماژول کلاس
ماژول کد
-

یک ماژول سرویس با نام DownloadService ایجاد کنید( منوی project->Add new module->Service Module)
-
کد زیر رو بریزید توش و ذخیره کنید:

کد:
#Region Module Attributes
    #FullScreen: False
    #IncludeTitle: True
    #ApplicationLabel: Download Service
    #VersionCode: 1
    #VersionName:
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region

'Activity module
Sub Process_Globals
    Dim image As Bitmap
End Sub

Sub Globals
    Dim btnDownload As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("1")
    'check if we already loaded the image previously.
    If image.IsInitialized Then
        Activity.SetBackgroundImage(image)
    End If
End Sub

Sub Activity_Resume
    'check if download has finished while the activity was paused
    If btnDownload.Enabled = False AND DownloadService.JobStatus = DownloadService.STATUS_DONE Then
        FinishDownload
    End If
End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub btnDownload_Click
    Activity.Color = Colors.Black
    DownloadService.URL = "http://www.basic4ppc.com/basic4android/images/designer1.png"
    DownloadService.Target = File.OpenOutput(File.DirInternalCache, "image.png", False)
    StartService(DownloadService)
    btnDownload.Enabled = False
End Sub

Sub FinishDownload
    'Load the saved image
    If DownloadService.DoneSuccessfully = True Then
        image = LoadBitmapSample(File.DirInternalCache, "image.png", _
         100%x, 100%y)
        Activity.SetBackgroundImage(image)
    End If
    btnDownload.Enabled = True
    DownloadService.JobStatus = DownloadService.STATUS_NONE
End Sub
سپس به اکتیویتی main برگردید و این کدها رو بریزید توش:
کد:
#Region Module Attributes
    #FullScreen: False
    #IncludeTitle: True
    #ApplicationLabel: Download Service
    #VersionCode: 1
    #VersionName:
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region

'Activity module
Sub Process_Globals
    Dim image As Bitmap
End Sub

Sub Globals
    Dim btnDownload As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("1")
    'check if we already loaded the image previously.
    If image.IsInitialized Then
        Activity.SetBackgroundImage(image)
    End If
End Sub

Sub Activity_Resume
    'check if download has finished while the activity was paused
    If btnDownload.Enabled = False AND DownloadService.JobStatus = DownloadService.STATUS_DONE Then
        FinishDownload
    End If
End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub btnDownload_Click
    Activity.Color = Colors.Black
    DownloadService.URL = "http://www.basic4ppc.com/basic4android/images/designer1.png"
    DownloadService.Target = File.OpenOutput(File.DirInternalCache, "image.png", False)
    StartService(DownloadService)
    btnDownload.Enabled = False
End Sub

Sub FinishDownload
    'Load the saved image
    If DownloadService.DoneSuccessfully = True Then
        image = LoadBitmapSample(File.DirInternalCache, "image.png", _
         100%x, 100%y)
        Activity.SetBackgroundImage(image)
    End If
    btnDownload.Enabled = True
    DownloadService.JobStatus = DownloadService.STATUS_NONE
End Sub
به منوی Designer برید و در بخش طراحی یک لی اوت به نام "1" بسازید و یک دکمه از منوی Add view اضافه کنید و اسمشو بذارید btnDownload. سپس با ctrl+S ذخیره کنید و پروژه رو اجرا کنید.
روی دکمه ی دانلود بزنید و منتظر باشید عکس دانلود بشهbig grin
اینم سورس:
http://s5.picofile.com/file/8161000026/D...e.zip.html
--
نکته مهم:
یادتون نره کتابخونه http رو باید در بخش libs (پایین و سمت راست محیط basic4android) تیک بزنید.
اگه این کتاب خونه رو ندارید از اینجا دانلود:
http://s5.picofile.com/file/8161000250/http.zip.html
و سپس فایل های jar و xml رو در مسیر نصب basic4android و داخل پوشه ی libraries(کتابخونه ها) بریزید و توی برنامه هم تیک بزنید http رو.

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1

۱ نظر موافقین ۰ مخالفین ۰ ۰۵ مرداد ۹۴ ، ۱۶:۳۴
مدیرکل
http://promakers.ir/showthread.php?tid=2891

number = zptr غلط هست. چون zptr یک pointer(اشاره گر) هست و به آدرس نامعلومی از حافظه اشاره می کنه و آدرس ها چون بر مبنای hexa decimal(مبنای شانزده) هستند نمیشه اونا رو در متغیر number که از نوع دیگه ای(int) ذخیره کرد.

شما باید محتوای جایی که اشاره گر بهش اشاره می کنه رو بریزید توی متغیر number به این صورت :
کد PHP:
number=*zptr 

++zptr درسته هم باعث میشه اشاره گر به خانه ی بعدی حافظه اشاره کنه(خود متغیر اشاره گر 2 بایت اشغال می کنه در CPP. اگه نوع int یا float باشه یعنی هر سلول به اندازه ی 2 بایت int یا 6 بایت float اشغال می کنه)

اگه بخواید با اشاره گر ها خانه های متوالی آرایه رو نشون بدید و چاپ کنید می تونید یه حلقه whie not null یا for بنویسید که هر بار به مقدار اشاره گر یکی اضافه کنه و سپس محتوای سلول مد نظر رو بخونه(برای خوندن محتوای جایی که اشاره گر بهش اشاره می کنه کافیه قبل از متغیر اشاره گر یک علامت ستاره بذاریم happy )

دستور زیر هم اشتباهه :
کد:
for(i = 0 ; i <= 5 ;i++)
   cout << zptr[i];
چون طبق تعریف داریم :
کد PHP:
int *zptr
طبق کد فوق، zptr یک اشاره گر هست( که به سلول های نوع int اشاره می کنه)
پس نمیشه zptr[i] بنویسیم . باید اینطوری کد رو اصلاح کنی:
کد PHP:
for(<= ;i++)
{
   
cout << *(zptr);
zptr++;//zptr=zptr+1;


در مورد اشاره گرها می خوای بیشتر بدونی کتاب کنکور C مقسمی یا cpp پارسه رو بخون. PDF رایگان توی اینترنت ریخته.مشکلی بود بپرسbig grin
کد زیر هم مشکل داره(اشکال منطقی:یعنی ظاهرا مشکل ممکنه نداشته باشه اما ممکنه در لحظه ی کامپایل خطا بده):
کد:
int *num;
cout << *num;
دلیل :
num یک پواینتر(اشاره گر) هست و به فضای نوع int باید اشاره کنه.اما ما مشخص نکردیم به کجا اشاره کنه پس محتوای قسمتی از حافظه که آدرسش رو نمی دونیم داریم با cout به خروجی(console out=cout) می بریم و ممکنه خطاهایی دریافت کنیم یا یه محتوای غیر قابل فهم یا چند کاراکتر بیخود یا هنگ کنه برنامه.
پس باید ابتدا اشاره گ رو اشاره بدی به یک نوع(حتما int چون نوع اشاره گر ما int هست). مثال اینطوری :
کد زیر محتوای متغیر num رو با استفاده از اشاره گر p چاپ می کنه :
کد PHP:
int num=25;//یه عدد دلخواه
int *p;
p=&num//  آدرس متغیر نامبر رو میریزه توی اشاره گر پی
cout<<*p;//محتوای جایی که پی بهش اشاره می کنه رو چاپ می کنه 

کدهای زیر هم غلط هستند:
کد:
short * numptr,result;
void * genericptr = numptr;
result = * genericptr  + 7;
زیرا متغیرهای result و numptr از نوع short int (نصف فضای int) هستند و باید مقداردهی genericptr هم از همون نوع short باشه تا بینشون بتونیم تبادل دیتا کنیم.
ضمنا اشاره گر از نوع void نداریم.یعنی نه اینکه نداریم داریم ولی محتوای جایی که اشاره گر از نوع void داره بهش اشاره می کنه رو نمی شه برگشت داد مگر اینکه تبدیل نوع یا Type cast (تبدیل نوع موقت) انجام بدیم و تبدیلش کنیم به short اینطوری:
کد:
short * numptr,result;
void * genericptr = numptr;
result =(short *) genericptr  + 7;//محتوای جایی که اشاره می کند را تبدیل به شورت کرده و با هفت جمع و در ریزالت می ریزد

منبع در مورد اشاه گر نوع void:
http://www.learncpp.com/cpp-tutorial/613-void-pointers/

لطفا سوالات در گروه یونیتی گیم اور که در کانال gameoverblog متعاقبا اعلام می گردد بپرسید.
با تشکر

https://telegram.me/gameoverblog


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


نکته : با تابع Debug.ClearDeveloperConsole() در بعضی مواقع درست کار نمی کنه.پس یک تابع دیگه می نویسیم.(در این آموزش از کتابخونه ی Reflection کمک می گیریم)

کد سیشارپ:

static void ClearConsole () {
        // This simply does "LogEntries.Clear()" the long way:
var logEntries = System.Type.GetType
("UnityEditorInternal.LogEntries,UnityEditor.dll");

var clearMethod = logEntries.GetMethod("Clear", 
    System.Reflection.BindingFlags.Static | 
    System.Reflection.BindingFlags.Public);

clearMethod.Invoke(null,null);
    }
هرجایی نیاز داشتید Debug.Log رو اجرا کنید می تونید قبلش ClearConsole() رو فراخوانی کنید تا لاگ(ثبت)های قبلی پاک بشه.
کد فوق به زبون سیشارپ هست.شما هم سعی کنید با سیشارپ بیشتر اوقات کدنویسی کنید چون ساختارش منظقی تر و استاندارد تر هست.
۱ نظر موافقین ۰ مخالفین ۰ ۰۴ مرداد ۹۴ ، ۱۶:۳۴
مدیرکل
	// Detects clicks from the mouse and prints a message
	// depending on the click detected.	function Update() {
		if(Input.GetMouseButton(0))
			Debug.Log("Pressed left click.");
		if(Input.GetMouseButton(1))
			Debug.Log("Pressed right click.");
		if(Input.GetMouseButton(2))
			Debug.Log("Pressed middle click.");
	}
۱ نظر موافقین ۰ مخالفین ۰ ۰۴ مرداد ۹۴ ، ۱۴:۱۸
مدیرکل

gameover.blog.ir

این کد زیاد functional نیست و یکم ارتباط باهاش ضعیف هست ولی فعلا اینو برای شما می ذاریم :

کد به زبان سیشارپ هست در یونیتی :

خیلی ساده می شه کدها رو تحلیل کرد.تابع Invoke هم اگه متوجه نمیشید توی Help یونیتی هست.یه خورده تحلیتون رو ببرید بالا.اگه شما کد بهتری سراغ دارید لینک بدید بذاریم تو وبلاگ:

using UnityEngine;
using System.Collections;

public class double_click : MonoBehaviour {
	bool mouseClicksStarted = false; 
	int mouseClicks = 0; 
	float mouseTimerLimit = .25f;	// Use this for initialization
	void Start () {
		}
	void Update() {
	
		   if(Input.GetMouseButtonDown(0)) OnClick ();	
		
	}
	
	public void OnClick(){
		mouseClicks++;
		if(mouseClicksStarted){
			return;
		}
		mouseClicksStarted = true;
		Invoke("checkMouseDoubleClick",mouseTimerLimit);
	}
	
	
	private void checkMouseDoubleClick()
	{
		if(mouseClicks > 1){
			Debug.Log("Double Clickedd");
			
		}else{
			Debug.Log("Single Clicked");
			
		}
		mouseClicksStarted = false;
		mouseClicks = 0;
	}}
۰ نظر موافقین ۰ مخالفین ۰ ۰۴ مرداد ۹۴ ، ۱۴:۱۳
مدیرکل
منبع:gameover.blog.ir
نکته : برای حالت سه بعدی هست مطلب زیر:
کد js(جاوااسکریپت)
var Xrotatespeed:float=10;
var Yrotatespeed:float=10;

function Start () {

}

function Update () {
    transform.Rotate(new Vector3 (0,Input.GetAxis("Mouse X")*Xrotatespeed,0));     
    //transform.Rotate(new Vector3 (Input.GetAxis("Mouse Y")*Yrotatespeed*-1,0,0));
    print(transform.rotation.eulerAngles); 
} 


اینم کد cs(سیشارپ) اگه اشتباه نکرده باشم اینطوری میشه :

float Xrotatespeed=10f;
float Yrotatespeed=10f;

void Start () {

}

void Update () {
    transform.Rotate(new Vector3 (0,Input.GetAxis("Mouse X")*Xrotatespeed,0));     
    //transform.Rotate(new Vector3 (Input.GetAxis("Mouse Y")*Yrotatespeed*-1,0,0));
    Debug.Log(transform.rotation.eulerAngles); 
}

توضیح:
دلتا تایم رو حذف کردم تا سرعت دست خودم باشه و با x ماس انجام بشه.
ضمنا چرخش بالا و پایین (حول محور X ) رو حذف کردم چون خیلی وقتا لازم نیست و بیشتر کاربر رو گیج می کنه.

توضیحات اضافی برای یادگیری بیشتر و درک سیستم ماوس و مختصات:

ماوس دو تا پارامتر داره x,y
تابع Rotate سه تاپارامتر داره x,y,z که زاویه چرخش رو حول محور دلخواه میدیم به پارامترهاش.

چرخش بالا و پایین (روی محور y ماوس):
اگه بخوایم چرخش به بالا و پایین رو انجام بدیم باید حول محور x بچرخیم یعنی پارامتر اول رو مقدار میدیم و دومی و سومی رو صفر می کنیم. و ضمنا زاویه ی چرخش بالا و پایین رو با حرکت بالا و پایین ماوس انجام میدیم و چون ماوس وقتی بالا می ره y اش تغییر می کنه پس پارامتر اول که قرار بود حول محور x چرخش بشه رو در Mouse Y ضرب کردیم.

چرخش به چپ و راست(روی محور x ماوس):
اگه بخوایم چرخش به چپ و راست رو انجام بدیم باید حول محور y بچرخیم یعنی پارامتر دوم رو مقدار میدیم و اولی و آخری رو صفر می کنیم. و ضمنا زاویه ی چرخش چپ و راست رو با حرکت چپ و راست ماوس انجام میدیم و چون ماوس وقتی چپ وراست می ره x اش تغییر می کنه پس پارامتر دوم که قرار بود حول محور y چرخش بشه رو در Mouse X ضرب کردیم.

راستی: rotation دوربین اصلی رو روی 0و0و0 بذار و اسکریپت رو هم بنداز روی دوربین اصلی


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



روش دوم :

استفاه از خصوصیت rotation هست که از نوع Quaternion هست و با استفاده از تابع اویلر باید مقدار بهش بدیم اینطوری:
void Update () {
transform.rotation =
		Quaternion.Euler(new Vector3(0, Input.mousePosition.x, 0));
	}

به دقت کنید. پارامتر اول و آخر یعی x و z رو صفر گفتیم چون چرخشی حول محور x(میله ای از چپ به راست که چرخش حول آن یعنی چرخش از جلو و عقب)، و چرخشی حول محور Z (میله ای از عقب به جلو که چرخش حول آن یعنی چرخش از پهلو) نداریم.

فقط پارامتر دوم یعنی چرخش حول محور Y(میله ای از پایین به بالا که چرخش حول آن یعنی چرخش به چپ و راست) را با مقدار حرکت ماوس به چپ و راست تنظیم کردیم تا اگر ماوس به چپ حرکت کند دوربین به چپ و اگر به راست حرکت داده شد دوربین به راست نگاه کند.
۱۰ نظر موافقین ۰ مخالفین ۰ ۰۴ مرداد ۹۴ ، ۱۳:۵۵
مدیرکل
می تونی hit بدی و تگ.اگه برخورد کرد یا در فاصله ی دلخواه بود parent اسلحه رو مساوی با player کن که هر جا player میره اسلحه هم باهاش بره و همچنین Rotation و Position اسلحه رو مساوی با چرخش و پوزیشن شی empty ای قرار بده که فرزند player هست و روی نوک دست player قرارش دادی.

اینم دو تا مدل برای تعویض (switch) اسلحه و برداشتن(pickup)اسلحه.


http://pastebin.com/7zmZS7ze
http://pastebin.com/TwpnNjdk


شما مشکلت اینه که فکر نمی کنی. باید کدها رو حفظ نکنی بلکه باید نمونه کد پیدا کنی و تحلیل کنی.

اگه بتونی مسئله رو با ذهنت حل کنی خیلی راحت می تونی کدها رو دستکاری کنی طبق چیزی که نیازت هست.

تا جایی که می تونی سعی کنید مسئله رو با فکر کردن حل کنید نه صرفا کپی پست کردن کدها.

کپی پیست هم عالیه ولی به شرطی که کدتون رو تمیز بنویسید با توضیحات و اسم متغیرهای مناسب.

-

اگه مبحث انیمیت کردن تفنگ رو میخواید بدونید اینو بخونید:

http://forum.unity3d.ir/%D9%BE%D8%B1%D8%B3%D8%B4-%D9%88-%D9%BE%D8%A7%D8%B3%D8%AE/5048-%D8%A8%D8%B1%D8%AF%D8%A7%D8%B4%D8%AA%D9%86-%D8%AA%D9%81%D9%86%DA%AF-%D8%A7%D8%B2-%D8%B1%D9%88%DB%8C-%D8%B2%D9%85%DB%8C%D9%86.html

بازم توی تحلیل کد مشکل بود بپرسید.

البته نیازی نیست گرافیک یا انیمیشن بدید تا پیچیده بشه.

می تونی خیلی ساده کد سوئیچ اسلحه رو بنویسید که وقتی به محدوده رسید(محدوده رو با مکعب collider با حجم دلخواه اطراف بازیکن تنظیم می کنید.البته من توصیه می کنم Trigger یا Ray و hit بدید(hit به معنی برخورد بازیکن با شی اسلحه یا ... هست و Ray به معنی اشعه است.در اصطلاح تابعی برای اینکار در یونیتی هست که توی خود help یونیتی از منوی help می تونید برید بخش Scripting reference و سرچ کنید مثلا hit رو بزنید)

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


یک اسکریپت سیشارپ به نام fasele (همنام با کلاسی که توی کد زیر نوشتم) بسازید.

دو متغیر go1 و go2 برای دریافات دو گیم ابجکت از inspector تعریف کنید که public باشه.((اگه private باشه خصوصی هست و تو inspector دیده نمیشه))

سپس توسط تابع محاسبه ی فاصله ی بین دو بردار سه بعدی (Vector3.Distance) فاصله رو حساب می کنیم و نمایش می دیم.


مثال csharp:
using UnityEngine;
using System.Collections;

public class fasele : MonoBehaviour {
    public GameObject go1;
    public GameObject go2;
    private float dist;

    void Update () {
        dist = Vector3.Distance (go1.transform.position, go2.transform.position);
        Debug.Log (dist);
    }
}


یادتون نره به دو گیم ابجکت رو که می خواید فاصله ی بینشون رو به طور داینامیک محاسبه کنید با ماوس توی inspector بندازید روی متغیرهای go1 و go2.

نکته : Vector3.Distance(a,b) معادل (a-b).magnitude هست. همینور معادل:

float distance = (g.transform.position - this. transform. position).sqrMagnitude;



فرق Vector3.Distance و Vector3.magnitude و Vector3.sqrMagnitude :



Vector3.Distance:
// C#
     public static float Distance(Vector3 a, Vector3 b)
     {
         Vector3 vector = new Vector3(a.x - b.x, a.y - b.y, a.z - b.z);
         return Mathf.Sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);
     }
Vector3.magnitude:
// C#
     public static float Magnitude(Vector3 a)
     {
         return Mathf.Sqrt(a.x * a.x + a.y * a.y + a.z * a.z);
     }


Vector3.sqrMagnitude:
// C#
     public static float SqrMagnitude(Vector3 a)
     {
         return a.x * a.x + a.y * a.y + a.z * a.z;
     }

sqrMagnitude سریع از Magnitude هست.

Vector3.Distance هم می یاد بر حسب تفریق برداری و سپس مجموع مربع هر یک از پارامترهای xو y و z فاصله رو محاسبه می کنه.(در کتب ریاضی می تونید اثبات این فرمول ها رو پیدا کنید)
۵ نظر موافقین ۰ مخالفین ۰ ۰۲ مرداد ۹۴ ، ۱۴:۱۰
مدیرکل

نکاتی از یونیتی :


ما مستقیم نباید transform.position رو دستکاری کنیم و بهتره مقداری رو پردازش و محاسبه کنیم و توی یه متغیری بریزیم،سپس مقدار اون متغیر رو بریزیم توی بردار x یا y یا z از ساب کلاس position.

همچنین اگه یه مقدار اعشاری مثل 0.5 یا 0.6 یا ...(اینا مثال هست) رو نوشتیم اگه خطای تبدیل double به float داد باید حتما تبدیل نوع موقت رو انجام بدیم( به این صورت که یه پرانتز باز و بسته می کنیم قبل از اسم متغیر می ذاریم و توش نوع تبدیل رو می ذاریم مثل (float) .)

حالا این کد رو ببینید:


کد :
    void Update(){
        if (
Input.GetKey (KeyCode.LeftArrow)) 
        {
            
pos transform.position;
            
pos.-= (float)0.5;
            
transform.position pos;
            
        } 

در کد بالا رویداد Update رو بکار بردیم.

گفتیم اگه کاربر فلش چپ رو زد پوزیشن رو دریافت کنه و 0.5 تا ازش کم کنه و نتیجه رو در متغیر pos ریختم و نهایتا pos رو نسبت دادم به transform.position.x.

اگه مستقیما می یومدم اینطوری کد می نوشتم خطا می داد :
کد:
if (Input.GetKey (KeyCode.LeftArrow))
        {
            //pos = transform.position;
            //pos.x -= (float) 0.5;
            transform.position.x -= (float) 0.5;

        }
خطاشم این بود :
کد:
error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.position'. Consider storing the value in a temporary variable
از خطا دریافت می کنیم باید قبلش مقداری رو در یک متغیر temporary یا موقتی بریزیم و سپس ربطش بدیم به position.x یا position.y یا position.z و ... .


توضیحات اضافی:

در یونیتی transform.position می تونه از نوع بردار دو بعدی (Vector2) بوده (یعنی فقط دو مقداری x و y) و سه بعدی (Vector3) باشه(سه تا بردار رو می تونیم دستکاری کنیم x و y و z)

x یعنی محور چپ و راست(اگه مقدار مثبت بدیم یعنی راست. اگه مقدار منفی بدیم یعنی چپ)
y یعنی محور بالا و پایین(اگه مقدار مثبت بدیم یعنی بالا، اگه مقدار منفی بدیم یعنی پایین)
z یعنی محور جلو و عقب(اگه مقدار مثبت بدیم یعنی جلو، اگه مقدار منفی بدیم یعنی عقب)

یادتون نره متغیر pos رو از نوع Vector3 در بالای برنامتون تعریف کنید. اینطوری:
کد :
private Vector3 pos
البته اگه public رو به جای private بذارید عمومی میشه و وقتی اسکریپت رو به گیم ابجکت دلخواه ربط می تونید توی پنجره ی inspector خصوصیت pos به گیم ابجکت اضافه می شه و می تونید از ورودی مقدارشو بخونید.ولی من خصوصی(private) تعریف کردم چون نیاز نداشتم ولی بهتره شما public تعریف کنید.

یه نکته ی دیگه در مورد اسم کلاس های سیشارپ اینه که بعد از public class (معمولا حط اول اسکریپت های سیشارپی) حتما اسم کلاس باید همنام اسم اسکریپت باشه.مثلا اگه اسکریت شما اسمش هست ali سپس اینطوری میشه :
کد :

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

یک فایل صوتی مثل mp3 رو بکشید توی پروژه تا اضافه بشه به پروژه.

یک اسکریپت js با کد زیر ساخته و بندازید روی دوربین اصلی :

کد PHP:
var myClip AudioClip;
     
    function 
Start () {
     
AudioSource.PlayClipAtPoint(myCliptransform.position);
    } 
سپس در hierarchy(لیست اجزای پروژه) دوربین اصلی رو انتخاب کنید تا توی inspector بتونیم متغیر My Clip رو در زیر شاخه ی اسکریپت اضافه شده ببینیم.

حالا فایل صوتی mp3 رو با ماوس بگیرید بندازید روی متغیر My Clip.

بازی رو اجرا کنید تا موزیک پخش بشه.
http://s5.picofile.com/file/8136414518/play_sound.jpg
--
این روش تنظیمات نداره و من اینو توصیه نمی کنم.

روش دیگه روش object oriented و شی گرا هست که به صورت ویژوال توی محیط از طریق کامپوننت ها صدا رو اضافه می کنیم و پارامترهای مختلف مثل فرکانس و ... رو توی کادر خصوصیاتدر inspector برای اون کامپوننت تنظیم می کنیم و بعد از طریق کد سعی می کنیم اون کامپوننت رو کنترل کنیم و الی آخر.
اینکار توسط افزودن کامپوننت Component->Audio->Audio Source انجام میشه.
اگه شما یونیتی 4 دارید و help به درستی نصب باشه،کافیه این لینک رو توی فایرفاکس اجرا کنید. معمولا help توضیحات لازم رو برای کسی که یونیتی رو نصب داره میاره و آدرسش واسه اونایی که windows 7 دارن اینه :
file:///C:/Program%20Files%20%28x86%29/Unity/Editor/Data/Documentation/Documentation/Manual/Sound.html
حالا بازم اگه این لینک کار نکرد بگید من خود help رو save و zip و upload کنم روی picofile یا جاهای دیگه بذارم واسه دانلود شما سروران گرامی.

روش دم رو به فارسی توضیح میدم تا دیگه عذاب نکشن بعضیا:
یک گیم ابجکت empty ایجاد کنید.(بلد نیستید سوال کنید آی مبتدی ها)

از مسیر Component->Audio->Audio Source ، کامپوننت audio source رو به ابجکت empty یا هر ابجکتی که دوست دارید اضافه کنید (فقط دقت کنید بهتره که دوربین باشه و دوربین اصلی باشه که player رو دنبال می کنه تا صدا هم همراش بیاد وگرنه وقتی از صدا دور میشیم ممکنه صدا کم بشه و نشنویم)

http://s5.picofile.com/file/8136417592/audioSource_component.jpg
تنظیمات مثل loop تکرار ، قطع شدن صدا / mute و اولویت (priority) و غیره رو هم توی inspector انجام بدید.

اگه واسه این کامپوننت می خواید کد بنویسید و کنترلش رو در دست بگیرید می تونید از توابع Play + Stop + Pause + PlayOneShot و خصوصیات Enabled و .... واسه اجرا و توقف و استاپ و از کار انداختن صدا و ... استفاده کنید.

مثلا توی inspector می تونید مستقیم متغیر Pitch(دانگ صدا) رو با نوار لغزان زیاد و کم کنید و موقع اجرا نتیجه رو ببینید که صدا رو تند و کند می کنه و خیلی خنده داره میشه.

کد مربوط هم برای AudioSource.pitch اینه :
کد:
//js
var pitch : float
//Description

//The pitch of the audio source

audio.pitch = 1.0;

اگه به جای 1 مثلا 1.94 بدید صدا خیلی خنده دار میشه و عین بچه ها می خونه.

بقیه ی کدها رو هم اگه خواستید درو کنید این سایت روسی رو ببینید. البته تو بخش رفرنس ها مطالب انگلیسی هست چون مجبور بودن استاندارد رو رعایت کنن و خوب این به نفع ماست که روسی بلد نیستیم و انگلیسی کمی بلدیم.
http://docs.unity3d.ru/ScriptReference/AudioSource.html
--
بازم مشکل ترجمه داشتید می تونید مستقیم یک سایت روسی یا ... رو بدید به مترجم های google مثل site translator یا ... که براتون به فارسی ای انگلیسی یا غیره ترجمه کنن.
منبع :
http://promakers.ir/showthread.php?tid=9544&pid=122371#pid122371
۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مرداد ۹۴ ، ۰۸:۵۵
مدیرکل

میخواستم ببینم تو گیم میکر امکانش هست از کدی به عنوان شبیه ساز کلیدی از کیبورد استفاده کرد؟ چنین چیزی اصلا امکان پذیر هست؟


آره هست.
مختصات ناحیه ی مستطیلی اسپرایت دکمه رو که می خوای روش کلیک بشه کار فلان کلید رو انجام بده ربط می دی بهش اینطوری:

کد :
virtual_key_add(xywhkeycode); 

مثلا می خوای اگه روی اسپرایت  spr_Left
 [تصویر: spr_Left.gif]
که در محدوده ی x=32,y=32 و width=64,height=64 هست کلیک کردیم رویداد vk_left اجرا بشه داریم :
کد :
virtual_key_add(32326464vk_left);
یا
virtual_key_add
(objButtonLeft.xobjButtonLeft.yobjButtonLeft.sprite_widthobjButtonLeft.sprite_heightvk_left); 

فرض کردم ابجکتی دارم که عکس یا اسپرایت فلش چپ روشه و اسمش objButtonLeft هست.



http://s4.picofile.com/file/7858145585/1.jpg

http://docs.yoyogames.com/source/dadiosp...y_add.html
۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مرداد ۹۴ ، ۰۲:۳۵
مدیرکل