python arcade库_python游戏库:Arcade教程(4)

动次打次+金币https://www.zhihu.com/video/1237694139854061568步骤6-添加金币和音效下面的代码添加了我们可以收集的硬币。它还添加了一个声音,当用户点击硬币,或按下跳转按钮时播放。我们用arcade.check_for_collision_with_list函数检查玩家是否接触金币。它的使用方式为玩家精灵和带有金币的列表作为传入参数。函数返回与玩家精灵接...
摘要由CSDN通过智能技术生成

动次打次+金币https://www.zhihu.com/video/1237694139854061568

步骤6-添加金币和音效

下面的代码添加了我们可以收集的硬币。它还添加了一个声音,当用户点击硬币,或按下跳转按钮时播放。

我们用arcade.check_for_collision_with_list函数检查玩家是否接触金币。它的使用方式为玩家精灵和带有金币的列表作为传入参数。函数返回与玩家精灵接触的金币列表。如果没有硬币接触,则列表为空。

Sprite.remove_from_sprite_lists函数将从所有列表中删除该精灵,并有效地执行游戏。

请注意,图像周围的任何透明“空白”都将被视为hitbox。您可以在图形编辑器中修剪空间,或者在第二部分中,我们将向您展示如何指定hitbox。

"""Platformer Game06_coins_and_sound.py - 添加金币和音效"""

import arcade

# 定义常量,屏幕的宽、高和标题

SCREEN_WIDTH = 1000

SCREEN_HEIGHT = 650

SCREEN_TITLE = "Platformer"

# 用于缩放精灵原始大小的常数

CHARACTER_SCALING = 1

TILE_SCALING = 0.5

COIN_SCALING = 0.5

# 玩家的移动速度、重力以及跳跃速度,以每帧像素为单位

PLAYER_MOVEMENT_SPEED = 5

GRAVITY = 1

PLAYER_JUMP_SPEED = 15

# 在人物和游戏边框之间保留多少像素作为最小边距

# 就是人物不能太靠近边框,太近就该移动摄像头了

LEFT_VIEWPORT_MARGIN = 150

RIGHT_VIEWPORT_MARGIN = 150

BOTTOM_VIEWPORT_MARGIN = 50

TOP_VIEWPORT_MARGIN = 100

class MyGame(arcade.Window):

"""封装成的主类"""

def __init__(self):

# 初始化父类并设置窗口

super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)

# 这些是跟踪我们精灵的“列表”。每个精灵应该

# 被放入列表.

self.coin_list = None

self.wall_list = None

self.player_list = None

# 保存玩家精灵的单独变量

self.player_sprite = None

# 我们的物理引擎

self.physics_engine = None

# 用来跟踪我们的滚动

self.view_bottom = 0

self.view_left = 0

# 加载音效

self.collect_coin_sound = arcade.load_sound("sounds/coin1.wav")

self.jump_sound = arcade.load_sound("sounds/jump1.wav")

arcade.set_background_color(arcade.csscolor.CORNFLOWER_BLUE)

def setup(self):

""" 在这里设置游戏。调用此函数重新启动游戏. """

# 用来跟踪我们的滚动

self.view_bottom = 0

self.view_left = 0

# 创建精灵列表

self.player_list = arcade.SpriteList()

self.wall_list = arcade.SpriteList()

self.coin_list = arcade.SpriteList()

# 设置玩家,注意将其放置在指定坐标处.

self.player_sprite = arcade.Sprite("images/player_1/player_stand.png", CHARACTER_SCALING)

self.player_sprite.center_x = 64

self.player_sprite.center_y = 96

self.player_list.append(self.player_sprite)

# 创建背景

# 这显示了如何使用循环水平放置多个精灵

for x in range(0, 1250, 64):

wall = arcade.Sprite("images/tiles/grassMid.png", TILE_SCALING)

wall.center_x = x

wall.center_y = 32

self.wall_list.a

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值