我正在尝试制作一个由 Python Shell GUI 控制的东西。
唯一的问题是,我不知道如何制作整个输入/输出的东西。我只想能够输入一个输入,执行 python 命令并给出 python 命令的输出。我知道 IDLE 是在 Tkinter 中制作的,所以它使用小部件?
它实际上只是一个“输入,显示输出”的东西。
我试过搜索它,但似乎大多数结果都与命令行有关,这不是我要找的。另一个与我完全一样的问题也不是我的想法。我还尝试查找 IDLE 的源代码,但找不到我要找的东西。
我找到了一些适用于 Linux 的答案,但我使用的是 Windows 10 ...
我需要在 Tkinter 中使用“shell”,因为在屏幕的一侧将是连接到命令输出的其他东西。
有谁知道用于制作非常简单的 Python shell 的小部件吗?
我正在制作一个游戏而对手应该向玩家射击子弹.
我希望子弹朝着子弹射击时玩家的方向前进(玩家可以移动,但是子弹朝着一个恒定的方向移动.)
但子弹只是在对手上闪烁.
我使用pygame的Vector2来控制子弹的移动.
这是一个子弹拼写示例:
bulletspell = Spell(
pygame.image.load("Sprites/lightblue-glowey.png"),
((0, pygame.Vector2(-0.5, 1) * 4), #these vectors show the bullet shooting pattern
(0, pygame.Vector2(0, 1) * 4),
(0, pygame.Vector2(0.5, 1) * 4)),
10, 8, 340
)
Run Code Online (Sandbox Code Playgroud)
我试过的矢量是 (player.image.get_rect(topleft=(player.rect.x, player.rect.y)).x, 1)
我不是在寻找要修改的整个代码,我有太多的修订和我工作的代码,我只需要帮助搞清楚向量.
这是代码(仅供参考):
import pygame
class Player(pygame.sprite.Sprite):
sprite = pygame.image.load("Sprites/player.png")
def __init__(self, *groups):
super().__init__(*groups)
self.image = Player.sprite
self.rect = self.image.get_rect(topleft=(445, 550))
self.pos = pygame.Vector2(self.rect.topleft)
def update(self):
key = pygame.key.get_pressed()
dist = 3
if key[pygame.K_DOWN]:
self.rect.y += dist
elif key[pygame.K_UP]:
self.rect.y -= dist …Run Code Online (Sandbox Code Playgroud) 由于新的故事视频游戏项目,我一直在寻找一种方法来尝试在Pygame中显示视频。我终于偶然发现了Moviepy,它运作正常……除了视频显示每秒仅显示24帧之一,并且显示的窗口大于屏幕显示。(在配备11英寸(我认为)屏幕的Windows 10笔记本电脑上)
声音还可以,但是视频也播放太快,因此不同步。
我已经尝试过在文档中说过的resize函数,但是它没有任何效果。
而且我找不到与帧率有关的内容。
因此,我需要一种使窗口更小并校正帧速率的方法。
这是我使用的代码:
from moviepy.editor import VideoFileClip
from moviepy.video.fx.resize import resize
import pygame
pygame.display.set_caption('My video!')
clip = VideoFileClip('Eleeza Crafter And The Cloud Colours Trailer.mp4')
clip.fx(resize, width=240)
clip.preview(fps=24)
pygame.quit()
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。谢谢 :)
EDIT: I tested a different video at the same framerate and it works perfectly? Then again it was just a simple line flying around the screen.
我有一个射击子弹的精灵.有时候子弹也会从看不见的射手身上射出来.
从对手到射手中段程序的转换工作,但是当我希望子弹以某种方式射击时,每次射击之间的延迟,子弹似乎变成一条线(图像中的紫色物体是子弹):

当对手射击时,机械师会工作,但当它是无形的方形时,机械师才会工作.
为什么会这样?我需要修复一个小错误吗?
这是我的代码:
import pygame
import time
import itertools
import os
pygame.init()
SCREENWIDTH = 1000
SCREENHEIGHT = 650
screen = pygame.display.set_mode([SCREENWIDTH, SCREENHEIGHT])
screen.fill((255, 123, 67))
pygame.draw.rect(screen, (230, 179, 204), (0, 50, 1000, 650), 0)
background = screen.copy()
clock = pygame.time.Clock()
stageon = True
class Spell:
def __init__(self, bullet, pattern, speed, loop, tick_delay):
self.bullet = bullet
self.pattern = pattern
self.speed = speed
self.loop = loop
self.tick_delay = tick_delay
class Shooter(pygame.sprite.Sprite):
def __init__(self, spell, pos, *groups):
super().__init__(*groups)
self.image = pygame.image.load("Sprites/transparent.jpg") …Run Code Online (Sandbox Code Playgroud)