PIZiadas گرافک

PIZiadas گرافک

میری دنیا اندر ہے.

گرافیکل پروگرامنگ: انجن حرکت پذیری [جاوا]

motor_animaciónایک سب سے پہلے وضاحت کے بعد انٹرفیس پر گرافیکل اشیاء کو اپنی طرف متوجہ میں جاوا, ہم نے ایک نافذ کرے گا حرکت پذیری کے انجن کہ ہم سے درخواست کی حرکیات کا انتظام کرنے اور کی اجازت دیتا ہے, بعد میں, صارف بات چیت میں شامل کریں.

انجن کی ڈیٹا بیس کے گرافک اشیاء میں سے ہر ایک کی حوصلہ افزائی ہے کہ کام کرتا ہے فون کرنے کے لئے ذمہ دار ہے.

ایک کھیل کے انجن کی ایک سیریز کے لئے ایک اصطلاح کا حوالہ دیتے ہوئے ہے پروگرامنگ معمول کی اجازت دیتا ہے ڈیزائن, ایک کی تخلیق اور نمائندگی کی کھیل.

اسی طرح، وہاں کھیل کنسولز دونوں میں سرگرم کھیل کے انجن ہیں اور OS. ایک کھیل کے انجن کی بنیادی فعالیت 2D کے لئے انجام کے انجن فراہم کرنے کے لئے ہے3ڈی, طبیعیات کے انجن تصادم آلہ, آواز, سکرپٹ, حرکت پذیری, مصنوعی ذہانت, نیٹ ورکس, محرومی, میموری مینجمنٹ اور ایک منظر گراف.(W).

ہمارا پہلا انجن نفاذ ہم اسٹوریج اور نمائندگی کے لئے ذمہ دار کلاس میں ہے کہ فعالیت پر انحصار کرے گا: “بلیکبورڈ“. ایک وضاحت نئے انٹرفیس نئے فعالیت کو شامل کرنے کے لئے, کے امکان کسی چیز کو متحرک.

انٹرفیس Animable

نئے “انٹرفیس” کو لاگو کہ کلاسوں کو شامل کرے گا ایک ہی طریقہ کار کا اعلان.

پیکج گراف;

عوامی انٹرفیس Animatable {
	عوامی خالی روح();
}

مثال کے طور پر, ہم تصوراتی، بہترین گرافکس ہونا ہماری کلاس میں سے ایک میں ترمیم کرسکتے ہیں, یا دیگر کی فعالیت میں توسیع ہے کہ ایک نئی تشکیل, کے طور پر نئے طبقے کی صورت ہے Point2DAnimable کہ کلاس میں توسیع Point2D نقاط ذخیرہ کرنے کے لئے, اور انٹرفیس animatable لاگو تقریب صرف تصادفی ذخیرہ کے نقاط تبدیل کی حوصلہ افزائی.

پیکج گراف;

عوامی طبقے Point2DAnimable توسیع Point2D کو لاگو کرتی ہے Animatable{
	عوامی Point2DAnimable(INT X, INT اور){
		سپر(X,اور);
	}
	عوامی صفر روح() {
		X   =(INT)(Math.random()*5);
		X-=(INT)(Math.random()*5);
		اور   =(INT)(Math.random()*5);
		Y-=(INT)(Math.random()*5);
	}
}

اہم applett سے سٹوریج نظام بلیکبورڈ کلاس نئی اشیاء شامل کریں

	ذاتی صفر iniciarElementos() {
		pizarra.addElement(نئے Point2DAnimable(50,50));
		pizarra.addElement(نئے Point2D(70,50));
		pizarra.addElement(نئے Point2D(50,70));
	}

ڈیٹا بیس میں اشیاء کو متحرک کرنے کے لئے, وہ animatable ہیں یا تجزیہ کریں گے کہ کلاس بلیکبورڈ میں ایک نئے طریقہ کار پر عمل درآمد, جس صورت میں تقریب کال خود کو ہر شئی کی حوصلہ افزائی کرتا ہے

	عوامی صفر anima(){
		شمار enum = bd.elements();
		آبجیکٹ او بی;
		جبکہ(enum.hasMoreElements()){
			او بی = enum.nextElement();
			اگر(او بی instanceof Animable){
				((Animatable) چاہے).روح();
			}
		}

	}

حرکت پذیری کے انجن

حرکت پذیری کو اپ ڈیٹ ہینڈل اس عمل کو ہم حرکت پذیری کے انجن کہتے ہیں (یا ایک دھاگے کے طور پر تعمیر “موضوع، فورم کے“). آپ کی ذمہ داری ہے کہ ہم کلاس میں نافذ حرکت پذیری کے طریقہ کار کو فون کرنے کی ہے بلیکبورڈ.

میں OS, ایک موضوع، فورم کے, بھوگرست موضوع، فورم کے یا ایک آپریٹنگ سسٹم کی طرف سے شیڈول کے مطابق کیا جا سکتا ہے کہ پراسیسنگ کی سب سے چھوٹی شے ہے.

ایک دھاگے میں پوسٹ ہوئے (موضوع، فورم کے) ایک درخواست ایک ہی وقت میں کئی کاموں کو انجام دینے کی اجازت دیتا ہے ایک خصوصیت ہے (جما). مختلف موضوعات مثلا میموری کی جگہ کے طور پر وسائل کی ایک بڑی تعداد کا اشتراک کریں, کھلی فائلوں, توثیق کی صورت حال, وغیرہ. اس ٹیکنالوجی کے بیک وقت مختلف افعال انجام دینے کے ضروری ہے کہ ایک درخواست کے ڈیزائن آسان بنا دیتا ہے.

ایک دھاگے میں بنیادی طور پر کسی دوسرے کام کے ساتھ متوازی میں پھانسی کیا جا سکتا ہے کہ ایک کام ہے.(W)

ہماری حرکت پذیری کے انجن طبقے کو نافذ “Runnable” آغاز ہے اور طریقوں کو روکنے کے لئے.

پیکج گراف;

عوامی طبقے MotorGrafico کو لاگو کرتی ہے Runnable {
طویل وقفہ = 100;

ہم کو روکنے کے لئے حرکت پذیری متغیر بولین کنٹرول کی ایک سیریز پڑے گا.

boolean parar = false;
عوامی صفر سٹاپ() { روکنے = سچ; }

بولین = جھوٹے روک دیا گیا;
صفر pausar() { = روک دیا گیا !سست; }

کلاس کے ڈویلپر کسی چیز کو حاصل کریں گے “بلیکبورڈ” ایک پیرامیٹر کے طور پر. عنصر اہم حرکت پذیری تقریب میں کیا جاننے کی خدمت. اس اعتراض کے بعد اس کا حوالہ کرنے کے لئے ایک متغیر میں محفوظ کرے گا.

نجی بلیکبورڈ گراف;
عوامی MotorGrafico(بلیکبورڈ گراف) {
	اس.= گنتی شمار;
}

موضوع، فورم کے شروع کرنے سے پہلے ہم فعال نہیں ہے اس بات کا یقین کرنا ضروری ہے, جس صورت میں ہم ایک وقت میں ایک عمل سے زیادہ کچھ بھی نہیں چلا اسے تباہ کرنا ضروری ہے.

نجی مستحکم موضوع، فورم کے بلنکر;
عوامی صفر شروع کریں() {
	اگر(بلنکر!=صفر){
		بلنکر =صفر;
	}
	بلنکر = نئے موضوع، فورم کے(اس);
	blinker.start();
}

حرکت پذیری کے انجن کو روکنے کے لئے دھاگے تباہ کر دیں گے, صرف کنٹرول کرتا متغیر کے لئے ایک شہوت انگیز null قیمت مقرر “موضوع، فورم کے”.

عوامی خالی کو روکنے کے() {
	بلنکر = صفر;
}

اہم عمل کی تقریب میں اپنے فن کا مظاہرہ کیا جاتا ہے “چلانے کے()”.

پہلے ہم پروگرام پر عملدرآمد کو روکنے کے لئے نہیں چاہتے چیک کریں, اور دھاگے حق ہے اس بات کی تصدیق. اگر ایسا ہے تو, اذان کے ساتھ پروگرام پر عملدرآمد milliseconds معطل “سو” اور, دوبارہ شروع کرنے, حرکت پذیری طریقہ کال. اپنی طرف متوجہ کرنے کے لئے ایک بار پھر متحرک گرافک عناصر (repaint)

عوامی صفر چلانے کے() {
	موضوع، فورم کے thisThread = موضوع، فورم کے.currentThread();

	جبکہ (!کو روکنے کے && بلنکر == thisThread) {
		کرنے کی کوشش کریں {
			thisThread.sleep(وقفہ);
		}  پکڑنے (InterruptedException ای) {}

		اگر (گراف != صفر && !سست) {
			متحرک();
			graf.repaint();
		}
	}
}

فنکشن “متحرک” تقریب فون “روح()” کلاس “بلیکبورڈ”, گراف ڈیٹا بیس کو محفوظ کرنے کے لئے ذمہ دار.

	ذاتی صفر متحرک() {
		graf.anima();
	}
}

اس پروگرام کے عمل

نمونہ کلاس کسی چیز کا اعلان شامل ہونا چاہئے “MotorGrafico” جس میں یا گرافک ڈسپلے کو تلاش کرنے کے لئے اسی پیرامیٹر گزر جائے گا “بلیکبورڈ”.

عوامی طبقے Example1 توسیع اپلیٹ {
	بلیکبورڈ سلیٹ =نئے بلیکبورڈ();
	MotorGrafico موٹر =نئے MotorGrafico(سلیٹ);

اس کے علاوہ, ہم نے طریقہ فون کر کے حرکت پذیری کے انجن شروع “شروع کریں()”

	عوامی Example1() ڈالی HeadlessException {
		اس.setLayout(نئے GridLayout());
		اس.شامل(سلیٹ);
		iniciarElementos();
		motor.start();
	}

یہ ورزش مکمل کرنے کے لئے بعض عناصر animatable گرافکس ڈیٹا بیس میں شامل کرنے کی صرف رہتا ہے. ہم نے کچھ پوائنٹس ہلنا نہیں دیکھیں گے کہ, انٹرفیس کو لاگو کرتے وقت “Animatable” وہ تصادفی کرتے ہیں تو.

	نجی خالی iniciarElementos() {
		pizarra.addElement(نئے Point2DAnimable(50,50));
		pizarra.addElement(نئے Point2DAnimable(60,50));
		pizarra.addElement(نئے Point2DAnimable(50,80));
		pizarra.addElement(نئے Point2DAnimable(50,70));
		pizarra.addElement(نئے Point2D(70,50));
		pizarra.addElement(نئے Point2D(50,70));
	}
JAVA

کورس جاوا