我有这个"确切"的问题:
我有一个玩家和敌人,我正在用14 API进行编译.问题是:从14 API开始,默认情况下启用硬件加速,并且所有绘图方法都不支持它(例如,setShadowLayer(),我想要使用的那个).因此,解决方案很简单,就像上面主题中介绍的那样.问题是:他使用View,我使用SurfaceView来获得更好的游戏性能.我的Surface View声明如下:
public class Screen extends SurfaceView implements Runnable { // Code }
Run Code Online (Sandbox Code Playgroud)
所以,我刚刚添加到构造函数中:
public Screen(Context context) {
super(context);
holder = getHolder();
setLayerType(View.LAYER_TYPE_SOFTWARE, null); // Here.
}
Run Code Online (Sandbox Code Playgroud)
要在我的SurfaceView上禁用硬件加速,以使我的阴影看起来不显眼,结果:整个SurfaceView停止工作.我无法显示发生了什么,但是当我禁用硬件加速时它只是没有绘制任何东西.我对此非常悲观,因为看起来SurfaceView本身依赖于硬件加速,但是当插入Canvas时,Canvas不能正常运行阴影.
所以,我已经按照这个问题来播放Music21的声音了,这里是代码:
from music21 import *
import random
def main():
# Set up a detuned piano
# (where each key has a random
# but consistent detuning from 30 cents flat to sharp)
# and play a Bach Chorale on it in real time.
keyDetune = []
for i in range(0, 127):
keyDetune.append(random.randint(-30, 30))
b = corpus.parse('bach/bwv66.6')
for n in b.flat.notes:
n.microtone = keyDetune[n.midi]
sp = midi.realtime.StreamPlayer(b)
sp.play()
return 0
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
这是追溯:
Traceback …Run Code Online (Sandbox Code Playgroud) if __name__ == '__main__':
app = App()
game_area = None
labels = [pyglet.text.Label("0"*8,
font_name = "Times New Roman",
font_size=18,
color = (255, 0, 0, 255),
x = app.width // 2,
y = app.height // 2 - n,
anchor_x = "center",
anchor_y = "center") for n in range(0, 100, 18)]
@app.event
def on_draw():
app.clear()
[label.draw() for label in labels]
pyglet.graphics.draw(4, pyglet.gl.GL_LINES,
("v2f", (0, 0, 0, app.height, app.width / 2, app.height, app.width / 2, 0))
)
pyglet.app.run()
Run Code Online (Sandbox Code Playgroud)
我的这个例子给了我这个:
我画了一个矩形(4个线段),但它们太薄了.如何更改每条线的粗细?
我知道存在这个问题,但它们不仅不起作用,而且也不完全是我想要的。我正在开发一款赛车游戏,想要动态加载文件夹中的所有赛道(它们存储为 .py 而不是 .json)。我不想知道曲目的名称,因为用户可以随意修改/添加它们。我只想导入他们的数据。因此,例如:
>tracks
>>track0.py
>>track1.py
>>track2.py
>>track3.py
>>track4.py
Run Code Online (Sandbox Code Playgroud)
在每个轨道中,我都有这样的数据:
track_ground_data = [
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1],
[1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1], …Run Code Online (Sandbox Code Playgroud) [编辑]我已经在那里发布了解决方案.[/编辑]
我发现了两个相关的问题:
但我想要具体.如何?
while not done:
for e in event.get():
if e.type == KEYDOWN:
keys = key.get_pressed()
if e.type == QUIT or keys[K_ESCAPE]:
done = True
if keys[K_DOWN]:
print "DOWN"
Run Code Online (Sandbox Code Playgroud)
当我按向下箭头时,它会打印,但它只打印一次.如果我想再打印一次,我需要再次按它.
如果我使用while关键字,
while keys[K_DOWN]:
print "DOWN"
Run Code Online (Sandbox Code Playgroud)
由于一些不明原因,我得到了一个无限循环.
这种合理的替代方案也是无用的:
if ((e.type == KEYDOWN) and keys[K_DOWN]):
print "DOWN"
Run Code Online (Sandbox Code Playgroud)
还有另一个以某种方式清理事件,你可以使用while:
while not done:
for e in event.get():
if e.type == KEYDOWN:
keys = key.get_pressed()
if e.type == QUIT or keys[K_ESCAPE]:
done = True
while keys[K_DOWN]:
print "DOWN"
event.get()
keys …Run Code Online (Sandbox Code Playgroud) 我在 Windows 7 中使用 tkinter 和 Python 3.4。
我以非绝对方式定位(我没有使用位置,我使用网格),因此,当我自动调整窗口大小时,小部件应该缩放。然而,这并没有发生,而且我没有抓住这一点。这是我的代码:
import tkinter as tk
class App(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.config()
self.grid()
self.create_widgets()
def config(self):
self.master.title("Pykipedia Explorer")
def create_widgets(self):
self.search_label = tk.Label(self, text="Search: ")
self.search_label.grid(row=0, column=0, sticky=tk.N+tk.SW)
self.search_entry = tk.Entry(self)
self.search_entry.grid(row=0, column=0, padx=60, sticky=tk.N+tk.SW)
self.search_button = tk.Button(self, text="Explore!")
self.search_button.grid(row=0, column=0, padx=232, sticky=tk.SW)
self.content_area = tk.Text(self)
self.content_area.grid(row=1, column=0)
self.content_scroll_bar = tk.Scrollbar(self, command=self.content_area.yview)
self.content_scroll_bar.grid(row=1, column=1, sticky=tk.NW+tk.S+tk.W)
self.content_area["yscrollcommand"] = self.content_scroll_bar.set
self.quit_button = tk.Button(self, text="Quit", command=self.quit)
self.quit_button.grid(row=2, column=0, sticky=tk.SW)
def main():
app = App() …Run Code Online (Sandbox Code Playgroud) 这是我的匿名函数:
<td><?=call_user_func(function($x) { if ($x == 1) { echo $produto->retornaMedida($dadosProdutos[$t]->medida_id); } else if ($x == 2) { echo "N/A"; } }, $dadosProdutos[$t]->produto_id)?></td>
Run Code Online (Sandbox Code Playgroud)
如果我不在条件范围内使用“超出范围”的内容,它会很好地工作,如下所示:
<td><?=call_user_func(function($x) { if ($x == 1) { echo "Whatever"; } else if ($x == 2) { echo "N/A"; } }, $dadosProdutos[$t]->produto_id)?></td>
Run Code Online (Sandbox Code Playgroud)
但是,$dadosProdutos例如,当我使用 时,我得到:
[24-Dec-2015 03:47:58 America/Sao_Paulo] PHP Notice: Undefined variable: dadosProdutos in G:\Insanity\Web\xampp\htdocs\sisconbr-old\site\modulos\pedido\minhas-cotacoes.php on line 269
Run Code Online (Sandbox Code Playgroud)
当在匿名函数之外使用时, $dadosProdutos 不是“未定义”:
<td><?=$produto->retornaMedida($dadosProdutos[$t]->medida_id)?></td>
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我将外部变量作为参数传递给匿名函数时,我没有任何问题。我认为这就是他们在 C++ 的 lambda 上“捕获超出范围的变量”的意思。
我是Lua编程语言的新手,我找不到列出给定表中定义的所有现有函数的方法.我已经检查了调试表的文档,并且可以仅获取函数的详细信息,而不是整个表的详细信息.
是否有类似Lua中Python解释器的dir()函数?是否可以列出表的所有方法/功能?
假设我们有以下结构:
outer_module.py|
|subfolder|
|__init__.py
|inner_module.py
|foo.py
Run Code Online (Sandbox Code Playgroud)
在outer_module.py我们会有:
from subfolder.inner_module import X
Run Code Online (Sandbox Code Playgroud)
在inner_module.py我们会有:
from foo import Y
Run Code Online (Sandbox Code Playgroud)
然后我就开始ModuleNotFoundError: No module named 'foo'运行outer_module.py. 如何导入这个导入子模块的子模块而不出现 ModuleNotFoundError?
这是我的代码:
\n\n tabbedPane.addKeyListener(new java.awt.event.KeyAdapter() {\n public void keyPressed(java.awt.event.KeyEvent evt) {\n\n CheckShortcut controlShortcut = (key) -> {\n return (evt.getKeyCode() == key) && ((evt.getModifiers() & KeyEvent.CTRL_MASK) != 0);\n };\n\n CheckShortcut controlShiftShortcut = (key) -> {\n return (evt.getKeyCode() == key) && ((evt.getModifiers() & KeyEvent.CTRL_MASK & KeyEvent.SHIFT_MASK) != 0);\n }; // Does not work <<<<<\n\n if (controlShortcut.f(KeyEvent.VK_N)) {\n createNewFile();\n } else if (controlShortcut.f(KeyEvent.VK_O)) {\n openFile();\n } else if (controlShortcut.f(KeyEvent.VK_S)) {\n save();\n } else if (controlShiftShortcut.f(KeyEvent.VK_S)) {\n saveAs();\n } else if (controlShortcut.f(KeyEvent.VK_Q)) {\n System.exit(0);\n } …Run Code Online (Sandbox Code Playgroud)