最近我決定開始我的第三個pygame遊戲。在那場比賽中,玩家應該從屏幕底部的大炮向飛機射擊,通過用鼠標指向飛機。將代碼放在更多模塊(more.py文件)中以便於理解。我開始嘗試讓cannon barel旋轉鼠標當前位置。因此,我們繼續。Pygame.transform.rotate比例是旋轉
main.py
import pygame,sys
import screen
import constants
from pygame.locals import *
from loop import *
screen.screen = pygame.display.set_mode((800,600))
main_loop()
constatns.py
import pygame
pygame.init()
scr = pygame.display.list_modes()
resolution = (scr[0][0],scr[0][1])
angle = 0
barell = pygame.image.load("barell.png")
tux = pygame.image.load("tux.png")
tux2 = pygame.transform.scale(tux,(100,100))
loop.py
import pygame,event
import screen
import constants
import math
import random
import groups
from faster_barell import *
faster_barell = faster_barell()
faster_barell.add_to_group()
def main_loop():
while True:
mx,my = pygame.mouse.get_pos()
event.Event()
screen.screen.fill([0,0,0])
groups.barell_group.draw(screen.screen)
for t in groups.barell_group:
dx = mx - t.rect.x
dy = my - t.rect.y
angle = math.atan2(dx,dy)
angle2 = math.degrees(angle)
constants.angle = angle2
t.image = pygame.transform.rotate(constants.barell,angle2)
pygame.display.flip()
screen.py
import pygame
import constants
pygame.init()
screen = None
event.py
import pygame,sys
from pygame.locals import *
class Event(object):
def __init__(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
faster_barell.py
import pygame
import constants
import groups
class faster_barell(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = constants.barell
self.rect = self.image.get_rect()
self.rect.x = 750
self.rect.y = 550
def add_to_group(self):
groups.barell_group.add(self)
groups.py
import pygame
barell_group = pygame.sprite.Group()
現在不是旋轉pygame的(我真的不能解釋如何)縮放barell圖像。 barell圖像只是一個空白(白色)10x30圖像)。現在這裏來更奇怪的部分。當在t.image = pygame.transform.rotate(constants.barell,angle2)我改變constants.barell爲constants.tux2(這只是一個禮服圖片(僅用於測試它不會在遊戲中),一切正常!這裏是我與http://upload.wikimedia.org/wikipedia/commons/3/3e/Tux-G2.png工作的tux圖片。我試圖通過將math.atan2中的dx和dy更改爲其他內容(dy,dx,-dy,dx,-dx,-dy等)來解決問題 ,請幫助我試圖解決這個約6小時(我從來不問關於計算器,除非我真的不能做任何事情來得到的代碼工作)
旋轉縮放圖像以適合,儘量 –
之前裁剪圖像@BartlomiejLewandowski我不知道種植轉尺度圖像fit.Nice的想法,但我還在學習pygame的和我沒有在文檔中找到關於裁剪的內容。那麼請你告訴我怎麼做,在一些細節上?請 –
另請參閱:http://www.pygame.org/wiki/RotateCenter?parent=CookBook – ninMonkey