আমি জাভা / স্লিক 2 ডি ব্যবহার করছি। আমি স্প্রিটটি ঘোরানোর জন্য মাউস এবং স্প্রিটটি সরানোর জন্য তীর কীগুলি ব্যবহার করার চেষ্টা করছি। কোনও সমস্যা না ঘোরার জন্য আমি স্প্রাইটটি পেতে পারি, তবে এটি যে দিক থেকে অনুমান করা হচ্ছে তার দিকে যেতে আমি এটি পেতে পারি না। যখন আমি "ফরওয়ার্ডস" টিপব, স্প্রাইট অগত্যা মাউসের দিকে অগ্রসর হয় না। আসলে, এটি কেবল সত্যই পর্দার বাম দিকে অগ্রসর হবে। আমি নিশ্চিত যে এর জন্য কিছু স্ট্যান্ডার্ড কোড থাকতে হবে যেহেতু অনেক গেম এই গতির স্টাইলটি ব্যবহার করে। ট্রিগ হওয়ার কথা বলে কেউ আমাকে সাহায্য করতে পারে? ধন্যবাদ
সম্পাদনা করুন: এখানে ঘূর্ণন কোড (যা অন্য কিছু অদ্ভুত করে: /programming/12610320/why-is-my-image-rotating-off-center )
int mX = Mouse.getX();
int mY = HEIGHT - Mouse.getY();
int pX = sprite.x;
int pY = sprite.y;
int tempY, tempX;
double mAng, pAng = sprite.angle;
double angRotate=0;
if(mX!=pX){
mAng = Math.toDegrees(Math.atan2(mY - pY, mX - pX));
if(mAng==0 && mX<=pX)
mAng=180;
}
else{
if(mY>pY)
mAng=90;
else
mAng=270;
}
sprite.angle = mAng;
sprite.image.setRotation((float) mAng);
এবং আন্দোলনের কোড। আমি কেবল পর্দার বাম দিকে যেতে পারি ...
double ang = sprite.angle;
Input input = gc.getInput();
if(input.isKeyDown(sprite.up)){
sprite.x += Math.cos(ang)*sprite.moveSpeed;
sprite.y += Math.sin(ang)*sprite.moveSpeed;
}if (input.isKeyDown(sprite.down)){
sprite.x += -1*Math.cos(ang*Math.PI/180)*sprite.moveSpeed;
sprite.y += -1*Math.sin(ang*Math.PI/180)*sprite.moveSpeed;
}if (input.isKeyDown(sprite.left)){
sprite.x -= Math.cos(ang*Math.PI/180)*sprite.moveSpeed;
sprite.y += Math.sin(ang*Math.PI/180)*sprite.moveSpeed;
}if (input.isKeyDown(sprite.right)){
sprite.x += Math.cos(ang*Math.PI/180)*sprite.moveSpeed;
sprite.y -= Math.sin(ang*Math.PI/180)*sprite.moveSpeed;
}