درخواست کمک برای تغییربکگراند بصورت رندوم در بازی هنگ من استاد...
سلام.توی آموزش بازی هنگ من که استاد دادن میخوام یک بکگراند بزارم که هروقت بازی شروع شد اتوماتیک یکی از تصاویری که من مشخص کردم رو بصورت رندوم بعنوان همین بکگراند نشون بده...کسی بلده؟
سوال دوم: برای اینکه وقتی کلمه رو درست حدس زد و یا غلط حدس زد،همزمان با نوشتن:you win یا you lose یکی از تصاویری که من مشخص کردم رو برای چند ثانیه نشون بده راحت ترین راه حل چیه؟
خواهشا اگر کسی بلده با نوشتن دستور و کد و توضیحات بگه...یعنی زیر دکترا بگه ما هم بفهمیم!...ممنونم...
اول باید یک عدد تصادفی بسازید ! ، از 0 تا تعداد عکس هایی که دارید کد پائین یه عدد بین 0 تا 9 تولید میکنه
Random rand = new Random(); int random = rand.nextInt(10);
حالا کافیه این مقدار رو سوئیچ کنید
switch(random ){
case 0: imageview.setImageResource(); // image0 break; case 1: imageview.setImageResource(); // image1 break; }
این کار میتونه در هر زمانی انجام بشه ، موقع برنده شدن ، بازنده شدن و ...
ببخشید متد setBackgroundResource بود، مثلا به linearlayout ایدی lin1 را میدیم بعد یک دکمه هم با ایدی btn1 داریم بعد با استفاده از کدایی که ALU جان گفته بود کاری میکنیم که با هربار کلیک روی دکمه عکس Background عوض بشه:
final LinearLayout lin1 = (LinearLayout) findViewById(R.id.lin1);
Button btn1 = (Button) findViewById(R.id.btn1);
final Random rand = new Random();
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int random = rand.nextInt(تعداد عکس ها);
switch (random) {
case 0:
lin1.setBackgroundResource(R.drawable.image1);
break;
case 1:
lin1.setBackgroundResource(R.drawable.image2);
break;
}
}
});
جواب A.L.U درست هست ونباید مشکلی داشته باشه، به نظر من شما به layout اصلیتون یه id بدید و به شکل زیر براش BG های random بذارید. (توی نظرات بالا @Ali گفته که از relativeLayout استفاده کنی که کار خوبی هست ولی برای راحتتر شدن کار میتونی برای mainLayout یه Background بذاری و بقیه element ها میتونن توی linearLayout قرار بگیرن.)
این کد رو اگه توی متد onCreate بذارید هر بار که برنامه شروع بشه به صورت random یک BG به نمایش در میاد
LinearLayout lay1 = (LinearLayout) findViewById(R.id.lay1);
int rndNum = (int) (Math.random() * 3);
switch (rndNum) {
case 0:
lay1.setBackgroundResource(R.drawable.img1);
break;
case 1:
lay1.setBackgroundResource(R.drawable.img2);
break;
case 2:
lay1.setBackgroundResource(R.drawable.img3);
break;
}
برای سوال دومتون، اگر آموزش thread ها و آموزش Dialog ها رو مطالعه کنید، میتونید برای این منظور کارهای خیلی جالبی انجام بدید. مثلا توی یه dialog عکستون رو نشون بدید و با استفاده از thread ها زمان بسته شدن dialog رو تعیین کنید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .