使用pygame在Python中进行游戏编码
问题描述:
如何编写代码以便使用pygame在python中通过鼠标移动来控制图像?使用pygame在Python中进行游戏编码
如果能够帮助编写代码,我将不胜感激,因为我完全不知道如何去做。
我已经尝试这样的:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygame
import random
pygame.init()
size=[800,600]
screen=pygame.display.set_mode(size)
pygame.display.set_caption("Sub Dice")
background_position=[0,0]
background_image=pygame.image.load('C:\Users\SHIVANGI\Desktop\shivangi project\program\star.png').convert()
card=pygame.image.load('C:\Users\SHIVANGI\Desktop\shivangi project\program\lappy.png').convert_alpha()
card=pygame.transform.smoothscale(card,(130,182))
closeDeckShirt=pygame.image.load('C:\Users\SHIVANGI\Desktop\shivangi project\program\star.png').convert_alpha()
SETFPS=30
zx=0
zy=0
done=False
clock=pygame.time.Clock()
while done==False:
clock.tick(SETFPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
if event.type == pygame.MOUSEBUTTONDOWN:
print('a')
screen.blit(background_image, background_position)
screen.blit(card,[zx,zy])
zx=zx+2
zy=zy+2
pygame.display.flip()
pygame.quit()
然而,当我移动鼠标的运动,而不考虑的仅限于一个方向。我希望图像向前移动,并通过鼠标的运动控制横向运动。
此外,我的目标是创建一个像在orisinal上的水上机翼一样的游戏。
答
你非常接近做这项工作。 我做了一些小的修改。
所以,你的程序有2个问题。首先,无论事件如何,您的程序都会在每一个pygame.event
上移动图像 - 您会通过点击一个键,单击鼠标等来看到这一点。第二个问题是您要以固定的方向移动图像。
唯一令我改变是你while
循环:
while done==False:
clock.tick(SETFPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
if event.type == pygame.MOUSEBUTTONDOWN:
print('a')
if event.type == pygame.MOUSEMOTION: # We only want to move the image when the mouse is moved.
mouse_position = pygame.mouse.get_pos() # Where is the mouse at?
screen.blit(background_image, background_position)
screen.blit(card,[zx,zy])
zx=mouse_position[0] # mouse_position is in the form [x,y], we only want the x part
zy=mouse_position[1]
pygame.display.flip()
正如你所看到的,Pygame的具有mouse.get_pos()
功能,实际上在屏幕上得到您的鼠标的位置。这只是一个(x,y)坐标。
+0
thanx很多。这是很多的帮助。 – nerd0711 2014-10-14 18:16:54
与Pygame无关的一件事 - 字符串内的文件路径应该使用双''s或使用正斜杠('/'),否则它们可能会被破坏 - 因为'\'是Python字符串内的scape字符。 – jsbueno 2014-10-09 17:16:16