标签: arcade

如何使用 Pymunk 将一个物体保持在另一个物体之上

我有一个圆圈,上面有一个盒子:

顶部有方框的圆圈

圆圈是一个简单的电机。我希望盒子直接位于圆圈上方。我尝试过不同的约束,但大多数尝试都会导致盒子翻到一边。

我最成功的尝试是将盒子的 body.moment 设置为 pymunk.inf,并将盒子固定到圆圈上。这已经很接近了,但是当我希望它直接位于圆的中心上方时,盒子仍然会从一侧移动到另一侧。我可以在那里手动设置它,但似乎我应该能够在某种限制下这样做。

有任何想法吗?下面是一些使用 Pymunk 和 Arcade 库的示例代码。

import arcade
import pymunk
import math

SCREEN_WIDTH = 1200
SCREEN_HEIGHT = 800
BOX_SIZE = 45

class MyApplication(arcade.Window):
    """ Main application class. """

    def __init__(self, width, height):
        super().__init__(width, height)
        arcade.set_background_color(arcade.color.DARK_SLATE_GRAY)

        # -- Pymunk space
        self.space = pymunk.Space()
        self.space.gravity = (0.0, -900.0)

        # Create the floor
        body = pymunk.Body(body_type=pymunk.Body.STATIC)
        self.floor = pymunk.Segment(body, [0, 10], [SCREEN_WIDTH, 10], 0.0)
        self.floor.friction = 10
        self.space.add(self.floor)

        # Create the circle
        player_x = 300
        player_y = 300 …
Run Code Online (Sandbox Code Playgroud)

python pymunk arcade

6
推荐指数
1
解决办法
379
查看次数

在Python中,如何在街机中使用图像制作交互式按钮?

我正在尝试使用 python 在街机中创建一个交互式按钮。我正在使用操作系统导入图像,想知道是否可以将单击功能转换为图像。我希望通过点击图片打开一个新窗口。我知道 tkinter 主要用于此目的,但我正在创建一个游戏并且不想使用 tkinter。我也不喜欢使用 PyGame。我也不知道如何在从操作系统导入的图像上应用边界。

我在 arcade.academy 上查找了有关如何在街机中使用按钮的教程,但它需要使用街机形状手动绘制形状和输入文本。我还尝试了一个教程,将坐标输出到 python shell,同时单击画布上的随机点,尝试将其合并到图像中。下面的示例代码尚未完成,但我已经尝试这样做。

import arcade
import os
SCREEN_WIDTH = 700
SCREEN_HEIGHT = 700
class MyGame(arcade.Window):
    def __init__(self):
        super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "sprites")
        file_path = os.path.dirname(os.path.abspath(__file__))
        os.chdir(file_path)
        self.player_list = None
        self.player_sprite = None
        self.set_mouse_visible(True)
        self.pressed = (False)
        arcade.set_background_color(arcade.color.AMAZON)
    def Button(self, center_x, center_y, action_function):
        self.player_list = arcade.SpriteList()
        self.player_sprite = arcade.Sprite("osss.png", 0.5)
        self.player_sprite.center_x = center_x
        center_x = 50
        self.player_sprite.center_y = center_y
        center_y = 50
        self.player_list.append(self.player_sprite)
        self.action_function = action_function

    def on_draw(self):
        arcade.start_render()
        self.player_list.draw()
    def on_mouse_motion(self, x, y, …
Run Code Online (Sandbox Code Playgroud)

python module button arcade

5
推荐指数
1
解决办法
1148
查看次数

delta_time 在 python arcade 上如何工作?

我\xe2\x80\x99m正在阅读Python Arcade上的教程,并且想知道一个函数如何/为什么工作。

\n\n

有一个函数叫on_draw(delta_time)

\n\n

我查看了街机的代码,但无法弄清楚该库如何知道保持时钟运行。有人可以帮助我理解它是如何工作的以及为什么工作吗?

\n\n

一个例子在这里:http ://arcade.academy/examples/bouncing_rectangle.html#bouncing-rectangle

\n

python timedelta game-loop 2d-games arcade

4
推荐指数
1
解决办法
2137
查看次数

标签 统计

arcade ×3

python ×3

2d-games ×1

button ×1

game-loop ×1

module ×1

pymunk ×1

timedelta ×1