मैं पायथन और टिंकर का उपयोग कर क्षुद्रग्रहों का एक संस्करण बनाने के लिए काम कर रहा हूं। जब बाएं या दायां तीर कुंजी दबाया जाता है तो जहाज को घूमने की आवश्यकता होती है। जहाज टिंकर कैनवास पर एक त्रिकोण है। मुझे त्रिकोण के लिए निर्देशांक समायोजित करने के लिए फॉर्मूला के साथ आने में परेशानी हो रही है। मेरा मानना है कि इसमें पाप और कॉस के साथ कुछ करना है, हालांकि मुझे बिल्कुल यकीन नहीं है। अब तक मेरे पास जहाज के लिए दो कक्षाएं हैं और दूसरा खेल के लिए है। जहाज वर्ग में मेरे पास मुख्य प्रेस के लिए कॉलबैक विधियां हैं I किसी भी तरह की सहायता का स्वागत किया जाएगा। धन्यवाद।मैं टिंकर कैनवास पर पाइथन में बहुभुज कैसे घुमा सकता हूं?
जहाज कक्षा
import math
class Ship:
def __init__(self,canvas,x,y,width,height):
self.canvas = canvas
self.x = x - width/2
self.y = y + height/2
self.width = width
self.height = height
self.x0 = self.x
self.y0 = self.y
self.x1 = self.x0 + self.width/2
self.y1 = self.y0-self.height
self.x2 = self.x0 + self.width
self.y2 = self.y0
self.ship = self.canvas.create_polygon((self.x0, self.y0, self.x1, self.y1, self.x2, self.y2), outline="white", width=3)
def changeCoords(self):
self.canvas.coords(self.ship,self.x0, self.y0, self.x1, self.y1, self.x2, self.y2)
def rotateLeft(self, event=None):
# Should rotate one degree left.
pass
def rotateRight(self, event=None):
# Should rotate one degree right.
self.x0 = self.x0 -1
self.y0 = self.y0 - 1
self.x1 = self.x1 + 1
self.y1 = self.y1 + 1
self.x2 = self.x2 - 1
self.y2 = self.y2 + 1
self.changeCoords()
खेल कक्षा सब से
from Tkinter import *
from ship import *
class Game:
def __init__(self, gameWidth, gameHeight):
self.root = Tk()
self.gameWidth = gameWidth
self.gameHeight = gameHeight
self.gameWindow()
self.ship = Ship(self.canvas, x=self.gameWidth/2,y=self.gameHeight/2, width=50, height=50)
self.root.bind('<Left>', self.ship.rotateLeft)
self.root.bind('<Right>', self.ship.rotateRight)
self.root.mainloop()
def gameWindow(self):
self.frame = Frame(self.root)
self.frame.pack(fill=BOTH, expand=YES)
self.canvas = Canvas(self.frame,width=self.gameWidth, height=self.gameHeight, bg="black", takefocus=1)
self.canvas.pack(fill=BOTH, expand=YES)
asteroids = Game(600,600)
सहायता के लिए बहुत बहुत धन्यवाद। आप एक विद्वान और सज्जन हैं। यही वह है जिसकी तलाश में मैं हूं। – Sam
आपका स्वागत है। – JAB