鱼C论坛

 找回密码
 立即注册
查看: 2085|回复: 1

推箱子 控制移动衔接问题

[复制链接]
发表于 2020-7-29 15:53:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

代码while 后,控制箱子移动,人物移动不能实现,游戏关卡通过代码已经能实现了
人 :5   箱子: 4  目的地:3  墙:2   代码中1无实际意义


import pygame
import sys
from pygame.locals import*

pygame.init()
size=width,height=512,512
bg=(255, 255, 255)
window = pygame.display.set_mode(size)

pygame.display.set_caption('推箱子')
window.fill(bg)

wall = pygame.image.load('images/wall.png')
correct_box = pygame.image.load('images/finish.png')
player = pygame.image.load('images/top.png')
box = pygame.image.load('images/box.png')
beijin = pygame.image.load('images/bgg.png')
running=True


while running:
    map_1 = [
             '11222111',
             '11232111',
             '112 2222',
             '2224 432',
             '23 45222',
             '22224211',
             '11123211',
             '11122211'
             ]
   
#2:q 3;m 4;x 5 r
    for i in range(8):
        for j in range(8):

            x = 0 + j * 64
            y = 0 + i * 64

            if map_1[i][j] == '2':
                window.blit(wall, (x, y))

            if map_1[i][j] == '3':
                window.blit(correct_box, (x, y))

            if map_1[i][j] == '4':
                window.blit(box, (x, y))
            
            if map_1[i][j] == '5':
                window.blit(player,(x, y))  
            

            
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            key_pressed = pygame.key.get_pressed()
            i=5
            j=5
            if key_pressed[K_d] or key_pressed[K_RIGHT]:
                if map_1[i][j]=='5' and map_1[i][j+1]=='4' and map_1[i][j+1]!='2' and map_1[i][j+2]!='4' :
                    map_1[i][j+1]='5'
                    map_1[i][j]=' '
                    map_1[i][j+2]='4'
                    j+=1
                if map_1[i][j]=='5' and map_1[i][j+1]!='4' and map_1[i][j+1]=='2':
                    map_1[i][j+1]='5'
                    map_1[i][j]=' '
                    j+=1
            if key_pressed[K_a] or key_pressed[K_LEFT]:
                if map_1[i][j]=='5' and map_1[i][j-1]=='4' and map_1[i][j-1]!='2' and map_1[i][j-2]!='4' :
                    map_1[i][j-1]='5'
                    map_1[i][j]=' '
                    map_1[i][j-2]='4'
                    j+=1
                    
                if map_1[i][j]=='5' and map_1[i][j-1]!='4' and map_1[i][j-1]=='2':
                    map_1[i][j-1]='5'
                    map_1[i][j]=' '
                    j+=1
            
                           
                    
            

    pygame.display.update()

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-31 20:05:34 | 显示全部楼层
本帖最后由 一抹心尘 于 2020-10-31 20:07 编辑

我去帮你看看,刚刚我的pygame代码出问题了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表