我正在 MacOS BigSur 上使用 pyinstaller 构建游戏。它构建正确,但失败并出现“libpython3.9.dylib”“找不到图像”错误(下面是完整错误)
pyinstaller 构建应用程序后,我运行它:dist/gralli_quest.app/Contents/MacOS/gralli_quest
这是启用调试后的输出:
[22699] PyInstaller Bootloader 3.x
[22699] LOADER: executable is /Users/bernard/projects/gralli_quest/dist/gralli_quest.app/Contents/MacOS/gralli_quest
[22699] LOADER: homepath is /Users/bernard/projects/gralli_quest/dist/gralli_quest.app/Contents/MacOS
[22699] LOADER: _MEIPASS2 is NULL
[22699] LOADER: archivename is /Users/bernard/projects/gralli_quest/dist/gralli_quest.app/Contents/MacOS/gralli_quest
[22699] LOADER: Cookie found at offset 0x17CD99D2
[22699] LOADER: Extracting binaries
[22699] LOADER: Executing self as child
[22699] LOADER: set _MEIPASS2 to /var/folders/m7/322j4l357l3chdczl5j75phw0000gn/T/_MEIlAeO5C
[22699] LOADER: Registering signal handlers
[22704] PyInstaller Bootloader 3.x
[22704] LOADER: executable is /Users/bernard/projects/gralli_quest/dist/gralli_quest.app/Contents/MacOS/gralli_quest
[22704] LOADER: homepath is /Users/bernard/projects/gralli_quest/dist/gralli_quest.app/Contents/MacOS
[22704] LOADER: _MEIPASS2 is …
Run Code Online (Sandbox Code Playgroud) 我有一个圆圈,上面有一个盒子:
圆圈是一个简单的电机。我希望盒子直接位于圆圈上方。我尝试过不同的约束,但大多数尝试都会导致盒子翻到一边。
我最成功的尝试是将盒子的 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) SQLite对非 ASCII 符号使用 LIKE有限制。ICU扩展解决了这个问题。如何在 C# 中编写代码以创建以下不区分大小写的语句:
SELECT * FROM Persons WHERE surname LIKE '%??????%'
Run Code Online (Sandbox Code Playgroud)
PS 如果在 C# LIKE 语句中使用非 ASCII 符号还有其他解决方案,请提供。
我正在尝试使用 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这部分Python程序使用了SymPy库。因此,它在sympy.core.add.Add类中生成一个值,该值无法用于程序的其他部分。
from sympy import *
x = symbols('x')
y = 1 - (0.1 * coeff1) / (x + 2) - sin(x) * (2 * x + coeff1)
yprime = y.diff(x)
Run Code Online (Sandbox Code Playgroud)
如何将sympy.core.add.Add class 转换为普通float或int以便在进一步计算中使用变量yprime ?
给出了一个字典,其中键是国家,值是该国家的城市列表。在输入处,给出了随机城市列表。在输出中,给定城市的列表必须根据国家/地区分为不同的列表。
示例: 输入:
CountryDict = {
"Spain" : ["Madrid", "Barcelona"],
"Italy" : ["Rome", "Venice", "Milan"],
"Germany": ["Munich"],
"UK": ["London", "Liverpool"]
}
CityList = ["Venice", "Liverpool", "Madrid", "Barcelona"]
Run Code Online (Sandbox Code Playgroud)
输出:
Italy:
["Venice"]
UK:
["Liverpool"]
Spain:
["Madrid", "Barcelona"]
Run Code Online (Sandbox Code Playgroud)
我试过这个:
for value in CountryDict.values():
for element in value:
if element in CityList:
print("Searched element: ", element)
keyList = CountryDict.keys()
valList = CountryDict.values()
for searchedList in valList:
for stuff in searchedList:
if stuff == element:
pos = valList.index(searchedList)
print("Key value: ", keyList[pos])
Run Code Online (Sandbox Code Playgroud)