بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

درخواست کمک برای تغییربکگراند بصورت رندوم در بازی هنگ من استاد...

مدیریت گفتگو
حامی 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام.توی آموزش بازی هنگ من که استاد دادن میخوام یک بکگراند بزارم که هروقت بازی شروع شد اتوماتیک یکی از تصاویری که من مشخص کردم رو بصورت رندوم بعنوان همین بکگراند نشون بده...کسی بلده؟

سوال دوم: برای اینکه وقتی کلمه رو درست حدس زد و یا غلط حدس زد،همزمان با نوشتن:you win یا you lose  یکی از تصاویری که من مشخص کردم رو برای چند ثانیه نشون بده راحت ترین راه حل چیه؟

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

نظرات

پاسخ‌ها 3

مجتبی یگانه 12 سال پیش

اول باید یک عدد تصادفی بسازید ! ، از 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; }

این کار میتونه در هر زمانی انجام بشه ، موقع برنده شدن ، بازنده شدن و ... 

نظرات

حامی 12 سال پیش
ممنونم فقط :داخل پرانتزهای باز و بسته ای که توی این کدها نوشتین باید فقط اسم عکسم رو بنویسم یا آدرسش رو باید بدم؟ اگر بخوام با هربار باز شدن برنامه بکگراند تغییرکنه باید این کدها رو بلافاصله بعد از شروع اکتیویتی(اونجایی که اکستندمیشه) قراربدم؟
مجتبی یگانه 12 سال پیش
اونجا باید یک تصویر رو قرار بدید و درج عکس روش های متعدد داره (چند تا متد هست) می تونید یکی رو استفاده کنید ، مثلا اگه تصویر در کارت حافظه هست میتونید از setImageBitmap استفاده کنید :) - باید تابع رو در onCreate قرار بدید ، فکر کنم مطالعه آموزش ها الان براتون مفید تر از نوشتن پروژه باشه - موفق باشید :)
CreativeBoy 12 سال پیش
دوست عزیز وقتی متنی به این بزرگی دارید، توی پاسخ ها و طبق راهنمای سایت درج کنید، الان این کدهایی که گذاشتید اصلا خوانا نیست و کسی هم نمیتونه کمکتون کنه، لطفا بخش قوانین و راهنمای سایت رو مطالعه کنید و پستی پایینی رو هم طبق راهنمای درج کد در سایت مرتب کنید. موفق باشید
Ali 12 سال پیش

ببخشید متد 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;
}

}
});

نظرات

CreativeBoy 12 سال پیش

جواب 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 رو تعیین کنید.

نظرات

مجتبی یگانه 12 سال پیش
دوستان پاسخ های کاملی دارند ، به نظرمن هم مطالعه آموزش ها مفید تر هست :)
حامی 12 سال پیش
سلام داداش.دمت گرم.این کد شما جواب داد.کد بقیه دوستانی که در بالا گفته بودن،نیاز به گذاشتن ایمیج ویو و باتن بود.اما من میخواستم اتوماتیک باهرباربازشدن(اجراشدن)برنامه یه تصویر رو بصورت رندوم نشون بده که فقط کدی که شما نوشتید دقیقا این کار رو میکردالبته از دوستان بالا هم که زحمت کشیدن وقت گذاشتن تشکرمیکنم.دفعه اول که این کد رو گذاشتم برنامه کرش کرد... دوتاتغییر دادم درست شد.میگم که بقیه دوستان هم استفاده کنن: دفعه اول این کد رو در ابتدای متد oncreate گذاشتم اما دیدم برنامه کرش میکرددرحالیکه پروژه ارور نداشت... اما بعدش این کدها رو در آخر متد oncreate قبل از بسته شدن متد گذاشتم و اسم پکیج رو هم تغییر دادم(چون آدرس پکیج استاد با آدرس پکیج من متفاوت بود) و همه چی درست شد... با تشکر از همگی دوستان مخصوصا CreativeBoy

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