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

2
การทำเอฟเฟกต์ SNES Mode 7 (เลียนแบบการแปลง) ใน pygame
มีคำตอบสั้น ๆ เกี่ยวกับการทำเอฟเฟกต์โหมด 7 / mario kart ใน pygame หรือไม่? ฉันได้ทำ Google อย่างครอบคลุมเอกสารทั้งหมดที่ฉันสามารถหาได้มีหลายสิบหน้าในภาษาอื่น (asm, c) ที่มีสมการที่ดูแปลก ๆ มากมาย เป็นการดีที่ฉันต้องการค้นหาสิ่งที่อธิบายเพิ่มเติมเป็นภาษาอังกฤษมากกว่าในแง่คณิตศาสตร์ ฉันสามารถใช้ PIL หรือ pygame เพื่อจัดการภาพ / พื้นผิวหรืออะไรก็ตามที่จำเป็น ฉันต้องการบรรลุผลโหมด 7 ใน pygame แต่ฉันดูเหมือนใกล้ถึงจุดสิ้นสุดของปัญญา ความช่วยเหลือจะได้รับการชื่นชมอย่างมาก แหล่งข้อมูลหรือคำอธิบายใด ๆ ก็ตามที่คุณสามารถจัดหาได้นั้นยอดเยี่ยมแม้ว่ามันจะไม่ง่ายอย่างที่ฉันต้องการ ถ้าฉันสามารถหาได้ฉันจะเขียนวิธีการทำโหมด 7 สำหรับหน้ามือใหม่ แก้ไข: โหมด 7 doc: http://www.coranac.com/tonc/text/mode7.htm
19 pygame 

3
อัลกอริทึมที่ดีสำหรับรูปแบบเมืองแบบเศษส่วนคืออะไร
พื้นหลัง ฉันใช้เซิร์ฟเวอร์ Minecraft ที่ฉันจะออกแบบเมืองเริ่มต้นที่มีขนาดค่อนข้างใหญ่ ฉันมีชุดของสิ่งต่าง ๆ เช่นสัญญาณกฎและกรงม็อบฉันต้องการวางในอาคารที่นั่น เมืองนี้จะมีขนาดใหญ่มากและกระจายออกไปโดยเฉพาะอย่างยิ่งขนาด 1,000 ถึง 1,000 ช่วงตึก ตัวอาคารจะมีลูกบาศก์หรือรอยเท้าเป็นรูปสี่เหลี่ยมผืนผ้าซึ่งมีพื้นฐานจากคิวบ์ฐานหนึ่งเช่นเดียวกับทวีคูณของ 3 บล็อก ถนนและระยะห่างระหว่างอาคารจะกว้างกว่า 5-11 ช่วงตึกขึ้นอยู่กับความสำคัญของถนน เมื่อฉันเริ่มแผนสำหรับเมืองฉันจะรู้ว่าฉันต้องการให้อาคารมีขนาดใหญ่เพียงใดและจะมีเท่าไหร่ ปัญหา ปัญหาคือการออกแบบเลย์เอาต์สำหรับเมือง เห็นได้ชัดว่ามีอะไรบางอย่างในระดับนี้และฉันมาจากพื้นหลังการเขียนโปรแกรมมากกว่าพื้นหลังการวางแผนเมืองมันค่อนข้างท้าทายที่จะเริ่มหัวของฉันในการแก้ไขปัญหา ปัญหาเฉพาะคือฉันต้องการให้เมืองดูเป็นธรรมชาติมากที่สุด ของหลักสูตรนี้จะค่อนข้างง่ายต่อการสร้างในรูปแบบกริดที่เรียบง่าย แต่ฉันต้องการหลีกเลี่ยงกริดหรืออะไรก็ตามที่ดูเหมือนกริดมากที่สุดเท่าที่จะทำได้ คำถาม ฉันสามารถใช้อัลกอริทึมใดเพื่อช่วยฉันออกแบบโดยใช้โค้ด ฉันคิดว่ามันจะดูเป็นธรรมชาติที่สุดถ้าฉันใช้เศษส่วนในบางวิธีเนื่องจาก Minecraft ใช้แฟร็กทัลแล้วในยุคของภูมิประเทศและเมืองดูเหมือนว่าจะเติบโตในรูปแบบเศษส่วนตามธรรมชาติ ฉันคิดว่ามันคล้ายกันกับอัลกอริทึมการเล่นเตตริสดังนั้นถ้าใครมีวิธีแก้ปัญหาที่มีทิศทางนั้นมันก็จะช่วยได้เช่นกัน ฉันนึกภาพสิ่งที่ฉันจะสามารถกำหนดรูปร่างที่ฉันต้องการใช้แล้วซอฟต์แวร์จะวนซ้ำจนกว่าจะพบทางออกที่ "ดีที่สุด" ที่สุดสำหรับการกระจายตัวของอาคาร มีบางสิ่งบางอย่างที่มีอยู่แล้วเพื่อช่วยฉันแก้ปัญหานี้โดยใช้ไพ ธ อน โดยธรรมชาติแล้วสิ่งนี้มีความหมายที่น่าสนใจสำหรับคนรุ่นต่อเมืองโดยทั่วไปในการออกแบบเกมดังนั้นฉันจึงตื่นเต้นมากที่เห็นว่าทางออกที่ดีที่สุดคืออะไร แก้ไข ให้ชัดเจนฉันแค่มองหาเค้าโครง ณ จุดนี้เนื่องจากอาคารจะได้รับการออกแบบและสร้างขึ้นในเกม

2
ทำไมผู้เล่นสไปรต์ของฉันถึงเคลื่อนที่เร็วขึ้นเมื่อฉันเลื่อนเมาส์
ฉันพยายามพัฒนาเกมง่ายๆที่สร้างด้วย Pygame (Python library) ฉันมีspriteวัตถุที่เป็นplayerและฉันย้ายมันโดยใช้ปุ่มลูกศร ถ้าฉันไม่เลื่อนเม้าส์สไปรต์ก็จะเคลื่อนที่ตามปกติ แต่เมื่อฉันเลื่อนเมาส์สไปรต์จะเคลื่อนที่เร็วขึ้น (เช่น x2 หรือ x3) playerวัตถุอยู่ภายในcharsGroupvar ฉันใช้งานเกมใน W7 และใน Ubuntu สิ่งเดียวกันเกิดขึ้นในทั้งสองระบบปฏิบัติการ ฉันมีเอนทิตีมากกว่าที่เคลื่อนไหวเหมือน NPC และกระสุน แต่พวกมันไม่ได้รับผลกระทบเพียงแค่ผู้เล่น ด้วยสิ่งนี้ฉันคิดว่าปัญหาอาจมีการเชื่อมต่อโดยตรงกับระบบการเคลื่อนที่ของผู้เล่น (ปุ่มลูกศร) นี่คือupdate()วิธีการของplayerวัตถุ: def update(self): for event in pygame.event.get(): key = pygame.key.get_pressed() mouseX, mouseY = pygame.mouse.get_pos() if event.type == pygame.MOUSEBUTTONDOWN: self.bulletsGroup.add(Bullet(pygame.image.load("bullet.png"), self.rect.x + (self.image.get_width()/2), self.rect.y + (self.image.get_height()/2), mouseX, mouseY, …

2
รูปแบบทั่วไปเพื่อขยาย“ หน่วยจริง” เป็นพิกเซล?
นี่คือคำถามที่ติดตามเพื่อคนอื่น ๆ นี้ ฉันต้องการทราบว่ามีรูปแบบทั่วไป / ทั่วไป / ดีที่สุดในการขยายการเป็นตัวแทนของโลก (ปัจจุบัน 160Kmx160Km) เพื่อให้พอดีกับพื้นที่วาดรูป (ปัจจุบันคือ 800x600 พิกเซล) ฉันสามารถคิดถึงวิธีที่แตกต่างกันอย่างน้อยสี่วิธี: หนึ่งเดียว (วิธีที่ฉันทำจนถึงตอนนี้) ฉันใช้งานฟังก์ชั่นระดับโลกsc(vector)ซึ่งจะคืนค่าสำเนาเวกเตอร์ที่ลดขนาดลงซึ่งแน่นอนว่าใช้ได้ผล แต่ฉันต้องเขียนโค้ดเช่น: drawCircle(sc(radius), sc(position)) ฟังก์ชั่นการตัดคำ ฉันสามารถกำหนดฟังก์ชั่นได้หลายอย่างแต่ละอันห่อมิดเดิลแวร์ดั้งเดิมไว้ ตัวอย่างเช่นฉันสามารถกำหนดได้myDrawCircleว่าจะปรับขนาดอาร์กิวเมนต์ที่จำเป็นต้องปรับขนาดก่อนแล้วจึงเรียกdrawCircleใช้ตัวหลัง นี่อาจทำให้โค้ดของฉันอ่านง่ายขึ้นและง่ายต่อการบำรุงรักษา แต่ฉันควรเขียนฟังก์ชั่นการพันซึ่งฟังดูงี่เง่า มัณฑนากรฟังก์ชั่น ฉันก็สามารถตกแต่งฟังก์ชั่นมิดเดิลแวร์ที่มีอยู่ให้ปรับอัตโนมัติสำหรับพารามิเตอร์ทั้งหมดที่เป็น instantiation ของชั้นVector3Dแต่ปัญหาก็คือว่าฟังก์ชั่นเหล่านั้นยังทำงานร่วมกับพารามิเตอร์เดียวกันเป็นlistหรือVector2Dเกินไปและมัณฑนากรจะมีวิธีที่จะรู้ว่าไม่มี รายการใดที่ต้องปรับขนาด (รัศมีเช่น) และไม่ (ค่า RGB) initialisation พื้นผิว เมื่อกำหนดพื้นผิวที่ฉันกำลังจะวาดฉันสามารถกำหนดปัจจัยการปรับ (เพื่อที่ฉันจะใช้เมตรและไม่พิกเซลเป็นพารามิเตอร์) สิ่งนี้จะทำงานได้อย่างโปร่งใสสำหรับฉันและจะเป็นทางเลือกของฉัน แต่แน่นอนว่าควรใช้ในมิดเดิลแวร์ดังนั้นจึงไม่ใช่ตัวเลือกที่แท้จริง ... แต่อย่างใด: เนื่องจากนี่เป็นปัญหาที่พบบ่อยมากฉันสงสัยว่ามีรูปแบบที่จัดตั้งขึ้นซึ่งแก้ปัญหาที่ฉันไม่สามารถหาได้อย่างสง่างาม PS: สำหรับโครงการนี้ฉันใช้ python (กับpygame ) แต่ถึงแม้ว่าคำตอบเฉพาะของไพ …

6
ทำให้อัตราเฟรมของ pygame เร็วขึ้น
จากการทำโปรไฟล์เกมของฉันฉันเห็นว่าเวลาส่วนใหญ่ในการดำเนินการของเกมงานอดิเรกของฉันคือระหว่างการ blit และการพลิก ขณะนี้มันทำงานที่ประมาณ 13fps เท่านั้น การ์ดแสดงผลของฉันค่อนข้างดีดังนั้นฉันเดาว่า pygame ไม่ได้ใช้งาน ไม่มีใครรู้เกี่ยวกับตัวเลือกกราฟิก / การแสดงผลที่ฉันต้องตั้งค่าใน pygame เพื่อให้เร็วขึ้น? หรือนี่เป็นสิ่งที่ฉันต้องอยู่ด้วยตั้งแต่ฉันเลือก pygame?

1
gluLookAt ทำงานอย่างไร
จากความเข้าใจของฉัน gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); เทียบเท่ากับ: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); แต่เมื่อฉันพิมพ์ModelViewเมทริกซ์การเรียกเพื่อglTranslatef()ดูเหมือนจะทำงานไม่ถูกต้อง นี่คือข้อมูลโค้ด: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int …

2
เพิ่มความเร็วในการ blitting
ฉันกำลังทำงานกับนักเล่นเกม 2 มิติใน PyGame สำหรับแต่ละแผนที่เราใช้หนึ่งพื้นผิว (นี่คือขนาดที่แท้จริงของพื้นผิว): จากนั้นเราโหลดภาพด้วยรหัสนี้: sprite = pygame.image.load("Maps/MapTesting.png") sprite.convert() sprite = pygame.transform.scale(sprite, (sprite.get_width()*6, sprite.get_height()*6)) อย่างที่คุณเห็นพื้นผิวจะถูกเป่าขึ้น 6 ครั้งเพื่อสร้างพื้นผิวแผนที่จริง โดยเฉลี่ยแล้วพื้นผิวนี้มีขนาดประมาณ 4500x800 พื้นผิวนี้ต้องถูกทำให้เบลอกับหน้าจอทุกเฟรมเพราะหน้าจอทั้งหมดสกปรก (ขอบคุณการเลื่อนด้านข้าง) เราทำเช่นนั้นโดยใช้รหัสนี้: screen.blit(sprite, (0, 0), (cameraposx, cameraposy, windowheight, windowwidth)) และมันใช้งานได้ ปัญหาคือว่ามันค่อนข้างช้า: ฉันได้รับน้อย 40 FPS บนพีซีที่เหมาะสมและนั่นคือไม่มี AI / วัตถุจริงที่เกิดขึ้นในขณะที่เราตั้งเป้าไว้ที่ 60 FPS เราจะเร่งความเร็วนี้ได้อย่างไร? โปรดทราบว่ารหัสข้างต้นถูกทำให้สะอาดและถูกนำออกจากบริบท รหัสเต็มสามารถดูได้ที่นี่: https://github.com/nightcracker/PyGG2 และสุดท้าย แต่ไม่ท้ายสุดในขณะที่ภาพด้านบนอาจดูเหมือน 8 บิตมีองค์ประกอบในเกมที่ต้องใช้ความลึกบิตมากกว่า
9 pygame 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.