微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用Turtle:Hopper在Python中编写交互式游戏

我想知道如何编码我的游戏的某些部分,Hopper。在这个使用导入乌龟的交互式python游戏中,我想创建一个用户可以控制的乌龟。我希望这只乌龟在使用空格键时能够跳跃,目的是使用户能够跳过那些应该从屏幕右侧一直朝着玩家乌龟移动的物体。

我的问题是,当我撞到空格键并掉回地面时,如何使一个圆形的乌龟跳起来,以便当下一个障碍物出现时它可以再次跳动? 如何为障碍物AKA(矩形乌龟)创建代码,使其朝向玩家的圆龟移动,让玩家的圆龟跳过?非常感谢您的时间和帮助,我们将会投票赞成。

如果可能的话,我很想知道如果玩家未能通过圆龟越过矩形障碍龟之一而失败,该如何显示“ Game Over”消息。

再次感谢您!

解决方法

这是软件工程中的常见问题。但是,让我们退后一步。你怎么做早餐?好吧,早餐是什么-让我们说“煮鸡蛋”。鸡蛋是什么? “煮”是什么?什么样的鸡蛋?它从何而来?它有多大?是Emu egg吗?你煮多久了?等等等等。

诸如“如何制作料斗”之类的大问题实际上是一个很小的小问题。您如何在屏幕上绘画,如何阅读按键,如何移动乌龟,如何在跳跃时发出“ sproinggg”的声音...

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

下面是一些简单的代码,它们可以打开一个窗口并读取键盘。获取此代码,并根据您的设计修改它以处理用户输入。

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帧播放器步行动画时就陷入了困境,并且在不容易(或不完美)时迷失了幻想。保持简单,并真正完成您的项目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。