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

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

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

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

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

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

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

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

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

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

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
۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مرداد ۹۴ ، ۰۲:۳۵
مدیرکل

asset یعنی عکس ها ، اسکریپت ها،پریفب ها(کپی یا نمونه ای مدل های بازی که به صورت موقت از پنجرهی اجزای محیط بازی به  پنجره ی اجزای پروژه ی بازی انتقال یافته است و می توانیم در لحظه ی اجرای بازی با استفاده از کدنویسی و نام پریفب آن را تکثیر کنیم)،فایل های متنی،صوتی،ویدئو ،مدل ها و کلیه فایل هایی که به بازی اضافه می کنیم.

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

آموزش خوب متنی رو از دست ندید. حفظ نکنید بلکه فهم کنید کدها رو ... تحلیل کنید یاد می گیرید...

کاربرد این آموزش: خیلی کاربرد داره به ویژه بازی های اندرویدی. مثال : حرکت player به جایی که کلیک کردیم مثلا رفتن به سمت درب اگر روی درب کلیک کردیم.(البته تابع Slerp هم هست توی همون لینک آموزش توی پرومیکرز می تونید Slerp و transform رو بیاموزید)

-

http://cdn2.raywenderlich.com/wp-content/uploads/2014/01/zombie_circles.gif


آموزش فارسی:

http://promakers.ir/showthread.php?tid=10144&pid=109531#pid109531




منبع :
www.raywenderlich.com/61532/



۴ نظر موافقین ۰ مخالفین ۰ ۳۱ تیر ۹۴ ، ۱۷:۳۵
مدیرکل
برای پسربچه‌ای که تا چهارده‌سالگی چوپانی می‌کرده و حتی بعد از مهاجرت نیز شب‌ها را به ظرف شستن می‌گذرانده چه سرنوشتی را پیش‌بینی می‌کنید؟

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

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

باید اولا یه اسپرایت(فایل gif حاوی انیمیشن راه رفتن) از قبل بسازی
بعدش add کنی روی sprite ات.
بعدش image_speed و sprite_index و set کنی .
image_speed سرعت حرکت بین فریم های gif رو مشخص می کنه.

مثلا واسه فلش چپ یا رویداد left اینو بذار:

کد PHP:
sprite_index=spr_left
image_speed
=0.5
speed
=-
واسه راه رفتن به راست در رویداد right اینو بذار:
کد PHP:
sprite_index=spr_right
image_speed
=0.5
speed
=
واسه رویداد no key هم اینو:
کد PHP:
image_speed=0
speed
=
دو تا اسپرایت هم واسه راه رفتن چپ و راست بساز با اسمهای spr_right و spr_left که توی کد اوردمشون.
اینا رو به player ات نسبت بده .
سوال بود بپرس
speed یعنی سرعت حرکت ابجکت
image_speed یعنی سرعت جرکت انیمیشن gif اسپرایت
sprite_index هم یعنی اندیس یا ادرس فریمی که باید اجرا بشه که ما مستقیم با اسم اسپرایت مربوط اونو set می کنیم و خودش خودکار می فهمه روی کدوم فریم هست یا از اولش اجرا می کنه
۰ نظر موافقین ۰ مخالفین ۰ ۳۱ تیر ۹۴ ، ۱۶:۴۶
مدیرکل

https://s.cafebazaar.ir/1/upload/screenshot/gameover.zoodpaz10.jpg

https://cafebazaar.ir/app/gameover.zoodpaz1/


برنامه ها رایگان هست.لطفا برای حمایت از ما روی تبلیغات برنامه ها بعد از نصب کلیک کنید.
۰ نظر موافقین ۰ مخالفین ۰ ۳۱ تیر ۹۴ ، ۱۴:۴۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۳۱ تیر ۹۴ ، ۰۹:۱۹
مدیرکل
عمل کن یاد یگیری. vs 2015 هم نمیخواد همون 2005 رو نصب کن. اینم اولین اموزش ما:

http://www.aparat.com/v/2CeEU


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

اینم رادیو آنلاین موفقیت. اونایی که ADSL دارید حتما گوش کنید(همه ی پارت ها رو گوش بدید به ویژه سخنان دکتر حلت)


http://www.movafaghiat.com/%D8%B1%D8%A7%D8%AF%DB%8C%D9%88%20%D9%85%D9%88%D9%81%D9%82%DB%8C%D8%AA


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

فقط کافیست CTRL+E بزنید یا از منوی Window->Module برید. بعدش تو کادر ماژول ها هرچی رو دوست داشتید انتخاب کنید.


خرید آموزش 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
۰ نظر موافقین ۰ مخالفین ۰ ۲۹ تیر ۹۴ ، ۱۶:۲۴
مدیرکل

فرض کنید من می خوام متن html سایت google رو get کنم و توی گیم میکر نمایش بدم.
--
یک room بسازید.

یک ابجکت بسازید و بذارید روی Room.

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

//author:Sajjad3011
//promakers.ir
url="http://www.google.com/";
if(os_is_network_connected()==true) 
{
globalvar player_name,player_score;
str1="";
post = http_post_string(url, str1); 
}

رویداد asyncron HTTP (درخواست هایی که نیاز به انتظار دارن رو می گیم آسنکرون یا async):

var r_str = "null";
if ds_map_find_value(async_load, "id") == post
   {
   if ds_map_find_value(async_load, "status") == 0//status rooye Server tarif shode hast
      {
      r_str = ds_map_find_value(async_load, "result");//result rooye Server tarif shode hast
show_message(r_str);
      }
   }


اجرا کنید و منتظر باشید تا متن html سایت گوگل رو دریافت و روی message box نشون بده :

خروجی :


http://s3.picofile.com/file/8201162942/get_google.gif


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

http://s3.picofile.com/file/8201165834/get_web.gmz.html

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

این کلیپ رو ببینید تا ایده ی خوبی رو دریافت کنید:

http://s3.picofile.com/file/8201152650/render_sprite_for_game_maker.gif

https://www.mediafire.com/?e8qk8hb8jj71c3y

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ تیر ۹۴ ، ۱۳:۵۴
مدیرکل
وقتی آموزش خوبی وجود داره خوب همون منبع رو معرفی می کنم براتون تا آمار بچه های اونجا هم بره بالا... دیگه چی از این بهتر:

http://basic4android.org/index.php?/topic/2152-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D8%B5%D9%88%D8%B1%D8%AA-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86/


۰ نظر موافقین ۰ مخالفین ۰ ۲۹ تیر ۹۴ ، ۱۲:۱۶
مدیرکل
می دونید در حالتی که به اینترنت وصل نیستیم آی پی سیستم لوکال یا محلی 127.0.0.1 هست.پس وقتی به اینترنت وصل میشیم توی اندروید شاید آی پی عوض بشه(البته خودم زیاد اعتقادی به این کد ندارم خودتون چک کنید)ابتدا یادتون نره کتابخانه ی network رو add کنید.سپس:
Dim Sck As ServerSocket
 Sck.Initialize(0,"")
 If Sck.GetMyIP <> "127.0.0.1" Then
End If

خرید آموزش 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
۱ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۹:۰۶
مدیرکل
ابتدا کتابخانه ی network رو add lib کنید.
سپس:
این کد رو بعد از کد لود اکتیویتی در رویداد ایجاد اکتیویتی بذارید :

Dim ServerSocket1 As ServerSocket
Msgbox(ServerSocket1.GetMyWifiIP,"WiFi IP")
Msgbox(ServerSocket1.GetMyIP,"my IP")

توضیحات خواستید بپرسید.
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۹:۰۳
مدیرکل
Dim phoneCall As PhoneCalls
phoneCall.Call("09351234567")

یادتون نره کتابخانه Phone رو به پروژتون Add lib کنید.(اگه کتابخونه رو ندارید بگید فایل jar و XML رو آپلود کنم)
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۹:۰۱
مدیرکل

اپلیکیشن اندروید همون برنامه ی کامپایل شده ی apk هست که روی گوشی اندروید یا ... نصب و اجرا می کنیم.

اکتیویتی به معنی یک صفحه از اپلیکیشن هست.

apk یعنی android package

۰ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۲:۱۷
مدیرکل
این لینک واسه mysql هست نه mysqli.
گرچه mysql قدیمی تر هست اما روی اکثر سایت های قدیمی هم جواب میده واسه همین توصیه می کنم یادش بگیرید:

http://webcheatsheet.com/php/connect_mysql_database.php


برای اجرای php هم XAMPP رو نصب کنید(WAMPP و LAMPP و easy PHP نمی خواد)

یک کتاب php هم هست همونو بخونید توی قسمت فروشگاه هست.قیمتش خیلی باشه 1200 تومنه از خیلی کتب توی بازار هم بهتره:
http://gameover.sellfile.ir/prod-images/166107.jpg
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۲:۱۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۱:۱۱
مدیرکل

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

AddPermission (android.permission.INTERNET)


برای محکم کاری عدم دسترسی به اینترنت :


RemovePermission(android.permission.INTERNET)

خرید آموزش 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://s5.picofile.com/file/8149102168/book.jpg

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

http://it-ebooks.info

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

برای جستجو در اینترنت، سیستم عامل اندروید از موتور جستجوی Open Source یی تحت عنوان WebKit استفاده می کند.

به منظور پردازش عکس های دو بعدی و سه بعدی، سیستم عامل اندروید از OpenGL ES استفاده می کند

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

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

gameover.blog.ir

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

http://s5.picofile.com/file/8149098768/ak47_pov.jpg


لینک دانلود با حجم کمتر از 2 مگ :

به لینک زیر برید و چند لحظه صبر کنید سپس skip ads یا رد تبلیغ رو بزنید.لینک مستقیم روی پیکو فایل میاد


http://opizo.com/PUSSbN

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

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


Var pref_fire:GameObject;//------------pref_fire moteghayyeri hast ke az voroodi atish ro midim behesh
f = Instantiate(pref_fire,transform.position,Quaternion.identity);
ولی وقتی که به وجود میاد ترنسفرمش زیر مجموعه ی اسلحه نیست.
اول یک گیم ابجکت تهی یا empty بساز سپس بکش بنداز روی اسلحه بعدش روی هر موقعیتی که می خوای بذار . این شد از لحاظ ویژوال.
حالا برای اینکه همینو از لحاظ کد بهش نیگا کنی دیدت باز میشه. در position این شی empty پریفب آتش یا پاتیکل یا هرچیزی دوست داری رو Instantiate کن. ضمنا یک زمان هم در نظر بگیر که پس از این دوره ی زمانی خون نابود بشه . برای این کار یک اسکریپت به خون بده و توی Start اینو بذار مثلا بعد از 5 واحد زمانی از بین بره :
کد سیشارپ:

void Start(){
Destroy (this, 5.0f);
}


سوال :

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

پاسخ:

ابتدا یک متغیر از نوع GameObject به صورت public تعریف کنید که بشه از ورودی ، پریفب آتش رو در کادر hierarchy بهش نسبت داد یا مثل مازل فلش یا پریفب تیر یا هرچیز دیگه ای.

سپس کد Istantiate رو در رویداد کلیک ماوس بنویسید.کد رو به یک گیم ابجکت empty میشه داد که موقعیت و جهت حرکت تیر رو تعیین کنه و خودمون باید Rotation و Position رو تنظیم کنیم.البته به جای S.Transform و S.Rotation بهتره this بدیم. چون this به شی جاری اشاره می کنه یعنی گیم ابجکت empty .(اما S به خود گیم ابجکتی که از ورودی وارد کردیم.ما به جهت و موقعیت اون کاری نداریم و باید ورودی رو روی نقطه ی دلخواه تنظیم کنیم)



public input_GameObject_NokAslahe_Spawn:GameObject;

void Update(){

this.Position= input_GameObject_NokAslahe_Spawn.Position;

}


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

ساخت پریفب رو که بلدید؟ بلد نیستید؟ پریفب یعنی یه ابجکت بساز و رنگش کن و تکستچر بده و هر بلایی دوست داری سرش بیار و هر ابجکتی دوست داشتی بکش روش رها کن مثلا یه لوستر بساز با چند تا لامپ و هر لامپش متریال خودشو داره یکی سبز و الی آخر.... یا یه ماشین با چهار چرخ و درب و شیشه و غیره بسازید و اسکریپت های لازم رو بهش ربط بدید . بعدش توی کادر پروژه راست کلیک و new prefab و سپس اون ماشین یا لوستر رو از توی کارد اجزای صحنه(hierarchy) بکشید روی این پریفب توی کار پروژه رها کنید تا یک پریفب ازش ساخته بشه.بعدش اون ماشین رو از  تو صحنه حذف کنید و سپس هر جا توی بازی نیاز بود می تونید چند نمونه از این پیفب تیر یا لوستر یا خون یا ماشین یا هرچیز دیگه ای هست رو ازش نمونه سازی یا کپی یا Instantiate کنید.

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


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

دلیلشم اینه که متغیرها رو توی Activity_Create تعریف می کنیم ولی قبلش هم اونا رو توی قسمت Sub Globals تعریف کردیم.

باید فقط اونا رو در Sub Globals تعریف کنیم.(Sub Globals رو با process_globals اشتباه نگیرید)

یکی از دلایل اصلیشم اینه که قبلش باید لی اوت رو لود کنید(Activity.LoadLayout("اسم لی اوت ") )

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

http://www.sourcecodester.com/sites/default/files/recyclebin.png

  1. Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hWnd As Int32, ByVal pszRootPath As String, ByVal dwFlags As Int32) As Int32
  2. Private Declare Function SHUpdateRecycleBinIcon Lib "shell32.dll" () As Int32
  3.  
  4. Private Const SHERB_NOCONFIRMATION = &H1
  5. Private Const SHERB_NOPROGRESSUI = &H2
  6. Private Const SHERB_NOSOUND = &H4
  1. Private Sub EmptyRecycleBin()
  2. SHEmptyRecycleBin(Me.Handle.ToInt32, vbNullString, SHERB_NOCONFIRMATION + SHERB_NOSOUND)
  3. SHUpdateRecycleBinIcon()
  4. End Sub


  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2. EmptyRecycleBin()
  3. End Sub
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ تیر ۹۴ ، ۰۲:۴۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۴ ، ۱۵:۳۰
مدیرکل

gameover.blog.ir

نام محصول:

سورس انگری بردز در گیم میکر استادیو

قیمت:

1000 تومان

https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQhpXMSJazwYEXBHDQhXy4JbajL8FCchhN5CojjStJaJqvaPIkcHQ


برای خرید رو دکمه ی زیر کلیک کنید و پس از پرداخت، لینک در اختیار شما قرار می گیره. هر مشکلی توی دانلود بود سریع پیام بذارید رفع کنم. آیدی تلگرامتون و یا شمارتون بذارید تو تلگرام پیام میدیم.

http://s3.picofile.com/file/8200115534/1.gif


۰ نظر موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۴ ، ۰۴:۲۶
مدیرکل
بعضی اوقات می بینید کد عمل نمی کنه و حتی عکس رو تو بخش file اضافه و Sync کردید بازم کار نمی کنه":
Dim  background1 As  BitmapDrawable
background1.Initialize(LoadBitmap(File.DirAssets,"b1.gif"))
ListView1.Initialize("")
ListView1.SingleLineLayout.Background=background1
برای رفع مشکل در کد بالا باید این حذف بشه:
ListView1.Initialize("")


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

فکر کنم برای اینکه زمان سایت روی تهران تنظیم بشه باید بخش timeZone از server رو Iran-Tehran تنظیم کنید. چون ممکنه سرور روی مثلا کانادا باشه اما بازدید کننده ها بیشترشون از ایران هستن و زمان محلی تهران رو نیاز دارند.
البته میشه اسکریپتی نوشت که از روی یک time server بیاد ساعت جهانی و تهران رو بخونه و با PHP و AJAX و innerHTML و ی سری ریز کدهای دیگه اونو جاساز کنیم توی بخشی از سایت که می خوایم.
مثلا من اسکریپتی ساختم که زمان رو از داخل این page جدا می کنه :
http://www.worldtimezone.com/time/wtzres...&forma=24h
و زمان خالص رو به ما می ده.
ولی سایت woldtimezone احتمالا بعد از چند بار رفرش و درخواست time ما رو بلاک می کنه.
--
پس روش دوم اینه که این کار رو کنیم :

کد PHP:
<?php
date_default_timezone_set
("Iran");
echo 
date("Y/m/d H:i:s");

?>

اگه timeZone های دیگه رو می خواید به این آدرس برید:
http://www.date-default-timezone-set.com/
--
نکته:
فرض کنید فایلی به اسم process.php داریم :
کد PHP:
//process.php
<?php
date_default_timezone_set
("Iran");
echo 
date("H:i:s");

?>
فرض کنید index.php هم به این صورت با آژاکس میاد process.php رو اجرا و نتیجه رو get می کنه :
کد PHP:
<!DOCTYPE html>
<
html>
<
head>
<
script language="javascript">
function 
myFunction()//my AJAX  function
{
var 
xmlhttp;    
if (
window.XMLHttpRequest)
  {
// code for IE7+, Firefox, Chrome, Opera, Safari
  
xmlhttp=new XMLHttpRequest();
  }
else
  {
// code for IE6, IE5
  
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (
xmlhttp.readyState==&& xmlhttp.status==200)
    {
    
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","process.php",true);//run process.php and GET results
xmlhttp.send();//Display the received data over current webpage
}

var 
myVar=setInterval(function(){myTimer()},1000);

function 
myTimer() {
myFunction();
}
</script>
</head>
<div id="txtHint">info will be listed here...</div> 

اگه process.php روی یک سایت دیگه باشه و شما به جاش آدرس آنلاین رو بدید (که روی سایت دیگه ای باشه) ممکنه سرور جلوی شما رو بگیره.
پس دقت کنید که هم process.php و هم index.php توی یک پوشه روی سایت PHP شما باشه. winking

اگه از کدها سر در نمیارید بگید توضیح بدم.
با جاوا اسکریپت و XMLHTTP اومدیم یک کپی از مرورگر فایرفاکس یا InternetExplorer(از activeX استفاده می کنه) ایجاد کردیم و محاسبات رو پشت پرده انجام دادیم و نتیجه رو send کردیم توی بخش innerHTML از تگی که ID شو معرفی کردیم.
--
در حقیقت توی process.php اومدم time رو برای ایران خوندم. بعدش نتیجه رو اجرا کردم ولی روی مرورگر نشون نداد و با آژاکس GET کردم توی جاوااسکریپت و سپس نتیجه رو ریختم توی DIV.
همچنین یه تایمر نوشتم که هی process.php رو get کنه و زمان رو بدون رفرش کردن صفحه با آژاکس بگیره و فقط بخش div رو ویرایش کنه.
--
به همین سادگی
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ تیر ۹۴ ، ۲۲:۱۸
مدیرکل

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


سپس از منوی انیمیشن عمل کنید :

Animation->Clear animation->From Layer

http://s6.picofile.com/file/8199976892/clere_cur_anim.gif

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

animation-->Copy current frame->Copy entire document->Copy to frame

http://s3.picofile.com/file/8199972584/copy_frame_animeStudio.gif

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

برای حرفه ای شدن باید زیاد سوال بپرسی و نذاری سوالاتت توی ذهنت بمونه
برای حرفه ای شدن نباید مطالب رو حفظ کنی همش بلکه اصول رو درک کنی و روش ها رو یاد بگیری
برای حرفه ای شدن باید دنبال صرفا ایجاد یک کار حرفه ای نباشی بلکه دنبال یادگیری تکنیک ایجاد یک کار حرفه ای باشی
برای حرفه ای شدن باید تنبلی نکنی و پول در بیاری تا امکانات حرفه ای شدن رو بتونی بخری یا از هدفت دور و بی انگیزه نشی
برای حرفه ای شدن باید چیزای ساده ای که بلدی رو بهش عمل کنی تا انگیزه درت ایجاد بشه
برای حرفه ای شدن باید هی واسه خودت سوال طرح کنی و دنبال سوالایی باشی که توی ذهنت میاد. مثال: چرا اون تونست با فتوشاپ کاراکتر بسازه من نتونستم.چرا اون تونست پول در بیاره من نتونستم.چرا اون وقتش رو هدر نمیده ولی من میدم.چرا اون برنامه ی منظمی داره ولی من ندارم.چرا من نمی تونم درست رندر بگیرم.کجای کار انیمیشن من ایراد داره.چرا هرچی تلاش می کنم به هدف نمی رسم.چرا من انگیزه ندارم؟ چرا از روی چیزایی که یاد می گیرم سطحی رد میشم؟ چرا من برنامه نویسیم ضعیف هست.چرا توی هوش مصنوعی من هیچی نمی دونم.اصلا من اینجام که چی بشه؟ آخرش چی میشه؟ چرا به جای اینکه جواب سوال بچه ها رو بدم بهشون ماهیگیری یاد ندم؟ چرا من آدم خودبینی هستم؟ چرا به دیگران یاد ندم؟ چرا نباید بزرگ بشم؟ چرا من نتونم دنیا رو تغییر بدم؟ چرا اصلا خودمو تغییر نمی دم؟ چرا با آدمای بی انگیزه همش هستم؟ چرا نباید رشد کنم؟ چرا من راه پیشرفت رو پیدا نکنم؟ چرا همش باید فقیر باشیم؟ مگه ما نمی تونیم ثروتمند بشیم؟ چرا فکر نکنم و ثروتمند نشم؟
چرا یه کارگر ساده خونه ی کلنگی میسازه؟
چرا یه مهندس(کسی که تا حدی هندسه ی کار خودشو بلده)فکر می کنه و برج میلادو میسازه؟
چرا اهدافی که دارم رو توی دفترم ننویسم ؟
چرا از چیزای جدیدی که یاد گرفتم داشت برداری نمی کنم؟
چرا اصلا آموخته هام رو به اشتراک نمی ذارم؟ مگه برای حرفه ای شدن نباید زکات دانش بدم؟
چرا من فکر می کنم آدم پوچی هستم و اسکریپت نویسیم ضعیفه؟
آیا من همیشه چوپان خواهم موند یا می تونم متخصص قلب بشم؟
برای اینکه من قوی بشم آیا نیازه حتما دانشگاه دولتی بخونم؟
آیا میشه کار کنم و پول جمع کنم بعدش میانبر بزنم هم دانشگاه آزاد بخونم هم کار کنم؟
چرا اون پسری که دست نداشت نشون داد که می تونه توی شنا اول شد؟
تکنیک اون یارو که توی دوی ماراتون تونست اندیشه ها رو تقویت کنه چی بود؟
تکنیک مایکل فلپز توی شنا چی بود؟
برسلی چرا برسلی شد؟
بیل گیتز چرا پولدار ترین هست؟
آیا من نمی تونم بهتر از استیو جابز یا کمی شبیهش باشم؟
آیا تا ابد باید بدبخت باشم؟
چرا خودمو دست کم می گیرم.
چرا فکر می کنم با یه ADSL ساده نمیشه حرفه ای شد؟
چرا نمی تونم یه شغل آسون ولی پولساز غیر از دزدی و مشاور املاک دست و پا کنم؟
چرا به آرزوهایی که توی سرم هست تحقق نبخشم؟ چون راهو نمی دونم.
چرا راهو پیدا نمی کنم.چون نمی پرسم و فکر می کنم همه چیزو باید تجربه کنم.
چرا با اینکه از دیگران می پرسم یاد نمی گیرم؟ چون جسارت تجربه کردن رو ندارم.
چرا اون فوتبالش خوبه؟ چون منم والیبالم خوبه
چرا من بسکتبالم بده؟ چون من وقتمو دارم میذارم واسه یه هدف دیگه.



چرا من نمی تونم از اون بهتر باشم؟ چون من نمی خوام از اون بهتر باشم من می خوام خودم باشم.
حالا که من خودم هستم آرامش دارم و ایمان دارم که با باور کردن خودم و اعتماد کردن به خودم می تونم راه جدیدی به سمت موفقیت باز کنم.

حالا که من خودمو شناختم دیگه غیرحرفه ای نیستم.

من به زودی قهرمان دنیا می شم و من در حیطه ی کار خودم یقین دارم که راه های حرفه ای شدن به سمتم باز میشه.

پس پیش به سوی حرفه ای شدن.... . پس پیش به سمت هدف... پس پیش به سمت پیداکردن ابزارهایی که من باهاشون راحت تر و سریع تر و بهتر به هدف می رسم.

من می تونم مثل آفتاب پرست تحت هر شرایطی خودمو وفق بدم.
پس پیش به سوی انعطاف پذیری.

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


follow your dreams
رویاهایت را دنبال کن

think and be graceful
بیاندیش و ثروتمند باش


مطمئنم هدف رو پیدا خواهی کرد
مطمئنم موفق میشی


http://promakers.ir/showthread.php?tid=11626&pid=121622#pid121622

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

گاهی اوقات مثلا وقتی که با جاوااسکریپت توی یونیتی داریم کدنویسی می کنیم Mono.Data رو خطا می گیر.

مثلا کد :

  import         Mono.Data;

خطا :

BCE0021: Namespace 'Mono.Data' not found, maybe you forgot to add an assembly reference?

برای رفع این مشکل در قسمت  File->Build Settigs->Player Settings رفته و گزینه ی .NET 2.0 رو به جای .NET 2.0 Subset انتخاب کنید:


http://s6.picofile.com/file/8199014742/monoData_nameSpace.gif


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

http://s6.picofile.com/file/8198920142/change_enemy_sprite.jpg

در این سورس وقتی player پرش یا jump می کنه روی دشمن(enemy) ، دشمن اسرایتش تغییر می کنه و بعد از ضربه ی دوم از بین میره.توی بازی ماریو (قارچ خور)ازش استفاده شده بود.


http://s3.picofile.com/file/8198919934/taghyir_enemy.zip.html

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

http://wdl.tmimgcdn.com/img_articles/4266/img-202-hair6yd.jpg

P بزنید تا pen tool فعال بشه.

سپس روی نقطه ی دلخواه اول کلیک  کرده و رها کنید و سپس روی نقطه ی دوم کلیک و درگ (drag) کنید تا خط به صورت منحنی در مسیر دلخواه رسم بشه.

سپس راست کلیک و stroke کنید تا از روی مسیر شما،خطی با پهنای براش(brushe کلید میانبر B) شما رسم بشه.

می تونید براش رو تغییر opacity(شفافیت) بدید.

موقع نقاشی با pen tool (کلید میانبر P) ، بعد از رسم و سپس بعد ا راست کلیک و در هنگام انتخاب Stroke از روی path (مسیر رسم کرده با pen tool) گزینه ی Simulate Pressure رو تیک بزنید.

http://wdl.tmimgcdn.com/img_articles/4266/img-201-2nd0mh.jpg


برای حذف هر مسیر بعد از stroke می تونید راست کلیک کرده و delete path رو بزنید.


توضیحات بیشتر:

http://www.webdesign.org/photoshop/drawing-techniques/how-to-make-hair.4266.html


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

خطا:

Could not use the gradient tool because the content of the layer is not directly editable

http://i.stack.imgur.com/Wev0P.png

حل :

Layers>Rasterize>Layer

۱ نظر موافقین ۰ مخالفین ۰ ۱۷ تیر ۹۴ ، ۰۷:۵۱
مدیرکل
منبع :
http://www.b4x.com/android/forum/threads/waiting-for-ide-debugger-to-connect.13813/

معمولا وقتی پروژه ها با فایل های زیاد رو توسط basic 4 android می سازید بهتره نوع debug رو روی rapid بذارید (legacy یعنی سنتی و توصیه نمیشه)

اما جدید rapid هم توصیه نمیشه.

اگه با خطای Waiting for IDE debugger to connect در basic 4android روبرو شدید و توی blue stack یا شبیه سازها و emulator های دیگه همچین خطایی رو داد بهتره پروژه یا اپلیکیشن رو ببندید و دوباره با گزینه ی Release کامپایل کنید و فایل apk رو از نو روی دستگاه نصب کنید.

موفق باشید.
http://s6.picofile.com/file/8198320376/release_debug.jpg

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

یک اسکریپت JS با این کد ایجاد کنید :

//button gui
// JavaScript
function OnGUI () {
    if (
GUI.Button (Rect (10,10,150,100), "sajjad3011")) {
        print (
"You clicked the button!");
    }
}

این اسکریپت رو بکشید روی یکی از gameObject های موجود در صحنه. مثلا من انداختم روی car (ماشین).
دکمه ای مستطیلی با مختصات 10,10,150,100 ایجاد خواهد شد.


اینم واسه دکمه ی Toggle(مثل همون Option box های VB ) :

//js
var toggleBool true;

function 
OnGUI () {
    var 
toggleBoolNew GUI.Toggle (Rect (252510030), toggleBool"Toggle");

    
// Check if the toggle was toggled
    
if (toggleBoolNew != toggleBool) {
        if (
toggleBoolNew == true)
            
Debug.Log("Toggle was enabled");
        else
            
Debug.Log("Toggle was disabled");

        
toggleBool toggleBoolNew;
    }
}

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

if sound_exists(global.Music)
   {
   sound_loop(global.Music);
   }
else
   {
   global.Music = sound_add(working_directory + "\MainMusic.mp3", 1, 0);
   sound_loop(global.Music);
   }


منبع :
http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/legacy%20sound/sound_exists.html

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

audio_master_gain

if keyboard_check(vk_up)
   {
   if vol < 1 vol += 0.05;
   audio_master_gain(vol);
   }
if keyboard_check(vk_down)
   {
   if vol > 0 vol -= 0.05;
   audio_master_gain(vol);
   }

بقیه توابع صدا :

http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/index.html

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


[تصویر: randomActive.jpg]
ابتدا یک اسکریپت می سازیم (به زبان javascript) و می دیم به دوربین.
و سه ابجکت رو می دیم به متغیرهای c1و c2 و c3.
همچنین یک متغیر به اسم n تعریف می کنیم که مقدارش هی زیاد میشه و بین 1 تا 1000 می چرخه و اگه به هزار رسید دوباره از 0 شروع می شه. این n رو به مقدار دلخواه مثلا ضریب(مقسوم علیه) پیشفرض 30 (که قابل تغییر هست) تقسیم می کنیم و به قول خودم طی دوره های زمانی مختلف (هر 30 واحد زمانی که خودمون فرض کردیم) همه ی ابجکت ها رو غیر فعال می کنیم و سپس یکی از اونا رو به صورت تصادفی فعال می کنیم.
اینم اسکریپت:

کد js:

//randomActive.js
//author:sajjad3011
 var c1 : GameObject; var c2 : GameObject; var c3 : GameObject; private var random : int; private var n:int=0; public var maghsoomAleih=30; function Start () { setActiveRandObj(); } function Update (){ //--------------------- n+=1; if(n>1000) n=0; Debug.Log(n); //--------------------- setActiveRandObj(); } function setActiveRandObj(){ random = Random.Range(1, 4); if(n%maghsoomAleih==0){ c1.SetActive (false); c2.SetActive (false); c3.SetActive (false); if (random == 1) { c1.SetActive (true); } else if (random == 2) { c2.SetActive (true); } else { c3.SetActive (true); } } }
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ تیر ۹۴ ، ۲۳:۰۴
مدیرکل

خطای additional log on information may be required

برای رفع این خطا در ویندوز 7 به ریجیستر ویندوز وارد شده و به مسیر زیر رفته : 

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NlaSvc/Parameters/Internet

ریجستر HKEY_LOCAL_MACHINE/SYSTEMCurrentControl/SetServices/NlaSvc/Parameters/Internet

و در این قسمت بر روی EnableActiveProbing دابل کلیک کنید و مقدار value data را به 0 تغییر داده و ok را بزنید 

توجه: برای رفتن به ریچستر کلید ویندوز و R را گرفته و در run تایپ کنید regedit و بر روی ok کلیک کنید


برگرفته شده از http://i-tech.blog.ir

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


if keyboard_check_pressed(ord("S"))
   {
   
screen_save(working_directory "\Screens\Screen_"+string(num)+".png")
   
num += 1;
   }

کد بالا رو توی Step یا Draw بذار.
هر بار که S می زنید ذخیره می کنه با نام جدید. البته روی اندروید S داریم می تونید کلیک ماوس رو بذارید

http://docs.yoyogames.com/source/dadiosp..._save.html

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