美文网首页
pygame写桌面精灵最重要的步骤

pygame写桌面精灵最重要的步骤

作者: 圣_狒司机 | 来源:发表于2025-04-07 13:33 被阅读0次

将窗体设置为透明:

import pygame
import sys
from pygame.locals import *
import win32gui, win32api
from win32.lib import win32con

def make_window_transparent(hwnd):
    # 设置窗口为分层窗口
    win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE) | win32con.WS_EX_LAYERED)
    # 设置窗口为完全透明
    win32gui.SetLayeredWindowAttributes(hwnd, win32api.RGB(0,0,0), 0, win32con.LWA_COLORKEY)

def main():
    pygame.init()
    screen = pygame.display.set_mode((400, 400), pygame.NOFRAME)
    hwnd = pygame.display.get_wm_info()["window"]
    make_window_transparent(hwnd)
    clock = pygame.time.Clock()

    # 加载具有透明通道的图像
    sprite_image = pygame.image.load('IMG_8566.JPG').convert_alpha()
    sprite_image = pygame.transform.scale(sprite_image, (sprite_image.get_width() // 4, sprite_image.get_height() //4))
    sprite_rect = sprite_image.get_rect()
    sprite_image.set_colorkey(pygame.Color(255, 255, 255))
    sprite_rect.center = (200, 200)  # 设置精灵初始位置在屏幕中央

    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        screen.fill(pygame.Color(0, 0, 0))  # 使用黑色作为透明颜色键

        # 绘制精灵
        screen.blit(sprite_image, sprite_rect)

        pygame.display.flip()
        clock.tick(60)

if __name__ == '__main__':
    main()

这里make_window_transparent(hwnd)最重要,它获得窗体句柄,在底层操作使窗体透明,这个步骤无法在pygame里完成!不写成函数也可以:

import pygame
import sys
from pygame.locals import *
import win32gui, win32api
from win32.lib import win32con


def main():
    pygame.init()
    screen = pygame.display.set_mode((400, 400), pygame.NOFRAME)
    hwnd = pygame.display.get_wm_info()["window"]
    # 设置窗口为分层窗口
    win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE) | win32con.WS_EX_LAYERED)
    
    win32gui.SetLayeredWindowAttributes(hwnd, win32api.RGB(0,0,0), 0, win32con.LWA_COLORKEY)
    clock = pygame.time.Clock()
    # 设置窗口为完全透明
    # 加载具有透明通道的图像
    sprite_image = pygame.image.load('IMG_8566.JPG').convert_alpha()
    sprite_image = pygame.transform.scale(sprite_image, (sprite_image.get_width() // 4, sprite_image.get_height() //4))
    sprite_rect = sprite_image.get_rect()
    sprite_image.set_colorkey(pygame.Color(255, 255, 255))
    sprite_rect.center = (200, 200)  # 设置精灵初始位置在屏幕中央

    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

        screen.fill(pygame.Color(0, 0, 0))  # 使用黑色作为透明颜色键

        # 绘制精灵
        screen.blit(sprite_image, sprite_rect)

        pygame.display.flip()
        clock.tick(60)

if __name__ == '__main__':
    main()

相关文章

  • Pygame精灵和精灵组

    Pygame精灵和精灵组 Pygame提供了两个类 pygame.sprite.Sprite—— 存储图像数据 i...

  • 飞机大战

    安装pygame 1,首先安装pygame 2,验证是否安装pygame 如果安装上那就完成下列步骤,完成飞机大战...

  • day10-pygame基础操作学习/2018-07-27

    一、pygame的下载和导入 a.下载步骤如下: b.Pygame是跨平台Python模块,专为电子游戏设计 二、...

  • Python

    文字操作使用模块pygame.font 操作的步骤如下: 1.创建一个font对象 my_font=pygame....

  • 046_wz_hm_项目实战——飞机大战之游戏窗口

    目标 强化面向对象程序设计 体验使用pygame模块进行游戏开发 实战步骤 pygame快速体验 飞机大战实战 p...

  • 一张图看懂pygame编程 1

    Why pygame? 最近开始学Python游戏编程,自然选择了pygame。pygame 可以写游戏,也可以做...

  • 5.23

    如果你为安装pygame 下面是安装Pygame的步骤 1.下载 第一步: sudo pip3 install P...

  • Python3安装pygame

    如果我们使用的是Python3,就需要执行两个步骤:安装Pygame依赖的库;下载并安装Pygame. $ sud...

  • 2018-07-27pygame简单应用

    一、pygame导入及基本工作框架 这是一个最简单的pygame的工作框架,在pygame中实现各种事件都需要这个...

  • Deepin LiteIDE配置go-gtk

    环境:Deepin 15.11桌面版 操作步骤来自github最底下的说明:https://github.com/...

网友评论

      本文标题:pygame写桌面精灵最重要的步骤

      本文链接:https://www.haomeiwen.com/subject/igzavjtx.html