猫史档案馆


【Python作品分享】初版模型【作业帖】

用户:韦小田韦小田查看:0 回复:0 评论:0 创建时间:2023-07-15T12:59:57


【作品展示】

center_image

 

【作品介绍】

他给你提供了人物,移动功能

缺点:wasd无用 上下左右件可用。

 

【作品源代码】

import pygame
import sys
import random

# 初始化Pygame
pygame.init()

# 设置屏幕尺寸和标题
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("2D Minecraft")

# 颜色定义
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)

# 创建玩家类


class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.Surface((20, 20))
        self.image.fill(GREEN)
        self.rect = self.image.get_rect()
        self.rect.x = 50
        self.rect.y = screen_height - 100

    def update(self):
        keys = pygame.key.get_pressed()
        if keys[pygame.K_LEFT]:
            self.rect.x -= 5
        if keys[pygame.K_RIGHT]:
            self.rect.x += 5
        if keys[pygame.K_UP]:
            self.rect.y -= 5
        if keys[pygame.K_DOWN]:
            self.rect.y += 5

        # 边界检查
        self.rect.clamp_ip(screen.get_rect())

# 创建地图类


class Map:
    def __init__(self):
        self.map_data = [
            "                                                                 ",
            "                                                                 ",
            "                                                                 ",
            "                                                                 ",
            "                                                                 ",
            "                                                                 ",
            "                                                                 ",
            "                                                                 ",
            "                                                                 ",
        ]

    def draw(self):
        for y, row in enumerate(self.map_data):
            for x, cell in enumerate(row):
                if cell == "#":
                    pygame.draw.rect(screen, GREEN, (x * 20, y * 20, 20, 20))


# 初始化玩家
player = Player()
all_sprites = pygame.sprite.Group()
all_sprites.add(player)

# 初始化地图
map = Map()

# 游戏循环
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 更新玩家
    player.update()
    all_sprites.update()

    # 清空屏幕
    screen.fill(WHITE)

    # 绘制地图
    map.draw()

    # 绘制玩家
    all_sprites.draw(screen)

    # 更新屏幕
    pygame.display.flip()

    # 设置帧率
    pygame.time.Clock().tick(60)

# 退出游戏
pygame.quit()
sys.exit()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页