使用Turtle:Hopper用Python编写交互式游戏

2024-04-28 22:04:25 发布

您现在位置:Python中文网/ 问答频道 /正文

Hopper,我想知道如何编写游戏的某一部分。在这个使用import turtle的交互式python游戏中,我想创建一个用户可以控制的turtle。我想让这只乌龟在使用空格键时跳跃,以便用户能够跳过应该从屏幕右侧一直朝玩家乌龟移动的对象

我的问题是,当我撞到空格键并摔倒在地上时,如何让一只圆形的乌龟跳跃,这样当下一个障碍物出现时,它可以再次跳跃? 我如何为障碍物(又名矩形海龟)创建一个代码,使其向玩家的圆圈海龟移动,以便玩家的圆圈海龟跳过?威尔,非常感谢你的时间和帮助

如果可能的话,我想知道如果玩家没有成功地用圆形海龟跳过其中一个矩形障碍海龟,如何显示“游戏结束”信息

再次感谢你


Tags: 对象代码用户import游戏屏幕玩家圆形
1条回答
网友
1楼 · 发布于 2024-04-28 22:04:25

这是软件工程中的一个常见问题。但是让我们后退一步。你怎么做早餐?那么什么是早餐呢?让我们说“煮鸡蛋”。鸡蛋是什么?“煮沸”是什么?什么蛋?它来自哪里?它有多大?是Emu egg吗?你煮多长时间?等等等等等等等等等等

像“如何制造Hopper”这样的大问题实际上是一大堆小问题。你如何在屏幕上画画,如何阅读按键,如何移动海龟,如何在海龟跳跃时发出“跳跃”的声音

所以。从一开始就开始,忽略你不能做的事情的“噪音”,专注于你能做的事情。最简单的起点是什么?写下一些笔记,画一些屏幕布局。想想这一切将如何运作。现在的第一步是什么

下面是一些打开窗口并读取键盘的简单代码。使用此代码,并根据您的设计调整它以处理用户输入

import pygame

# Window size
WINDOW_WIDTH    = 800
WINDOW_HEIGHT   = 400
WINDOW_SURFACE  = pygame.HWSURFACE|pygame.DOUBLEBUF
WINDOW_MAX_FPS  = 60

BACK_COLOUR = (   3,   5,  54)

### initialisation
pygame.init()
pygame.mixer.init()
window = pygame.display.set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT ), WINDOW_SURFACE )
pygame.display.set_caption("Hopper")


### Main Loop
clock = pygame.time.Clock()
done = False
while not done:

    # Handle Window & Keyboard Events
    for event in pygame.event.get():
        if ( event.type == pygame.QUIT ):
            done = True
        elif ( event.type == pygame.KEYDOWN ):
            if ( event.key == pygame.K_SPACE ):
                print( 'Space-key pushed' )
            elif ( event.key == pygame.K_j ):
                print( 'j pushed' )

    # Handle Key-states
    keys = pygame.key.get_pressed()
    if ( keys[pygame.K_UP] ):
        print("up")
    elif ( keys[pygame.K_UP] ):
        print("down")

    # Update the window
    window.fill( BACK_COLOUR )
    pygame.display.flip()

    clock.tick( WINDOW_MAX_FPS )
    
pygame.quit()

下一步从简单的图形开始——在这个阶段,你不需要一个由图形艺术家绘制的乌龟头像,只需要一个盒子。绘制完此图形后,请使其移动,然后根据用户输入使其移动。继续削减计划,但朝着你的设计前进

这里的很多初学者在尝试实现一个漂亮的50帧播放器行走动画作为第一步时会陷入困境,当这不容易(或不完美)时,他们会迷失方向,幻想破灭。保持简单,真正完成你的项目

相关问题 更多 >