คำถามติดแท็ก java

Java เป็นทั้งภาษาโปรแกรมเชิงวัตถุยอดนิยมและสภาพแวดล้อมรันไทม์ซึ่งช่วยให้โปรแกรม Java สามารถรันไม่เปลี่ยนแปลงบนแพลตฟอร์มฮาร์ดแวร์และซอฟต์แวร์ส่วนใหญ่

2
การค้นหาไทล์ใดที่ถูกตัดกันโดยบรรทัดโดยไม่ต้องวนลูปทั้งหมดหรือข้ามใด ๆ
ฉันกำลังจ้องมองปัญหานี้มาสองสามวันแล้ว ฉันดึงภาพนี้ขึ้นมาเพื่อช่วยให้เห็นภาพของปัญหา: (จากกราฟเรารู้ว่าเส้นตัดกัน [1, 1], [1, 2], [2, 2], [2, 3] ซึ่งลงท้ายด้วย [ 3,3]) ฉันต้องการที่จะก้าวไปตามเส้นสู่พื้นที่กริดแต่ละอันและตรวจสอบเพื่อดูว่าวัสดุของพื้นที่กริดนั้นมั่นคงหรือไม่ ฉันรู้สึกว่าฉันรู้คณิตศาสตร์แล้ว แต่ฉันยังไม่สามารถรวมมันเข้าด้วยกันได้ ฉันใช้สิ่งนี้เพื่อทดสอบสายตาและกำจัดโหนดหลังจากพบเส้นทางผ่านอัลกอริธึมการค้นหาเส้นทางของฉัน - เอเจนต์ของฉันไม่สามารถมองผ่านบล็อกทึบดังนั้นพวกเขาจึงไม่สามารถเคลื่อนที่ผ่านหนึ่งดังนั้นโหนดจึงไม่ถูกกำจัดออกจากเส้นทาง จะต้องนำทางมุม ดังนั้นฉันต้องการอัลกอริทึมที่จะไปตามเส้นตรงไปยังพื้นที่กริดแต่ละอันที่มันตัดกัน ความคิดใด ๆ ฉันได้ดูอัลกอริธึมทั่วไปจำนวนมากเช่นของ Bresenham และขั้นตอนที่กำหนดช่วงเวลาตามเส้นที่กำหนดไว้ล่วงหน้า (น่าเสียดายที่วิธีนี้ข้ามกระเบื้องถ้าพวกเขาตัดกันด้วยลิ่มที่เล็กกว่าขนาดขั้นตอน) ตอนนี้ฉันกำลังเติมไวท์บอร์ดของฉันด้วยพื้น () และฟังก์ชั่น ceil () - แต่มันซับซ้อนเกินไปและฉันกลัวว่ามันอาจทำให้เกิดการชะลอตัว

3
สคริปต์ควรโต้ตอบกับสิ่งที่เป็นนามธรรมหรือไม่?
ฉันกำลังใช้ Java และ Jython และหลังจากการวิจัยบางอย่างฉันค้นพบว่าการให้สคริปต์เข้าถึงโดยตรงกับส่วนต่อประสานเครื่องยนต์อาจเป็นข้อผิดพลาด ดูเหมือนว่าสคริปต์ส่วนใหญ่ที่ช่วยให้ mods สามารถสร้างและจัดการเอนทิตีได้โดยทำสิ่งที่เป็นนามธรรม เหตุผลเหล่านี้อยู่ที่นั่นด้วยเหตุผลนี้หรือไม่หรือเป็นเพียงเพื่อมอบวิธีที่ใช้งานง่ายขึ้นสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์เพื่อดัดแปลงเกม
10 java  python  scripting 

3
การตรวจจับการชนกันแบบ 3 มิติที่เร็วที่สุดระหว่างกล่องขอบเขตสองตัว (OBBs)
ฉันอยู่ในจุดที่เกมของฉันที่ฉันต้องการเพิ่มระบบการปะทะกัน ฉันลอง jBullet และในขณะที่ใช้งานได้มันก็ไม่ใช่สิ่งที่ฉันกำลังมองหา ฉันแค่ต้องการวิธีง่ายๆในการทดสอบว่าต้นไม้สองเส้นที่มุ่งเน้นกล่อง (OBB) ชนกันหรือไม่ ฉันจะไปชนกันโดยใช้ต้นไม้ สร้าง AABB สำหรับบรอดเฟสจากนั้นถ้าผ่านการทดสอบว่า OBB แต่ละต้นในต้นไม้ชนกับต้นไม้อื่นหรือไม่ ฉันพบบางสิ่งบนอินเทอร์เน็ต แต่ฉันไม่สามารถเข้าใจได้อย่างสมบูรณ์ สิ่งที่ฉันขอคือเว็บไซต์หรือแหล่งข้อมูลที่อธิบายการชนแบบ 3D OBB ได้ดี? ฉันได้เรียนรู้ว่า GJK นั้นเร็วกว่า SAT และดูเหมือนจะสามารถบอกฉันได้ว่ากล่องนั้นทะลุกันได้ไกลแค่ไหน ฉันพบบางสิ่งที่ GJK แต่พวกเขาไม่ใช่กล่อง สิ่งที่ซับซ้อนและสับสนแทน ฉันแค่ต้องการสร้าง OBB จาก 3 เวกเตอร์: ศูนย์กลางขนาดและการหมุนของแต่ละแกน จากนั้นสามารถทดสอบการชนกับสิ่งเหล่านั้นได้ ขอบคุณล่วงหน้าสำหรับทุกสิ่งที่คุณโพสต์

6
ฉันจะรับพิกัดพิกเซลเป็น hex บนแผนที่ฐานสิบหกที่ใช้อาร์เรย์ได้อย่างไร
ฉันกำลังพยายามสร้างพิกเซลเพื่อประสานการทำงานของแผนที่ฐานสิบหก แต่ฉันไม่ได้คณิตศาสตร์อย่างถูกต้องทุกอย่างที่ฉันพยายามทำดูเหมือนจะผิดเพี้ยนไปเล็กน้อย โดย 'ตามอาร์เรย์' ฉันหมายถึงวิธีการสั่งซื้อ hexes ดูรูป ผลลัพธ์ที่แม่นยำที่สุดที่ฉันได้รับคือด้วยรหัสต่อไปนี้ แต่มันยังคงปิดอยู่และยิ่งแย่ลงยิ่งมีค่ามากขึ้น: public HexCell<T> coordsToHexCell(float x, float y){ final float size = this.size; // cell size float q = (float) ((1f/3f* Math.sqrt(3) * x - 1f/3f * y) / size); float r = 2f/3f * y / size; return getHexCell((int) r, (int) q); …

1
วิธีการเปลี่ยนสีของพิกเซลพื้นหลัง
ฉันกำลังเขียนเกมและแก้ไขแผนที่โดยใช้ Java และ jMonkeyEngine ในเครื่องมือแก้ไขแผนที่ฉันมีแปรงทำโดย wireframed sphere ปัญหาของฉันคือ: ฉันต้องการให้มันปรากฏทุกที่ดังนั้นฉันต้องการกลับสีของพิกเซล "หลัง" แปรงนี้ ฉันอยากจะทำมันด้วย fragment shader (GLSL) แต่ฉันไม่รู้วิธีรับสีของพิกเซลนี้

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

1
ฉันจะใช้ LOD เรขาคณิตแบบไดนามิกบน OpenGL ได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดเมื่อปีที่แล้ว ฉันพยายามใช้ LOD เพื่อเพิ่มประสิทธิภาพของเกม ผมพบว่าการกวดวิชาที่ดีมาก แนวคิดพื้นฐานที่ฉันคิดว่าฉันเข้าใจคือ: ระยะทางจากกล้องไปยังวัตถุตรวจสอบระดับ LOD ที่เหมาะสมจากนั้นแสดงวัตถุด้วย "ปริมาณที่เหมาะสมของอินสแตนซ์" ฉันจะใช้สิ่งนั้นได้อย่างไร โค้ดตัวอย่างที่ให้มาเป็นปริศนาสำหรับฉัน ... บางคำถาม: นี่เป็นวิธีที่ดีในการใช้ LOD หรือไม่? ใครบางคนช่วยอธิบายรายละเอียดฉันได้อย่างไรฉันต้องนำไปใช้อย่างไรพร้อมกับข้อความค้นหาและอื่น ๆ ... ฉันกำลังแสดงวัตถุทั้งหมดของฉันด้วย GL11.glDrawElements(GL11.GL_TRIANGLES, model.getRawModel().getVertexCount(), GL11.GL_UNSIGNED_INT, 0); GL_POINTSการใช้โค้ดตัวอย่าง ฉันสามารถใช้มันได้ด้วยGL_TRIANGLESหรือไม่
9 opengl  java 

1
ฉันจะชักนำให้เกิดเหตุการณ์การชนใน LibGDX 3D ได้อย่างไร
ในรหัสด้านล่างฉันได้ยกตัวอย่างของสิ่งที่ฉันต้องการจะทำ ฉันมีกล้องถ่ายรูปและฉันต้องการให้มันหยุดเคลื่อนไหวเมื่อใดก็ตามที่กระทบกับกล่องใดกล่องหนึ่งฉันจะทำสิ่งนี้ได้อย่างไร public class Main extends ApplicationAdapter { private final ModelBuilder builder = new ModelBuilder(); private final Environment environment = new Environment(); private ModelBatch modelBatch; private PerspectiveCamera camera; private Model model; private ArrayList<ModelInstance> instance = new ArrayList<ModelInstance>(); private FirstPersonCameraController controller; private BoundingBox[] boxBounds = new BoundingBox[1000]; private BoundingBox cameraBox = …

1
โหลดโฆษณาในหน้าจอเริ่มต้นหรือไม่
ฉันมีโฆษณาบางรายการที่ใช้เวลาโหลดนานมาก ฉันสงสัยว่ามันเป็นไปได้ที่จะให้พวกเขาโหลดในขณะที่ใช้อยู่ในหน้าจอเริ่มต้น ฉันได้ดูคำตอบนี้: /programming/5133342/how-can-i-make-my-ads-appear-faster-in-my-android-app และคำตอบแนะนำให้ใช้หน้าจอเริ่มต้นเพื่อโหลดโฆษณา ฉันจะรู้ได้อย่างไรว่าโฆษณาถูกโหลดไปยังกิจกรรมต่อไปของฉันเมื่อใด จะเกิดอะไรขึ้นหากผู้ใช้อยู่ในโหมดเครื่องบินจะติดอยู่ในหน้าจอเริ่มต้นหรือไม่ ฉันเคยเห็นผู้ดูแลระบบเพิ่มแอดมิน แต่นั่นต้องได้รับการดู แต่สิ่งที่ฉันเห็นอยู่ในกิจกรรมต่อไปคืออะไร? ฉันจะแก้ไขปัญหานี้ได้อย่างไร นอกจากนี้เมื่อฉันพยายามทำสิ่งนี้: AdView.setAdListener(new AdListener() { // Implement AdListener }); ฉันเข้าใจ: วิธีการไม่คงที่ไม่สามารถอ้างอิงได้จากบริบทแบบคงที่ สิ่งคือฉันพยายามที่จะดูเมื่อการเพิ่มที่อยู่ในกิจกรรมต่อไปเสร็จสิ้นการโหลด

1
การหมุนกล้อง 3D
ได้โปรดยกโทษให้ฉันด้วย แต่ฉันต้องการความช่วยเหลือและฉันติดอยู่กับเรื่องนี้มาสองสามสัปดาห์แล้วตอนนี้ฉันไม่มีความคืบหน้าและทุกที่ที่ฉันไปและฉันเห็นคำตอบที่ต่างออกไป ฉันมีเคล็ดลับและคำแนะนำเพียงพอตอนนี้ฉันแค่ต้องการใครสักคนที่จะให้คำตอบสำหรับฉันที่จะทำงานย้อนกลับจากเพราะฉันไม่เข้าใจ สิ่งที่ทำให้เรื่องนี้เกิดความสับสนมากที่สุดคือวิธีที่ทุกคนใช้ชุดของการประชุมหรือกฎระเบียบที่แตกต่างกันและคำตอบของพวกเขาขึ้นอยู่กับการประชุมของพวกเขาเอง ดังนั้นนี่คือชุดของการประชุมที่ฉันสร้างขึ้นตามสิ่งที่ดูเหมือนจะเป็นเรื่องธรรมดาและมีเหตุผลที่สุด: กฎมือขวาสำหรับแกน Positive Y เพิ่มขึ้น Positive Z กำลังเข้าหาผู้ชม Positive X อยู่ทางขวา Row Major matrixes, transposed เมื่อถูกส่งไปยังเฉดสี Pitch: การหมุนรอบแกน X Yaw: การหมุนรอบแกน y ม้วน: การหมุนเกี่ยวกับแกน z ลำดับการหมุน: หมุน, ระยะห่าง, Yaw (ถูกต้องไหมมีคนตรวจสอบฉันได้ไหม) ค่าการหมุนในเชิงบวกมองลงมาจากปลายบวกของแกนผลลัพธ์ในการหมุนตามเข็มนาฬิกา ทิศทางเริ่มต้นสำหรับการหมุน 0 ในทุกแกนคือเวกเตอร์ที่ชี้ไปที่ลบ Y .. ได้รับอนุสัญญาเหล่านั้น (โดยทั้งหมดแก้ไขฉันถ้าพวกเขาผิด!) วิธีหนึ่ง: เขียนฟังก์ชั่น LookAt หรือไม่ (lookAt (ตำแหน่งเวกเตอร์, เลนส์เวกเตอร์, เวกเตอร์ขึ้นไป)) …

3
ฉันจะส่งเมทริกซ์หลายตัวไปยังจุดสุดยอดได้อย่างไร
ฉันกำลังฝึกอนิเมชั่นโดยใช้กระดูก / สกินนิ่ง ฉันกำลังพยายามส่งเมทริกซ์หนึ่งส่วนต่อจุดยอด ฉันนึกถึงสองแนวทางนี้ วิธีที่ 1 ฉันมีมือจับอันเดียวสำหรับเมทริกซ์กระดูกแต่ละอันเช่นนี้ u_Bone0 = GLES20.glGetUniformLocation(mProgram, "u_Bone[0]"); u_Bone1 = GLES20.glGetUniformLocation(mProgram, "u_Bone[1]"); และในการที่onDrawฉันส่งแต่ละคนไปยัง shader: GLES20.glUniformMatrix4fv(u_Bone0, 1, false, matrix0, 0); เห็นได้ชัดว่านี่ไม่ใช่วิธีที่ดีถ้าฉันมีเมทริกซ์จำนวนมาก ความคิดที่สองของฉันที่ฉันยังไม่ได้ลองเนื่องจากมีโค้ดจำนวนมากสำหรับการปรับโครงสร้าง วิธีที่ 2 คือการใช้glUniformMatrix4fvเพื่อส่งพวกเขาทั้งหมดในครั้งเดียว (สมมติว่าฉันมี 20 เมทริกซ์) GLES20.glUniformMatrix4fv(u_Bones, 20, false, matrices, 0); ที่เป็นmatrices float[16 * 20]แต่จากนั้นการปรับเปลี่ยนเมทริกซ์สำหรับแต่ละกระดูกจะค่อนข้างน่าเบื่อ ตัวอย่างเช่นถ้าฉันต้องการหาเมทริกซ์ที่ 3 ฉันต้องการบางสิ่งตามแนวของ float[] _3rd = Arrays.copy(matrices, 3*16, 4*16); และการประหยัดกลับคืนค่าสามารถเป็นที่น่ารำคาญยิ่งขึ้น …

2
เกม Java บนเดสก์ท็อปสามารถกระจายโดยไม่ต้องพึ่งพา Java runtime อย่างไร
เป็นไปได้หรือไม่ที่จะเปลี่ยนแอปพลิเคชัน Java ให้กลายเป็นแพคเกจแบบสแตนด์อโลนที่เรียกว่า "ออกนอกกรอบ"? ผู้ใช้ไม่ควรต้องติดตั้ง Java JRE ใด ๆ และไม่ควรติดตั้ง JRE และติดตั้งให้กับผู้ใช้ การแจกจ่ายขั้นสุดท้ายควรมีการปฏิบัติการแบบเนทีฟ (หวังว่าจะเป็นหนึ่งเดียวสำหรับ Windows, Mac และ Linux) พร้อมกับไฟล์ข้อมูลปกติและ JAR พิเศษอื่น ๆ หากจำเป็น ฉันไม่ได้มองหาวิธีแก้ปัญหา "ไฟล์เดียว" โดยเฉพาะ - ฉันต้องการให้ไฟล์ข้อมูลไม่ได้ถูกทำให้ยุ่งเหยิง สิ่งนี้สามารถทำได้?

2
การประมาณค่าใช้จ่ายในระบบ GOAP
ฉันกำลังพัฒนาระบบ GOAP ใน Java คำอธิบายของ GOAP สามารถพบได้ที่http://web.media.mit.edu/~jorkin/goap.html โดยพื้นฐานแล้วมันใช้ A * เพื่อพล็อตระหว่างการกระทำที่เปลี่ยนแปลงสถานะโลก เพื่อให้โอกาสที่ยุติธรรมสำหรับการกระทำและเป้าหมายทั้งหมดที่จะดำเนินการฉันใช้ฟังก์ชันการวิเคราะห์พฤติกรรมเพื่อประเมินค่าใช้จ่ายในการทำบางสิ่งบางอย่าง วิธีที่ดีที่สุดในการประเมินค่าใช้จ่ายนี้เพื่อให้สามารถเปรียบเทียบกับค่าใช้จ่ายอื่น ๆ ทั้งหมดคืออะไร ยกตัวอย่างเช่นการประเมินค่าใช้จ่ายในการวิ่งหนีจากศัตรูเมื่อเทียบกับการโจมตี - วิธีการคำนวณต้นทุนควรเปรียบเทียบได้อย่างไร
9 java  ai  path-finding 

2
Android แบบเรียลไทม์หลายคนผ่าน LAN [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันได้พัฒนาหลายเกมสำหรับแพลตฟอร์ม Android และตอนนี้วางแผนที่จะสร้างเกมผู้เล่นหลายคนคนแรกของฉัน สิ่งที่ฉันมีอยู่ในใจเป็นเพียงแค่เกมแม่มดสำหรับผู้เล่น 2 คนคุณสามารถเล่นกับโทรศัพท์ 2 เครื่องผ่านการเชื่อมต่อในพื้นที่ / WiFi โทรศัพท์ทั้งสองเครื่องจะต้องสามารถส่งค่าจำนวนเต็ม 3 ค่าไปยังโทรศัพท์อีกเครื่องได้แบบเรียลไทม์ จนถึงตอนนี้ฉันได้พิจารณาใช้ซ็อกเก็ต แต่ก่อนที่ฉันจะเจาะลึกเกินไปฉันต้องการถามว่าอาจมีวิธีการที่ดีกว่านี้หรือไม่? ขอบคุณ!

3
เมื่อมีรายการห้องที่เชื่อมต่อกันฉันจะค้นหากลุ่มห้องแยกได้อย่างไร
ฉันพยายามที่จะสร้างโร๊คไลค์เล็ก ๆ และออกไปสร้างห้องและทางเดินแบบสุ่ม ห้องพักแต่ละห้องเป็นวัตถุที่ทันสมัยและมีรายการห้องพักอื่น ๆ ที่เชื่อมต่อกันด้วยทางเดิน ฉันสามารถแยกห้องที่ไม่เชื่อมต่อออกจากกัน แต่ฉันจะรู้ได้อย่างไรว่าห้องที่เชื่อมต่อกันเท่านั้น แต่ไม่ได้รวมกับคนอื่น ๆ ส่วนใหญ่กลายเป็นเกาะ? เพื่อแสดงให้ดีขึ้นปัญหาที่นี่คือภาพจากคอนโซลในระดับจม ห้องที่ 5 และ 6 เชื่อมต่อกันเท่านั้น ฉันสามารถใช้อัลกอริทึมใดเพื่อตรวจสอบสิ่งนั้น
9 java  algorithm 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.