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

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

8
การแปลงเส้นโค้ง 2D เป็นจุดสำหรับการจัดเก็บข้อมูล
ฉันได้สร้างอัลกอริทึมที่แปลงเส้นโค้งใด ๆ เช่นเส้นทางเป็นจำนวนจุดต่ำสุดเพื่อให้ฉันสามารถบันทึกลงในไฟล์หรือฐานข้อมูล วิธีนี้ง่ายมาก: มันขยับสามจุดในขั้นตอนที่เท่ากันและวัดมุมระหว่างเส้นที่จุดเหล่านี้ก่อตัวขึ้น หากมุมมีขนาดใหญ่กว่าค่าความคลาดเคลื่อนก็จะสร้างเส้นโค้งลูกบาศก์ใหม่ไปยังจุดนั้น จากนั้นมันจะเลื่อนเส้นไปข้างหน้าและวัดมุมอีกครั้ง ... สำหรับผู้ที่รู้ว่า Android Path Class - โปรดทราบว่าdstPathเป็นคลาสที่กำหนดเองซึ่งบันทึกคะแนนลงใน Array เพื่อให้ฉันสามารถบันทึกคะแนนในภายหลังในขณะที่srcPathเป็นผลมาจากการรวมกันของภูมิภาคดังนั้นจึงไม่มีประเด็นสำคัญสำหรับฉัน เพื่อบันทึก. ปัญหาคือว่าวงกลมดูไม่ราบรื่นอย่างที่คุณเห็นในภาพนี้ผลิตโดยโค้ดด้านล่างซึ่งเส้นทางที่มาประกอบด้วยวงกลมและสี่เหลี่ยมผืนผ้าที่สมบูรณ์แบบ ฉันพยายามเปลี่ยนมุมความอดทนและความยาวของก้าว แต่ไม่มีอะไรช่วย ฉันสงสัยว่าคุณสามารถแนะนำการปรับปรุงอัลกอริทึมนี้หรือแนวทางอื่น แก้ไข: ฉันได้โพสต์รหัสทั้งหมดสำหรับผู้ที่ใช้ Android java เพื่อให้พวกเขาสามารถลองและทดลองได้อย่างง่ายดาย public class CurveSavePointsActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new CurveView(this)); } class CurveView extends View{ Path srcPath, dstPath; Paint srcPaint = …

2
ฉันได้รับอนุญาตให้สร้างแหล่ง Minecraft ของฉันเป็นโคลนหรือไม่
ฉันกำลังพัฒนาในเวลาว่างเกมอย่าง Minecraft ในความเป็นจริงมันไม่ได้ " เหมือน Minecraft" เพราะฉันพยายามทำให้มันใกล้เคียงที่สุดเท่าที่จะทำได้ (หมายถึงการออกกำลังกายเพื่อตัวเองตอนอายุ 16 และเพียงเพราะมันสนุกสำหรับฉัน) แน่นอนฉันไม่ได้คัดลอกรหัสโดยใช้Minecraft Coder แพ็ค (MCP) ฉันเริ่มเกมตั้งแต่เริ่มต้นใน Java โดยใช้ OpenGL ดังนั้นคำถามของฉันคือ: ฉันได้รับอนุญาตให้วางรหัสต้นฉบับของฉันออนไลน์บนโฮสต์ซอร์สโค้ดการกำหนดเวอร์ชันสาธารณะเช่น GitHub, Google Code, และ cetera (ซึ่งทำให้รหัสของฉันเปิดแหล่งที่มาเพราะฉันไม่ต้องการจ่ายเพื่อใช้ส่วนตัว โฮสต์)? แน่นอนฉันไม่ต้องการขายเกมเพราะเกมดังกล่าวมาจาก Notch รายละเอียดที่อาจสำคัญคือฉันใช้พื้นผิวแบบกำหนดเอง (ไม่ใช่ของที่มาพร้อมกับ Minecraft จริง) หากได้รับอนุญาตจะมีกฎหรือไม่? ฉันดูที่หน้านี้ แต่ดูเหมือนว่าเขาจะไม่พูดอะไรเกี่ยวกับเรื่องนี้: http://www.minecraft.net/terms แก้ไข:มีเกมที่เรียกว่าTerasology (เริ่มต้นภายใต้ชื่อ Blockmania) จาก Begla นั่นเป็นโครงการที่ดี แต่มันก็ไม่ได้ใกล้เคียงกับ Minecraft เท่าที่จะเป็นไปได้ โครงการนั้นเป็นโอเพ่นซอร์ส

5
สไปรท์ในฐานะนักแสดง
ฉันไม่ได้มีประสบการณ์ในคำถามการพัฒนาเกม แต่เป็นโปรแกรมเมอร์ ในภาษาสกาล่าคุณสามารถปรับขยายการทำงานแบบมัลติทาสกิ้งกับนักแสดงได้อย่างมั่นคงในขณะที่ฉันได้ยิน คุณสามารถมีหลายแสนคนทำงานพร้อมกันโดยไม่มีปัญหา ดังนั้นฉันคิดว่าบางทีคุณสามารถใช้สิ่งเหล่านี้เป็นคลาสพื้นฐานสำหรับ 2D-Sprites เพื่อแยกสิ่งลูปเกมที่ต้องผ่านสไปรต์ทั้งหมดและย้ายพวกเขา โดยพื้นฐานแล้วพวกเขาจะย้ายตัวเองขับเคลื่อนเหตุการณ์ นั่นจะสมเหตุสมผลสำหรับเกมหรือไม่? หากมีหลายภารกิจเช่นนั้น ท้ายที่สุดมันจะทำงานบน JVM แม้ว่าจะไม่เป็นปัญหามากในปัจจุบัน แก้ไข: หลังจากเล่นน้ำไปซักพักผมสังเกตเห็นว่ามีข้อได้เปรียบเพียงข้อเดียวที่แท้จริงสำหรับแนวคิดนี้: การสนับสนุนมัลติคอร์ เกมวนง่ายจะทำงานบนแกนเดียวเท่านั้นและจะทำงานทุกอย่างตามลำดับ ตั้งแต่คอมพิวเตอร์สมัยใหม่แม้ที่บ้านทุกวันนี้มีคอร์ในตัวตั้งแต่สองคอร์ขึ้นไปฉันคิดว่ามันเป็นความคิดที่ดีที่จะช่วยให้โปรแกรมเมอร์เกมสามารถใช้คอร์อื่นได้อย่างมีประสิทธิภาพ ท้ายที่สุดฉันคิดว่าโดยปกติผู้เล่นจะมีเพียงเกมที่ทำงานบนเครื่องแปดหลักของเขาเท่านั้นดังนั้นทำไมไม่ ข้อได้เปรียบอื่น ๆ ที่ฉันเห็นคือใน Scala คุณสามารถมีRemoteActorsซึ่งสามารถได้รับการปฏิบัติในลักษณะเดียวกัน แต่ทำงานบนคอมพิวเตอร์เครื่องอื่น ดังนั้นนี่อาจทำให้การเล่นเกมบนเครือข่ายง่ายขึ้นเช่นกัน ฉันตั้งใจจะสร้างสิ่งนั้นลงในเอ็นจิ้น Scala 2D ของฉันโดยเร็วที่สุด

5
มีห้องสมุดเหมือน XNA สำหรับ Java หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันอยากรู้ว่ามีห้องสมุดเหมือน XNA สำหรับ Java หรือไม่ นั่นคือห้องสมุดที่ จัดการวนรอบเกม - นั่นคือคุณเพิ่งใช้วิธีที่มีอยู่แล้วและมันจะถูกเรียกว่าทุกๆเฟรม จัดการการเรนเดอร์ - เช่นคุณเพิ่งบอกว่าจะเรนเดอร์มันจะดูแลการแสดงผลไปยังจอภาพโดยซ่อนรายละเอียดการใช้งานเช่นการเร่งด้วยฮาร์ดแวร์ มีวิธีการที่เป็นประโยชน์มากมายสำหรับตัวเลือกกราฟิกเสียงและผู้ใช้ ฉันสนใจห้องสมุดที่รองรับทั้งตัวเลือก 2D และ 3D
12 java 

5
เกม 2D และ Java ความเป็นไปได้อื่น ๆ นอกเหนือจาก OpenGL? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ฉันเพิ่งเริ่มเขียนโปรแกรม OpenGL พื้นฐานบางอย่างใน Java แต่ OpenGL และ DirectX นั้นมากเกินกว่าที่จะจัดการและเข้าใจฉันและฉันก็เบื่อเร็วมาก ตอนนี้ฉันสงสัยว่ามีความเป็นไปได้อื่น ๆ นอกเหนือจาก OpenGL (หรือ DirectX) เพื่อสร้างกราฟิก 2D ที่เรียบง่ายและเริ่มต้นในการพัฒนาเกมแม้ว่าจะมีข้อ จำกัด ก็ตาม ฉันอาจจะใช้ OpenGL ต่อไปเมื่อฉันมีประสบการณ์มากกว่านี้
12 2d  java 

3
Unity ให้โค้ดใน Java หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ฉันค่อนข้างใหม่สำหรับประสบการณ์ Unity3D แต่ฉันมีความรู้ดีมากเกี่ยวกับการพัฒนา Java และ Android ฉันสับสนจริงๆว่าถ้า Java จำเป็นสำหรับการพัฒนาแอปพลิเคชัน Android ฉันอ่านที่ไหนสักแห่งในเอกสาร Unity ที่เพิ่มพฤติกรรมให้กับวัตถุใน Unity ต้องใช้สคริปต์และความสามัคคีนั้นสนับสนุนสคริปต์ C #, .Net และ Boo เท่านั้น ไม่มีการใช้ Java เลยใช่ไหม

4
เป็นไปได้หรือไม่ที่จะใช้ฟังก์ชั่น Steamworks ในเกม Java? อย่างไร?
ฉันมีเกมพื้นฐานที่ฉันต้องการที่จะกลายเป็นสิ่งที่ดีกว่าในที่สุด เกมเป็นจาวาทั้งหมดในตอนนี้ แต่ฉันต้องการใช้ Steamworks SDK ในเกมของฉัน (เพื่อให้สามารถมีความสำเร็จและเวิร์กช็อปและอื่น ๆ ) แต่ Steamworks ต้องใช้ C ++ เป็นไปได้ไหมที่เกม Java เต็มของฉันใช้ Steamworks SDK โดยไม่ต้องเขียนใหม่ใน C ++? ขณะนี้ฉันใช้ jMonkey Engine 3 สำหรับเกมของฉัน
11 java  steam 

2
ฉันจะย้ายสไปรต์ไปในทิศทางที่หันหน้าไปได้อย่างไร
ฉันใช้ Java / Slick 2D ฉันพยายามใช้เมาส์เพื่อหมุนสไปรต์และปุ่มลูกศรเพื่อย้ายสไปรต์ ฉันสามารถทำให้เทพดาหมุนได้โดยไม่มีปัญหา แต่ฉันไม่สามารถขยับไปในทิศทางที่ควรจะเป็นได้ เมื่อฉันกด "ส่งต่อ" สไปรท์ไม่จำเป็นต้องเลื่อนไปทางเมาส์ จริงๆแล้วมันจะเคลื่อนไปทางซ้ายของหน้าจอจริงๆเท่านั้น ฉันแน่ใจว่าต้องมีรหัสมาตรฐานสำหรับเกมนี้เนื่องจากเกมหลายเกมใช้รูปแบบการเคลื่อนไหวนี้ ทุกคนสามารถช่วยฉันด้วยสิ่งที่ตรีโกณมิติควรจะเป็น ขอบคุณ แก้ไข: นี่คือรหัสการหมุน (ซึ่งทำอย่างอื่นแปลก ๆ : /programming/12610320/why-is-my-im-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; …

3
จะย้ายวัตถุไปตามเส้นรอบวงของวัตถุอื่นได้อย่างไร?
ฉันไม่ได้คณิตศาสตร์เลยที่มันเจ็บ แต่สำหรับคุณบางคนนี่น่าจะเป็นเค้กชิ้นหนึ่ง ฉันต้องการย้ายวัตถุรอบวัตถุอื่นตามอายุหรือเส้นรอบวงของมันบนเส้นทางวงกลมที่เรียบง่าย ในขณะที่อัลกอริทึมเกมของฉันรู้วิธีเคลื่อนย้ายและวางสไปรต์ที่ขอบของสิ่งกีดขวางและตอนนี้มันรอจุดต่อไปที่จะเคลื่อนที่ขึ้นอยู่กับเงื่อนไขต่าง ๆ ดังนั้นปัญหาทางคณิตศาสตร์นี่คือวิธีการรับตำแหน่ง(aX, aY)และ( bX, bY)เมื่อฉันรู้ว่า Center (cX, cY),ตำแหน่งของวัตถุ(oX, oY)และระยะทางที่ต้องย้าย(d)
11 java  mathematics 

3
ปรับเกม Android ให้เหมาะกับขนาดหน้าจอที่แตกต่างกัน
ฉันกำลังสร้างเกม Android ที่อยู่ในแนวหน้าจอแนวตั้งเท่านั้น มันใช้งานได้ดีเมื่อฉันเรียกใช้บนโทรศัพท์ แต่เมื่อฉันเรียกใช้บนแท็บเล็ตแม้ว่าขนาดหน้าจอจะใหญ่กว่าบิตแมปทั้งหมดจะมีขนาดเท่ากัน มีวิธีใดที่จะทำให้บิตแมปอยู่ในสัดส่วนเดียวกันแม้บนหน้าจอขนาดต่างกันหรือไม่?
11 java  android  screen 

4
ฉันควรย้ายโลกหรือย้ายผู้เล่นหรือไม่
ฉันกำลังจะเริ่มพัฒนาเกมจับคู่ด้านข้างซึ่งเป้าหมายของผู้เล่นคือการเดินทางให้ไกลที่สุดเท่าที่เขาสามารถทำได้ในแกนแนวนอนก่อนที่จะแตะต้อง โปรดทราบว่าฉันไม่จำเป็นต้องเดินทางย้อนกลับไปบนแกนนอน ฉันกำลังพัฒนาสิ่งนี้กับ AndEngine สำหรับ Android ที่ใช้ OpenGL และ Box2d ก่อนที่จะเริ่มฉันต้องตัดสินใจเลือกสิ่งที่สำคัญ: ฉันควรใช้โลกรอบตัวผู้เล่นเพื่อจำลองการเคลื่อนไหวหรือเคลื่อนย้ายผู้เล่นและติดตามเขาด้วยคุณสมบัติกล้องของเครื่องยนต์เกม ทั้งสองวิธีดูเหมือนจะมีจุดแข็งและทางเลือกที่แตกต่างกันดังนั้นฉันไม่ทราบว่าวิธีใดที่ถือว่าดีที่สุด ตัวอย่างเช่นอะไรจะทำให้ง่ายต่อการเพิ่มพลังขึ้นไปพร้อมกันและมีพื้นหลังภาพเคลื่อนไหวที่ดี? ขอบคุณ!

2
ฉันจะพัฒนาเกม Android ของฉันได้อย่างมีประสิทธิภาพได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันได้แนบรูปภาพของแผนภูมิการไหลที่ทำด้วยสี ภาพแสดงวิธีที่ฉันต้องการพัฒนาเกมของฉัน ฉันต้องการเกมที่ทำงานได้ยอดเยี่ยมด้วยการเข้ารหัสอัจฉริยะที่ง่ายต่อการอัปเดตและคุณสมบัติโฆษณาตลอดเวลา แพลตฟอร์มเป้าหมายของฉันคือสมาร์ทโฟน Android และรหัสทั้งหมดจะถูกเขียนด้วยภาษาจาวาพร้อมกับทรัพยากร XML ที่สูงเกินจริงหากเป็นเช่นนั้น ฉันไม่ได้กำลังมองหารหัสที่ยาก แต่รหัสหลอกจะช่วยได้ฉันต้องการคำแนะนำและคำแนะนำจากผู้เชี่ยวชาญมากกว่า คำถามของฉันคือ: นี่เป็นวิธีที่ดีในการเขียนโปรแกรมเกมหรือมีวิธีที่ดีกว่าในการทำเกมนี้หรือไม่? มีการดัดแปลงใด ๆ ที่จำเป็นต้องทำหรือไม่? ข้อเสนอแนะใด ๆ ที่จะเป็นประโยชน์เพราะฉันไม่เคยมีประสบการณ์ในการเขียนโปรแกรมเกมดังนั้นฉันต้องการคำแนะนำจากคนที่เขียนเกมหลายเกมและรู้จากประสบการณ์ว่าควรตั้งรหัสของพวกเขาให้ทำงานได้อย่างมีประสิทธิภาพอย่างไร

1
ฉันควรเขียนเอนจินฟิสิกส์ของตัวเองเพราะการรวมเครือข่าย?
ฉันกำลังพัฒนานักยิงซอมบี้ระดับบนลงล่างเรียลไทม์ ฉันกำลังเขียนโค้ดนี้ใน Java โดยใช้ JBox2D เป็นเครื่องมือฟิสิกส์ของฉัน ฉันได้รับการเข้ารหัสเครือข่ายในสัปดาห์นี้และตอนนี้ฉันได้ถึงการประสานฟิสิกส์ ฉันวางแผนที่จะใช้แบบจำลองการทำนายลูกค้า / เซิร์ฟเวอร์ที่มีสิทธิ์ซึ่งลูกค้าสามารถเคลื่อนย้ายได้ฟรีตราบใดที่เซิร์ฟเวอร์อนุมัติในภายหลัง สิ่งนี้เกี่ยวข้องกับลูกค้าที่ส่งแพ็กเก็ตที่มีข้อมูลการเคลื่อนไหวไปยังเซิร์ฟเวอร์และเซิร์ฟเวอร์คำนวณเวลาแฝงและจำลองโลกใหม่จากสถานะเก่า ปัญหาของฉันคือ JBox2D ซึ่งเป็นเอนจิ้นฟิสิกส์ปัจจุบันของฉัน (โดยทั่วไปคือพอร์ตของ Box2D) ไม่สนับสนุนการพลิกกลับโลกและแน่นอนว่าไม่ใช่เรื่องง่ายที่จะทำให้เป็นอนุกรมข้อมูลโลก ฉันมีวิธีแก้ปัญหา 2 ข้อฉันสามารถปรับเปลี่ยน / ขยายกลไกฟิสิกส์ปัจจุบันของฉันหรือเขียนเองได้ เหตุผลในการเขียนเอนจินฟิสิกส์ของฉันเอง - ฉันสามารถลบคุณสมบัติที่ไม่จำเป็นออกได้ ในเกมจากบนลงล่างฉันต้องใช้กลไกการชนและการบังคับเท่านั้น ไม่มีแรงดึงดูดเกี่ยวข้อง ฉันสามารถเข้าใจโค้ดได้ดีขึ้นและมันน่าจะง่ายกว่าที่จะใช้ฟังก์ชั่นย้อนกลับ เหตุผลในการขยาย / แก้ไข JBox2D การเขียนกลไกทางฟิสิกส์ของฉันเองนั้นเป็นงานที่มีความสำคัญซึ่งอาจยุ่งยาก JBox2D มีชุมชนที่สนับสนุนอย่างกว้างขวางซึ่งสามารถช่วยฉันในการพัฒนา JBox2D มีการปรับแต่งเฉพาะสำหรับสิ่งต่าง ๆ เช่นการตรวจจับการชนกันของข้อมูลซึ่งทำให้มีประโยชน์ งานบางอย่างที่ทำไปแล้ว แต่มีการแชร์รหัสน้อย ดังนั้นความคิดเห็นของคุณคืออะไร นี่เป็นเกมแรกของฉันและฉันไม่มีทางพัฒนาเกมมืออาชีพ หากใครก็ตามสามารถให้ลิงก์บางอันเพื่อทำงานที่ทำไปแล้วในพื้นที่ (โดยเฉพาะการใช้ JBox2D / Box2D / Java)

1
วิธีการสุ่มวางเอนทิตีที่ไม่ทับซ้อนกัน?
ฉันกำลังสร้างสภาพแวดล้อมที่สร้างแบบสุ่มสำหรับเกมที่ฉันกำลังพัฒนา ฉันใช้และการเข้ารหัสในOpenGLJava ฉันกำลังพยายามวางต้นไม้ในโลกของฉัน (เพื่อสร้างป่า) แต่ฉันไม่ต้องการให้แบบจำลองทับซ้อนกัน (ซึ่งเกิดขึ้นเมื่อวางต้นไม้สองต้นใกล้กันเกินไป) นี่คือภาพสิ่งที่ฉันพูดถึง: ฉันสามารถให้รหัสเพิ่มเติมหากจำเป็น แต่นี่คือตัวอย่างสำคัญ ฉันกำลังจัดเก็บวัตถุของฉันในด้วยArrayList List<Entity> entities = new ArrayList<Entity>();ฉันจะเพิ่มรายการนั้นโดยใช้: Random random = new Random(); for (int i = 0; i < 500; i++) { entities.add(new Entity(tree, new Vector3f(random.nextFloat() * 800 - 400, 0, random.nextFloat() * -600), 0, random.nextFloat() * 360, 0, 3, 3, 3); …
11 opengl  java  objects 

2
ฉันจะใช้ไทล์ที่สร้างตามขั้นตอนใน libgdx ได้อย่างไร
ฉันกำลังสร้างเกม Zelda-esque บนลงล่างแบบง่าย ๆ ใน libgdx และฉันต้องการใช้ดันเจี้ยนแบบเรียงต่อกันที่สร้างตามขั้นตอนคล้ายกับสิ่งนี้ Libgdx มีคลาสที่เรียกว่า TiledMap ซึ่งดูเหมือนว่าจะเหมาะกับความต้องการของฉันอย่างไรก็ตามเอกสารนอกเอกสารอย่างเป็นทางการแสดงให้เห็นว่า TiledMaps สามารถใช้ร่วมกับไฟล์. tmx หรือในคำอื่น ๆ ที่ออกแบบไว้ล่วงหน้าแผนที่ ฉันทำ Googling ในปริมาณที่พอใช้แล้วฉันก็เลยขอให้ที่นี่เป็นทางเลือกสุดท้ายหวังว่าจะมีใครบางคนมีประสบการณ์การใช้ libgdx เพื่อสร้างแผนที่ย่อยแบบไดนามิก แก้ไข: ฉันสามารถใช้StaticTiledMapTiles ได้หรือไม่ร่วมกับบทช่วยสอนที่ฉันเชื่อมโยงกับข้างต้นเพื่อบรรลุเป้าหมายได้หรือไม่ ขอบคุณ!

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