- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Tkinter 编写 Python 版本的 Asteroids ( https://en.wikipedia.org/wiki/Asteroids_(video_game) )。
这是让船继续前进的代码段:
def move(self, sx=0, sy=0, ms=2):
try:
self.root.after_cancel(self.m)
except AttributeError:
pass
ms += 1
if ms > 30:
return
self.parent.move(self.ship, sx, sy)
self.m = self.root.after(ms, lambda sx1=sx, sy1=sy, millisec=ms: self.move(sx1, sy1, ms))
这里是按下向上箭头时运行的实际函数:
def avanti(self, event):
self.s = -2.5
x = self.s * math.sin(math.radians(self.angle)) * -1
y = self.s * math.cos(math.radians(self.angle))
self.move(x, y)
当你多次按向上箭头时,代码运行得很好,唯一的问题是,当你按住它时,船移动一次,然后有一个像 0.2 秒长的小中断,然后它开始有规律地前进,直到松开 key 。我认为计算机会阻止你双击,然后,当它发现你确实想要双击时,它会删除这种阻止。
有没有办法从第一次按下后删除这个 block ?
编辑:您实际上可以通过键盘 -> 打字延迟来更改整个计算的打字延迟,但我想要做的是仅删除延迟关于Python程序。
最佳答案
您可以使用<Up>
设置move_up = True
和<KeyRelease-Up>
设置move_up = False
然后你可以使用after
运行将检查 move_up
的函数并移动对象。
工作示例 - 来自其他问题的代码(关于移动平台)
import tkinter as tk
# --- constants ---
DISPLAY_WIDTH = 800
DISPLAY_HEIGHT = 600
CENTER_X = DISPLAY_WIDTH//2
CENTER_Y = DISPLAY_HEIGHT//2
# --- functions ---
# for smooth move of platform
def up_press(event):
global platform_up
platform_up = True
def up_release(event):
global platform_up
platform_up = False
def down_press(event):
global platform_down
platform_down = True
def down_release(event):
global platform_down
platform_down = False
def eventloop():
# move platform
if platform_up:
# move
canvas.move(platform, 0, -20)
# check if not leave canvas
x1, y1, x2, y2 = canvas.coords(platform)
if y1 < 0:
# move back
canvas.move(platform, 0, 0-y1)
if platform_down:
# move
canvas.move(platform, 0, 20)
# check if not leave canvas
x1, y1, x2, y2 = canvas.coords(platform)
if y2 > DISPLAY_HEIGHT:
# move back
canvas.move(platform, 0, -(y2-DISPLAY_HEIGHT))
root.after(25, eventloop)
# --- main ---
# - init -
root = tk.Tk()
canvas = tk.Canvas(root, width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT)
canvas.pack()
# - objects -
platform = canvas.create_rectangle(CENTER_X-15, CENTER_Y-15, CENTER_X+15, CENTER_Y+15, fill="green")
platform_up = False
platform_down = False
root.bind('<Up>', up_press)
root.bind('<KeyRelease-Up>', up_release)
root.bind('<Down>', down_press)
root.bind('<KeyRelease-Down>', down_release)
# - mainloop -
root.after(25, eventloop)
root.mainloop()
关于python - Tkinter:删除键盘双击预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41778896/
我已经能够通过 bean:write 消息中的 filter="true"组合以及我正在使用的标签库中使用 StringEscapeUtils.escapeHtml4(string) 来防止 stru
有什么办法可以防止 magento 中的 xss 攻击?在我的本地主机中,我只是想检查如何防止 xss 攻击,例如我在用户在 magento 中注册时插入脚本,在名称字段中插入整个脚本时我感到震惊我已
我是 Laravel 的新手,我正在学习它。 我们在 laravel 中做了什么来防止 sql 注入(inject)??什么是依赖注入(inject)以及我们如何防止这种情况发生? 提前致谢 最佳答案
最近我被嵌入式系统上的堆溢出困扰了好几次。 这通常是由于写入堆上声明的数组超过了数组的大小,这必须超过其他堆声明的变量,然后导致非常未定义的行为 - 使得根本原因难以追踪。 是否有任何方法可以检测/防
有一个 Node.js 项目可以清理数据,还有一个用于 JavaScript 的 OWASP 库可以处理清理以防止 XSS。 我一直在对这些库进行基准测试,它们非常密集,可能有点矫枉过正,我的应用程序
我的情况有点不同,我正在使用 CKEditor 进行编辑和显示,提交的字符串只会在 CKEditor 中显示,不会显示在其他任何地方。 我试过这个 XSS: alert("XSS")"> 我直接从后端
这个问题已经有答案了: How can I prevent a click on a '#' link from jumping to top of page? (25 个回答) 已关闭 5 年前。
通过对代码进行审查,可以轻松地识别和消除无效代码,但是,对于图像-未使用的图像仍会进入我们的版本控制。是否有任何组织图形内容的干净方法,以便网页和图像文件之间存在直接关联? 在我们当前的项目中,我们使
在我们的项目中,为了防止 XSS,我们添加了过滤器 (HttpServletFilter),它可以简单地转义 Json 中所有出现的“”(包装用户输入),例如: json = json.replace
我使用 Java JNI Gdal 。有一些服务器端应用程序构建在 JNI 绑定(bind)之上。如果 JNI 部分出现错误,整个 JVM 堆栈就会崩溃。 测试 C/C++ 库不包含会导致 JVM s
黑客通过 SQL 注入(inject)并运行虚假查询来攻击我的网站,如何防止他们需要帮助。 是否有任何防火墙可以防止黑客攻击等,或者我应该使用mysql_real_escape_string($_RE
我目前正在处理一个遗留的 ASP 项目,其中安全性现在已成为一个大问题。它不仅是不安全的加密方法(md5),而且我担心 SQL 注入(inject)问题。我还不太擅长注入(inject),而且我只尝试
我有兴趣了解如何在我的 ColdFusion 9 应用程序中防止跨站点请求伪造 (CSRF)。我在网上找到了一些教程,但似乎没有一个是全面的。我发现的最好的是:http://www.mollerus.
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我们的应用程序面临 XSS 攻击的问题。我们通过对 GET 请求使用普通过滤器来防止这种情况发生。 我们正在使用 RESTEasy REST Web 服务调用我们的应用程序。我们的过滤器不会过滤表单
我已经读过带有 2 个参数的 open() 命令容易被注入(inject),而带有 3 个参数的 open() 命令不能被注入(inject)。 说我有一个目录,我的所有文件都有一个公共(public
你好, 我正在尝试使用 CKEditor(一个 javascript WYSIWYG 编辑器)防止输入字段中的 XSS 和不正确的 html。 我应该如何在服务器端过滤这些数据?我比较的两个选项是 P
我刚刚了解了 CSRF 预防的细节。在我们的应用程序中,所有“写入”请求都是使用 XHR 完成的。整个页面实际上并没有提交任何一个表单,一切都是通过 XHR 完成的。 对于这种情况,维基百科建议 Co
据我所知,CSRF 预防似乎侧重于 (1) 使 GET 请求无副作用,以及 (2) 仅使用带有 CSRF token 的 POST 请求来更改状态。但在我看来,这假设攻击者的唯一目标可能是恶意更新受害
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来
我是一名优秀的程序员,十分优秀!