我有一个圆圈,上面有一个盒子:
圆圈是一个简单的电机。我希望盒子直接位于圆圈上方。我尝试过不同的约束,但大多数尝试都会导致盒子翻到一边。
我最成功的尝试是将盒子的 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 在街机中创建一个交互式按钮。我正在使用操作系统导入图像,想知道是否可以将单击功能转换为图像。我希望通过点击图片打开一个新窗口。我知道 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) 我\xe2\x80\x99m正在阅读Python Arcade上的教程,并且想知道一个函数如何/为什么工作。
\n\n有一个函数叫on_draw(delta_time)
我查看了街机的代码,但无法弄清楚该库如何知道保持时钟运行。有人可以帮助我理解它是如何工作的以及为什么工作吗?
\n\n一个例子在这里:http ://arcade.academy/examples/bouncing_rectangle.html#bouncing-rectangle
\n