.:: Jasa Membuat Aplikasi Website,Desktop,Android Order Now..!! | | Order Now..!! Jasa Membuat Project Arduino,Robotic,Print 3D ::.

syukur

0 komentar

Menyikapi Nikmat Dan Musibah





"Maka, nikmat Tuhan-Mu yang manakah yang engkau dustakan?" (QS Ar-Rahmaan: 13)

Ayat itu diulang sebanyak 31 kali dalam Surah Ar-Rahmaan. Kerap membuat siapapun tertegun membacanya. Betapa kita, sebagai makhluk-Nya, terkadang terlalu sombong untuk sekadar mengucapkan 'terima kasih' kepada Sang Maha Pencipta, Allah SWT.

Sudah banyak sekali nikmat yang sudah Dia berikan. Namun, kita malah tidak bersyukur kepada-Nya. Bukankah Allah SWT telah berfirman: ''Dan, Dia telah memberikanmu (keperluanmu) dan segala apa yang kamu mohonkan kepadanya. Dan, jika kamu menghitung nikmat Allah, tidaklah dapat kamu menghinggakannya. Sesungguhnya, manusia itu sangat zalim dan sangat mengingkari (nikmat Allah).'' (QS Ibrahim [14]: 34). Sudah banyak sekali nikmat yang Dia berikan. Nikmat mencicipi manisnya iman, nikmat menghirup udara segar, dan sebagainya.

Allah telah memberi iming-iming yang menggiurkan untuk hamba-hamba-Nya yang bersyukur, dan ancaman untuk hamba-hamba-Nya yang kufur, seperti yang termaktub dalam Surah Ibrahim ayat 7: �''Dan (ingatlah juga), tatkala Tuhanmu memaklumkan; Sesungguhnya, jika kamu bersyukur, pasti Kami akan menambah (nikmat) kepadamu. Dan, jika kamu mengingkari (nikmat-Ku), sesungguhnya azab-Ku sangat pedih.''

Maka, syukurilah nikmat yang datang pada kita. Jangan kita terlena hingga kita lupa dan mengklaim itu adalah hasil jerih payah kita sendiri, tanpa menganggap Allah sebagai Maha Pemberi. Karena, sikap seperti itu dapat menjerumuskan kita kepada kekufuran terhadap nikmat Allah.

Bila hal yang diatas berhubungan dengan pemberian yang sesuai dengan keinginan kita, lalu bagaimana dengan pemberian yang tidak sesuai dengan keinginan kita? Terkadang kita, sebagai manusia, mengeluhkan atau tidak mensyukuri pemberian Allah SWT yang tidak sesuai harapan kita. Padahal, kita tidak tahu kalau itu sebenarnya baik untuk kita. Kita hanya terus menyalahkan keputusan-Nya. Tidak adillah, tidak baiklah, atau keluhan-keluhan lainnya terus meluncur dari lisan kita. Jarang kita melihat sisi positif dari pemberian itu. Padahal, Allah selalu memberikan yang terbaik untuk kita.

Oleh karena itu, ketika ditimpa suatu musibah, janganlah cepat-cepat mengeluh. Lihatlah sisi positifnya. Berpikirlah bahwa Allah sayang kepada kita, karena Allah ingin segera menghapus dosa kita lewat ujian itu.

Rasulullah SAW bersabda,�Tidaklah seorang muslim ditimpa musibah berupa rasa lelahnya badan, rasa lapar yang terus menerus atau sakit, rasa sedih/benci yang berkaitan dengan masa sekarang, rasa sedih/benci yang berkaitan dengan masa lalu, gangguan orang lain pada dirinya, sesuatu yang membuat hati menjadi sesak sampai-sampai duri yang menusuknya melainkan akan Allah hapuskan dengan sebab hal tersebut kesalahan-kesalahannya� (HR Bukhori no 5641, Muslim no . 2573).

Begitu juga ketika keputusan Allah tidak sesuai harapan kita. Mungkin itu adalah untuk kebaikan jangka panjang kita. Ingatlah, Allah memberikan apa yang kita PERLUKAN, bukan yang kita HARAPKAN, karena bisa jadi apa yang kita harapkan justru mendatangkan mudharat bagi kita.

Allah �Azza wa Jalla berfirman, �...Boleh jadi kamu membenci sesuatu, padahal ia amat baik bagimu, dan boleh jadi (pula) kamu menyukai sesuatu, padahal ia amat buruk bagimu; Allah mengetahui, sedang kamu tidak mengetahui." (QS Al-Baqarah: 216)

Perpisahan dengan orang-orang yang kita cintai, penyakit yang menggerogoti tubuh kita, merupakan beberapa ujian yang perlu kita ambil sisi positifnya. Jangan kita terus mengeluh dan mengeluh. Karena, tak ada gunanya juga terus meratapi nasib. Sesekali, beranikan diri kita untuk mengambil sisi positif dari itu semua. Karena, di balik semua kejadian, pasti ada hikmahnya. Wallahu a�lam.
Suni

check collision box2d

0 komentar
How to check collision with box2d?
If box2d body has collision to another body it will be checked with BeginContact function at ContactListener class. If box2d body has disable collision to another body it will be checked with EndContact function at ContactListener. This time I realise how-to check collision one body to another bodies. To check this one I will use userData field b2Body.



MyUserData.as



package

{

/**

* ...

* @author Lexcuk

*/

public class MyUserData

{

public var name:String = '';

public var contactArr:Vector.<String> = new Vector.<String>();

public function MyUserData(name:String)

{

this.name = name;

}



public function addContactString(str:String):void {

if (contactArr.indexOf(str) == -1) contactArr.push(str);

}



public function removeContactString(str:String):void {

var indx:int = contactArr.indexOf(str);

if (indx != -1) contactArr.splice(indx,1);

}



}



}



MyContactListener.as



package

{

import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*;

import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*;

import Box2D.Dynamics.Contacts.*;



public class MyContactListener extends b2ContactListener

{



public function MyContactListener()

{

return;

}// end function



override public function BeginContact(contact:b2Contact) : void

{

//var manifold:b2Manifold = contact.GetManifold();

//var manifoldPoint:b2Vec2 = manifold.m_localPlaneNormal;



var uDataObjectA:Object = contact.GetFixtureA().GetBody().GetUserData();

var uDataObjectB:Object = contact.GetFixtureB().GetBody().GetUserData();



if (uDataObjectA!=null&&uDataObjectB!=null) {

var uDataA:MyUserData = uDataObjectA as MyUserData;

var uDataB:MyUserData = uDataObjectB as MyUserData;



uDataA.addContactString(uDataB.name);



uDataB.addContactString(uDataA.name);

}

}



override public function PreSolve(contact:b2Contact, oldManifold:b2Manifold):void {

/*

contact.SetEnabled(false);

*/

}



override public function EndContact(contact:b2Contact) : void {

var uDataObjectA:Object = contact.GetFixtureA().GetBody().GetUserData();

var uDataObjectB:Object = contact.GetFixtureB().GetBody().GetUserData();



if (uDataObjectA!=null&&uDataObjectB!=null) {

var uDataA:MyUserData = uDataObjectA as MyUserData;

var uDataB:MyUserData = uDataObjectB as MyUserData;



uDataA.removeContactString(uDataB.name);

uDataB.removeContactString(uDataA.name);

}

}



/*

override public function PostSolve(param1:b2Contact, param2:b2ContactImpulse) : void

{

}

*/





}

}



Main class

HowToCheckCollisionWithBox2dDoc.as



package

{

import flash.display.*; import flash.events.*; import flash.system.*;

import flash.ui.*; import flash.utils.*; import flash.sampler.*;

import flash.net.*; import flash.media.*; import flash.net.*;

import flash.external.*; import flash.text.*; import flash.geom.*;







import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*;

import Box2D.Dynamics.*;import Box2D.Dynamics.Joints.*;import Box2D.Collision.Shapes.*;







/**

* ...

* @author Lexcuk

*/

public class HowToCheckCollisionWithBox2dDoc extends Sprite

{

public var world:b2World;

public var debSprite:Sprite;

public var debugDraw:b2DebugDraw;



public var sensorBody:b2Body;

public var body0:b2Body;

public var body1:b2Body;



public var fSize:Number = 100;

public var qBody:b2Body;

public var qTrue:Boolean;



public var tx:Number = 0;

public var ty:Number = 0;

public var dragTr:Boolean;



public var infTxt:TextField;



public function HowToCheckCollisionWithBox2dDoc()

{

var gravity:b2Vec2 = new b2Vec2(0,0);

var doSleep:Boolean = true;

debSprite = new Sprite();

world = new b2World(gravity, doSleep);



debugDraw = new b2DebugDraw();

debugDraw.SetSprite(debSprite);



debugDraw.SetDrawScale(1);

debugDraw.SetFillAlpha(0.3);

debugDraw.SetLineThickness(1.0);

//debugDraw.SetFlags(b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit | b2DebugDraw.e_pairBit | b2DebugDraw.e_controllerBit | b2DebugDraw.e_centerOfMassBit | b2DebugDraw.e_aabbBit );

debugDraw.SetFlags(b2DebugDraw.e_shapeBit | b2DebugDraw.e_controllerBit | b2DebugDraw.e_centerOfMassBit );



world.SetDebugDraw(debugDraw);





sensorBody = createCircleBody( true);

sensorBody.SetUserData(new MyUserData('sensorBody'));



body0 = createBody(false);

body0.SetUserData(new MyUserData('body0'));



body1 = createBody(false);

body1.SetUserData(new MyUserData('body1'));





infTxt = new TextField();

addChild(infTxt);

infTxt.mouseEnabled = false;

infTxt.autoSize = TextFieldAutoSize.LEFT;

infTxt.scaleX = infTxt.scaleY = 5;



world.SetContactListener(new MyContactListener());

debSprite.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);

addChild(debSprite);

}



private function addedToStageHandler(e:Event):void {

debSprite.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

debSprite.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);

debSprite.stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);

}



private function enterFrameHandler(e:Event):void {

var s:Stage = debSprite.stage;



world.Step ( 1/30, 10, 10 );

world.ClearForces();

world.DrawDebugData();

if (dragTr) {

qBody.SetPosition(

new b2Vec2(tx + s.mouseX,ty + s.mouseY)

);

}

infTxt.text = 'circle sensorBody collision = \n' + (sensorBody.GetUserData() as MyUserData).contactArr;

}



private function mouseUpHandler(e:MouseEvent):void {

dragTr = false;

var s:String;

var eData:MyUserData = sensorBody.GetUserData();

trace(eData.contactArr);

//for (s in eData.contactObj) trace(s);

}



private function mouseDownHandler(e:MouseEvent):void {

var s:Stage = debSprite.stage;

qTrue = false;

world.QueryPoint(onQueryPoint, new b2Vec2(s.mouseX, s.mouseY))

if (qTrue) {

trace(qBody.GetUserData());

tx = qBody.GetPosition().x - s.mouseX;

ty = qBody.GetPosition().y - s.mouseY;

dragTr = true;

}

}



private function onQueryPoint(fixture:b2Fixture):Boolean {

qTrue = true;

qBody = fixture.GetBody();

return true;

}



private function createCircleBody(sensorTr:Boolean):b2Body {

var bodyDef:b2BodyDef = new b2BodyDef();



var body:b2Body;

bodyDef.type = b2Body.b2_dynamicBody;

bodyDef.position = new b2Vec2(300, 300);

//bodyDef.position.Add(pos);

body = world.CreateBody(bodyDef);

body.SetAngularDamping(0.000001);

body.SetLinearDamping(0.000001);





var circleShape:b2CircleShape = new b2CircleShape(fSize);



var fixture:b2Fixture = body.CreateFixture2(circleShape, 1);

fixture.SetSensor(sensorTr);

body.SetSleepingAllowed(false);





return body;

}



private function createBody(sensorTr:Boolean):b2Body {

var bodyDef:b2BodyDef = new b2BodyDef();



var body:b2Body;

bodyDef.type = b2Body.b2_dynamicBody;

bodyDef.position = new b2Vec2(300, 200);

//bodyDef.position.Add(pos);



body = world.CreateBody(bodyDef);

body.SetAngularDamping(0.000001);

body.SetLinearDamping(0.000001);



//wheel shape

//leftWheelBodyShapeDef.density = 1;



var p1:b2Vec2 = new b2Vec2(fSize, fSize);

var p2:b2Vec2 = new b2Vec2(0, fSize+fSize*1.7);

var p3:b2Vec2 = new b2Vec2(-fSize, fSize);

var polygonShape:b2PolygonShape = new b2PolygonShape();



polygonShape.SetAsArray([p1, p2, p3], 3);



var fixture:b2Fixture = body.CreateFixture2(polygonShape, 1);

fixture.SetSensor(sensorTr);

body.SetSleepingAllowed(false);



/*

var b2Mass:b2MassData = new b2MassData();

b2Mass.mass = 0;

b2Mass.I = 1;

b2Mass.center = new b2Vec2(0,0);

body.SetMassData(b2Mass);

*/



return body;

}



}



}















You can drag objects in this demo and look at collision.


zip archive check-collision-box2d



Suni

Tawk.to