小编pra*_*nsg的帖子

Python - Pygame - 获取特定声音的播放效果

Pygame的混音器模块pygame.mixer.get_busy返回一个简单的布尔值.
我的问题是我有声音不断播放,如爆炸和枪声,并且需要知道特定声音何时播放以防止游戏对话重叠.

我考虑制作一个当前播放对话的列表,创建一个计时器,在每个声音被触发时倒计时,但这需要我在主游戏循环中添加声音效果(处理声音的模块)更新.
这似乎很混乱,就像一个巨大的减速.

有更清洁的方法吗?

python audio pygame

2
推荐指数
1
解决办法
2787
查看次数

处理多级列表(2)

假设我有一个列表,如:

li = ['0', ['1', '2'], ['3', ['4', '5'], '6', ['7'], '8'], '9']
Run Code Online (Sandbox Code Playgroud)

我如何实现一个以下列形式产生元组的函数(elem, indexes):

  • elem 是元素
  • indexes 是达到那个元素所需的指数.

例:

>>> for x in my_func(li):
    print x
('0', [0])
('1', [1, 0])
('2', [1, 1])
('3', [2, 0])
('4', [2, 1, 0])
('5', [2, 1, 1])
('6', [2, 2])
('7', [2, 3, 0])
('8', [2, 4])
('9', [3])
Run Code Online (Sandbox Code Playgroud)

python list

2
推荐指数
1
解决办法
775
查看次数

如何在Pygame中使用Sprite碰撞

我正在制作一个非常简单的游戏,其中鸟(玩家)必须躲避岩石,如果它被岩石击中,你就输了.我试图使用pygame.sprite.collide_rect()来判断它们是否触及,但我似乎无法确定如何正确使用它.

这是我的代码:

import pygame
import os, sys
import random
import time

img_path = os.path.join('C:\Python27', 'player.png')
img_path2 = os.path.join('C:\Python27', 'rock.png')

class Bird(object):  
    def __init__(self):           
        self.image_s = pygame.image.load(img_path)
        self.image_b = self.image_s.get_rect()
        self.x = 0
        self.y = 0

    def handle_keys(self):
        key = pygame.key.get_pressed()
        dist = 2 
        if key[pygame.K_DOWN]:
            self.y += dist 
        elif key[pygame.K_UP]: 
            self.y -= dist
        if key[pygame.K_RIGHT]: 
            self.x += dist 
        elif key[pygame.K_LEFT]:
            self.x -= dist 

   def draw(self, surface):
       surface.blit(self.image, (self.x, self.y))

    def background(self, surface):
        bg = os.path.join('C:\Python27', 'bg.png')
        self.image2 = pygame.image.load(bg)
        surface.blit(self.image2, …
Run Code Online (Sandbox Code Playgroud)

python pygame sprite rect

2
推荐指数
1
解决办法
2万
查看次数

使用生成器以时间优先级读取两个文件

我刚刚阅读了生成器,并想知道如何使用生成器:
假设有两个文件,每个文件都有一个时间列.每个文件按升序时间排序,我希望使用时间优先级抓取这些文件中的行.而不是写一个简单的表达式(见下文),我想知道创建一个生成器next()是否是一个更好/适当的方式来读取这两个文件的时间优先级.

for line1 in file1:    
    do_something
    try:
        if time1<time2:
            do_something    
            continue
        else:
            do_something  
    except:
        pass  
    for line2 in file2:
        do_something  
        if time2>time1:
            break  
Run Code Online (Sandbox Code Playgroud)

python time generator

2
推荐指数
1
解决办法
112
查看次数

在python中使用子列表拆分字符串

我有这个字符串:

"{'osFreeMem': 286494720, 'osUpTime': 19230718, 'sysload': [0.24609375, 0.62109375, 0.734375], 'nodeUpTime': 1831, 'osTotMem': 536870912, 'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760}}"
Run Code Online (Sandbox Code Playgroud)

我想要一个包含这些值的字典:

'osFreeMem': 286494720
'osUpTime': 19230718
'sysload': [0.24609375, 0.62109375, 0.734375]    
'nodeUpTime': 1831
'osTotMem': 536870912    
'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760}
Run Code Online (Sandbox Code Playgroud)

我怎么能得到这份清单?

python string split

1
推荐指数
1
解决办法
146
查看次数

如何将字符串中的所有数字映射到Python中的列表?

说我有一个字符串

"There are LJFK$(#@$34)(,0,ksdjf apples in the (4,5)"  
Run Code Online (Sandbox Code Playgroud)

我希望能够将数字动态提取到列表中:[34, 0, 4, 5].
有没有一种简单的方法在Python中执行此操作?

换句话说,
有没有办法提取由任何分隔符分隔的连续数字簇?

python string

1
推荐指数
1
解决办法
273
查看次数

这是将JSON数据集加载到Pandas DataFrames中的最有效方法

我没有在JSON上的Pandas文档和cookbook中找到任何内容(只是引用了CSV和带有分隔符的文本文件).

是否已经定义了将JSON直接加载到DataFrame中的函数?如果有不同的选择,哪个最有效?

python json dataframe pandas

1
推荐指数
2
解决办法
2万
查看次数

python聊天客户端库

我正在尝试编写一个Python库,它将实现某个聊天协议的客户端.

连接到服务器后,
我启动主循环,从服务器读取并处理收到的命令,这里我需要调用回调函数(如on_messageon file_received等).

我应该怎么做呢?
应该为每个回调函数启动一个新线程吗?也许一些回调需要一些时间才能返回,我会暂停.
另外,
如果我从服务器读取的主循环在一个线程中,我可以从另一个线程写入套接字(向服务器发送消息)吗?
还是有更好的方法?谢谢.

python multithreading chat

0
推荐指数
1
解决办法
466
查看次数

pygame精灵不动

我遇到了一个逻辑错误,即无论输入如何,精灵都不会移动.
我的代码将在下面,因此没有遗漏任何背景,它相当短.
有没有更好的方法将精灵从blit中移开?
我已经看到了一些关于更新精灵或其他一些东西的东西,完全不同于简单的blitting它.

import pygame
pygame.init()
import random
import math

screen=pygame.display.set_mode([700,400])
black    = (   0,   0,   0)
white    = ( 255, 255, 255)
red      = ( 255,   0,   0)
player_x=350
player_y=200
player_x_vel=0
player_y_vel=0
rot_player=pygame.image

pi=math.pi

class Player(pygame.sprite.Sprite):
    def __init__(self):
        global player
        pygame.sprite.Sprite.__init__(self)
        self.pos=(350,200)
        self.image=pygame.image.load("arrowtest.png").convert()
        self.rect=self.image.get_rect()
        screen=pygame.display.get_surface()
        self.area=screen.get_rect()
        self.speed=10
        self.state="still"
        self.reinit()       

    def reinit(self):
        self.state="still"
        self.movepos=[0,0]

    def update(self):
        newpos=self.rect.move(self.movepos)
        if self.area.contains(newpos):
            self.rect=newpos
        pygame.event.pump()

    def moveup(self):
        self.movepos[1]-=(self.speed)
        self.state="moveup"
    def movedown(self):
        self.movepos[1]+=(self.speed)
        self.state="movedown"
    def moveleft(self):
        self.movepos[0]-=(self.speed)
        self.state="moveleft"
    def moveright(self):
        self.movepos[0]+=(self.speed)
        self.state="moveright"
    def moveupright(self): …
Run Code Online (Sandbox Code Playgroud)

python pygame class sprite

0
推荐指数
1
解决办法
1371
查看次数

基本的Pygame图形

我刚开始学习pygame图形.我在pygame中画了一个圆圈,想知道我是如何编程来改变颜色的.
例如:它将颜色从蓝色更改为红色.

我需要它来改变颜色,直到我关闭pygame,如果颜色逐渐从一个变为另一个而不是瞬间改变,那将会很好吗?我有什么想法可以做到这一点?

import pygame
pygame.init()

RED =   (255,  0,  0)
BLUE =  (  0,  0,255)
BLACK = (  0,  0,  0)
SIZE = (1000,1000)
screen = pygame.display.set_mode(SIZE)

pygame.draw.circle(screen,RED,(500,500),200)

pygame.display.flip()
pygame.time.wait(3000)
pygame.quit()
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
704
查看次数

标签 统计

python ×10

pygame ×3

sprite ×2

string ×2

audio ×1

chat ×1

class ×1

dataframe ×1

generator ×1

json ×1

list ×1

multithreading ×1

pandas ×1

rect ×1

split ×1

time ×1