我正在学习python,而我正在尝试编写一个蛇游戏。 我是一个绝对的初学者,python是我的第一个编程语言,这是我第一次尝试用OOP做事。
我知道已有类似问题的答案,但我对OOP概念的理解太少,无法解决我的问题。 我需要帮助解决我的特定问题和代码。
<ion-tab icon = "ion-ios-medkit" title = "tab1" ui-sref = "tabs.tab1">
<ion-nav-view name = "tab-tab1"> </ ion-nav-view>
</ ion-tab>
<ion-tab icon = "ion-clipboard" title = "tab2" ui-sref = "tabs.tab2">
<ion-nav-view name = "tab-tab2"> </ ion-nav-view>
</ ion-tab>
<ion-tab icon = "ion-clipboard" title = "tab3" ui-sref = "tabs.tab3">
<ion-nav-view name = "tab-tab3"> </ ion-nav-view>
</ ion-tab>
当我运行代码时,矩形会拉伸&#39;按键方向我按下几秒钟后出现大量错误,程序停止。
为了让它发挥作用,我需要更改什么?
答案 0 :(得分:0)
这可能会让你开始。
import pygame
WHITE = (255,255,255)
class init_window(object):
def __init__(self, width, height):
self.width = width
self.height = height
self.gameDisplay = pygame.display.set_mode((self.width, self.height))
pygame.display.set_caption('Snake')
def draw_snake(self, startx, starty, width, height):
pygame.draw.rect(self.gameDisplay, WHITE, [startx, starty, width, height])
pygame.display.update()
init_window.move_snake(self, startx, starty, (width, height))
def move_snake(self, x, y, rectsize):
FPS = 60
clock = pygame.time.Clock()
rectheight, rectwidth = rectsize
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
x_change = 0
y_change = 0
if event.key == pygame.K_LEFT:
x_change = -5
if event.key == pygame.K_RIGHT:
x_change = 5
if event.key == pygame.K_UP:
y_change = -5
if event.key == pygame.K_DOWN:
y_change = 5
x += x_change
y += y_change
self.gameDisplay.fill((0,0,0))
pygame.draw.rect(self.gameDisplay, WHITE, [x, y, rectheight, rectwidth])
pygame.display.update()
clock.tick(FPS)
if __name__ == '__main__':
width, height = 800, 600
pygame.init()
window = init_window(width, height)
window.draw_snake(width//2, height//2, 50,50)
我刚拿出导致退出的递归。我希望这能实现您的目标。
另请注意,有必要在每次抽奖self.gameDisplay.fill
之前清除屏幕,否则矩形会在屏幕周围留下痕迹。