我正在研究Godot Engine和GDScript,并且我在互联网上搜索了有关键盘事件的信息,但我听不懂。Godot中是否有类似的东西on_key_down("keycode")?
我正在运行这个小程序,它以全屏模式将图像加载到屏幕上,但是一旦加载该程序将不会通过任何组合键退出,我最终不得不重置计算机以完成我正在做的任何其他事情。
import pygame
pygame.init()
WIDTH=1366; HEIGHT=768
screen = pygame.display.set_mode((WIDTH, HEIGHT), pygame.FULLSCREEN)
pygame.display.set_caption('Katso')
PENGUIN = pygame.image.load("assets/download.png")
MICKEY = pygame.image.load("assets/mickey.jpg")
ADV = pygame.image.load("assets/adv.jpg")
CAT = pygame.image.load("assets/cat.jpg")
FLV = pygame.image.load("assets/flavours.jpg")
HALL = pygame.image.load("assets/hallway.jpg")
x = 0; # x coordnate of image
y = 0; # y coordinate of image
screen.blit(PENGUIN,(x,y)); pygame.display.update()
running = True
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.QUIT()
if event.type == pygame.KEYDOWN and event.key == pygame.K_1:
screen.blit(MICKEY,(x,y)); pygame.display.update()
if event.type == pygame.KEYDOWN and event.key == pygame.K_2: …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习游戏编程(以及一般的编程),因此我使用 pygame 在 Python 中制作了一个简单的侧滚器。
问题是,当我将角色(一个简单的立方体)向左移动时,它比向右移动时移动得更快,如稍后在控制台中所示。
带有循环的主类(我删掉了其中的一些,因为我认为它没有相关性,但如果需要,我可以发布它):
player.speed = 135
player = Player.Cube([255,0,0],600, screen.get_height()*0.8-screen.get_height()*0.125,screen.get_height()*0.125,screen.get_height()*0.125)
running = True
clock = pygame.time.Clock()
while running:
deltaTime = clock.tick(60) / 1000
screen.blit(background, (0, 0))
screen.blit(player.image,(player.rect.x,player.rect.y))
screen.blit(grass,(0,screen.get_height()-grass.get_height()))
keystate = pygame.key.get_pressed()
if keystate[K_RIGHT]:
player.moveRight(deltaTime)
elif keystate[K_LEFT]:
player.moveLeft(deltaTime)
pygame.display.flip()
Run Code Online (Sandbox Code Playgroud)
立方体类:
class Cube(pygame.sprite.Sprite):
speed = 0
def __init__(self, color, left,top, width, height):
# Call the parent class (Sprite) constructor
pygame.sprite.Sprite.__init__(self)
self.left = left
self.top = top
self.image = pygame.Surface([width,height])
self.image.fill(color)
self.rect = pygame.Rect(left, top, width, height)
def …Run Code Online (Sandbox Code Playgroud) 这是在 pygame. 当我按向左箭头键时,如何翻转图像(假设猪向右看的图像)向左看,并且即使我不按任何键或按向上和向下箭头键。那么,当我按向右箭头键时,如何再次将其切换回向右看,并使其保持这样,即使我不按任何键或按向上和向下箭头键。
我知道我必须使用pygame.transform.flip()。但是,我不知道如何将其放入我的代码中。
这是主要游戏:
import sys
import pygame
from pig import Pig
pygame.init()
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Flying Pig")
blue_sky = 135, 206, 250
brown = 139, 69, 19
pig = Pig(screen)
while True:
# Accept events
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# Keydown events
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
pig.moving_right = True
elif event.key == pygame.K_LEFT:
pig.moving_left = True
elif event.key == pygame.K_UP: …Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一种优雅而有效的输出方法,[1,0]并且[0,1]取决于v可以0或1分别的值.
要清楚
i/o
0 >>> [1,0]
1 >>> [0,1]
Run Code Online (Sandbox Code Playgroud)
非常简单的任务,虽然我想知道最"pythonic"的方法是什么.
你的想法是什么?
我正在尝试在 pygame 中创建一个赛车游戏。我想要这样,当汽车离开赛道时,它会减速。我试图通过使用另一个作为轨道轮廓的精灵来做到这一点,当汽车接触到该精灵时,它会减速。这不起作用,我不知道为什么。有一个更好的方法吗?
Img 是汽车图片
Back 是赛马场
BackHit 是轮廓
我收到此错误代码:
回溯(最近一次调用):文件“C:\Users\Daniella\Desktop\Python\Games\game.py”,第 75 行,在 if pygame.sprite.collide_mask(Img, BackHit): 文件“C:\Users \Daniella\AppData\Roaming\Python\Python36\site-packages\pygame\sprite.py”,第 1470 行,在 collide_mask xoffset = right.rect[0] - left.rect[0] AttributeError: 'pygame.Surface' object没有属性“rect”
这是代码:
import pygame
Width = 800
Height = 600
Black = (0, 0, 0)
White = (255, 255, 255)
Red = (255, 0, 0)
Green = (0, 255, 0)
Blue = (0, 0, 255)
Yellow = (255, 255, 0)
BackColour = (198, 151, 107)
pygame.init()
GameDisplay = pygame.display.set_mode((Width, Height))
pygame.display.set_caption("A bit …Run Code Online (Sandbox Code Playgroud) 我在pygame中制作了用于单击事件的按钮,但是存在问题。当我单击鼠标按钮并在按钮边界之间移动鼠标时,单击事件会重复发生。我只想单击一下,直到释放鼠标按钮。我怎样才能做到这一点?
import pygame,time
pygame.init()
x,y = (200,300)
pencere = pygame.display.set_mode((x,y))
pygame.display.set_caption("Click")
white = (255,255,255)
black = (0,0,0)
black2 = (30,30,30)
class Counter:
count = 0
def click(self):
self.count += 1
number = Counter()
def text_objects(text, font, color):
textSurface = font.render(text, True, color)
return textSurface, textSurface.get_rect()
def button(msg,x,y,w,h,c,ic,action=None):
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
pygame.draw.rect(pencere, c,(x,y,w,h))
smallText = pygame.font.Font("freesansbold.ttf",20)
textSurf, textRect = text_objects(msg, smallText, white)
textRect.center = ( (x+(w/2)), (y+(h/2)) )
pencere.blit(textSurf, textRect)
if x+w > mouse[0] > x and y+h …Run Code Online (Sandbox Code Playgroud) 我发现我可以用来event.is_pressed()检查何时发生点击(我假设是点击)。但是,当 LMB(鼠标左键)仍然按下时,任何额外的动作并不等于true使用is_pressed()
这是我用于此测试的代码块:
func _input(event):
var tilemap = find_node("TileMap")
if(event.is_pressed()):
tiles.highlight(event.position)
Run Code Online (Sandbox Code Playgroud)
当我实际单击时,tiles.highlight()会调用 ,但是当我在 LMB 仍然按下的情况下移动鼠标时,它不会调用tiles.highlight()。我需要在这里使用不同的功能吗?
最小的工作示例:
x = pygame.draw.circle(screen, color, (x, y), radius, width)
x.center = (my_wanted_center_x, my_wanted_center_y)
Run Code Online (Sandbox Code Playgroud)
然后在更新显示后,它始终显示在其原始位置.也尝试过其他数据.也没有用x.move().如何以最简单的方式移动任何绘制的图形?
我想基于Levenshtein距离执行连接。
我有2张桌子:
Data:这是HDFS文件存储库中的CSV。列之一是Disease description,15K行。 df7_ct_map:我从Hive呼叫的表格。列之一是Disease Indication,20K行。 我试图通过将每个描述与适应症(它们是疾病的文字描述)相匹配来连接两个表。理想情况下,它们必须相同,但是如果两个文本都不相同,我希望选择包含最大数量的常用单词的匹配文本。
from pyspark.sql.functions import levenshtein
joinedDF = df7_ct_map.join( Data, levenshtein(df7_ct_map("description"),
Data("Indication")) < 3)
joinedDF.show(10)
Run Code Online (Sandbox Code Playgroud)
问题Data是DataFrame这就是为什么我得到以下错误:
TypeError: 'DataFrame' object is not callable
TypeError Traceback (most recent call last)
in engine
----> 1 joinedDF = df7_ct_map.join( Data, levenshtein(df7_ct_map("description"), Data("Indication")) < 3)
TypeError: 'DataFrame' object is not callable
Run Code Online (Sandbox Code Playgroud)
一些忠告?我可以使用Fuzzywuzzy软件包吗?如果是这样,怎么办?
python levenshtein-distance apache-spark-sql fuzzywuzzy pyspark
是否有算法更改一组坐标以使其向另一组坐标移动?
就像,如果我有ax,ay=(20,30)和bx,by=(40,60)
我似乎无法绕过这个.我如何改变ax和ay(随着时间的推移)平等bx和by?(最好是在python中可实现的算法.)
我正在用 pygame 用 Python 编写一个游戏,我想制作一个函数,从一个点沿特定方向绘制一条线,具有特定长度,例如,函数的定义是: def draw_line(position1: (int, int), angle: int, line_length: int, line_width: float, color: Color):
我可以做什么来计算绘制线条的第二个点?
我有一个问题的小示意图,我想得到position2,用pygame画线。
python ×10
pygame ×8
godot ×2
python-3.x ×2
angle ×1
animation ×1
button ×1
click ×1
collision ×1
drawing ×1
fuzzywuzzy ×1
game-physics ×1
gdscript ×1
line ×1
mouse ×1
performance ×1
position ×1
pyspark ×1
python-2.7 ×1
rectangles ×1
size ×1