Я создаю pygame для проекта старшей школы, срок реализации которого составляет менее месяца, и использую специальное руководство для PACMAN и адаптирую его для создания своей собственной игры с аналогичной концепцией. Однако, поскольку я следую этому и немного меняю код в соответствии с моей игрой, мой персонаж «mouse.png» не двигается. Я не знаю, что привело к этому, является ли это частью определенной функции или неправильной логикой, и как я могу это исправить?
Вот руководство, которое я использую. следующее:
Следующий код — моя программа:
Я создаю pygame для проекта старшей школы, срок реализации которого составляет менее месяца, и использую специальное руководство для PACMAN и адаптирую его для создания своей собственной игры с аналогичной концепцией. Однако, поскольку я следую этому и немного меняю код в соответствии с моей игрой, мой персонаж «mouse.png» не двигается. Я не знаю, что привело к этому, является ли это частью определенной функции или неправильной логикой, и как я могу это исправить? Вот руководство, которое я использую. следующее: [youtube]9H27CimgPsQ[/youtube] Следующий код — моя программа: [code]from board import board import pygame import math
pygame.init()
pygame.display.set_caption('The Big Cheese Heist')
WIDTH = 600 HEIGHT = 625
screen = pygame.display.set_mode([WIDTH, HEIGHT]) timer = pygame.time.Clock() fps = 60 font = pygame.font.Font('freesansbold.ttf', 20) level = boards color = 'orange' PI = math.pi
#drawing each tile type onto the board def drawBoard(): num1 = ((HEIGHT - 50) // 32) num2 = (WIDTH // 30) for i in range (len(level)): for j in range(len(level[i])): if level [i][j] == 1: pygame.draw.circle(screen, 'white', (j * num2 + (0.5 * num2), i * num1 + (0.5 * num1)), 4) if level [i][j] == 2 and not flicker: pygame.draw.circle(screen, 'white', (j * num2 + (0.5 * num2), i * num1 + (0.5 * num1)), 10) if level [i][j] == 3: pygame.draw.line(screen, color, (j * num2 + (0.5 * num2), i * num1), (j * num2 + (0.5 * num2), i * num1 + num1), 3) if level [i][j] == 4: pygame.draw.line(screen, color, (j * num2, i * num1 + (0.5 * num1)), (j * num2 + num2, i * num1 + (0.5 * num1)), 3) if level [i][j] == 5: pygame.draw.arc(screen, color, [(j * num2 - (num2 *0.4)) - 2, (i * num1 + (0.5 * num1)), num2, num1], 0, PI/2, 3) if level [i][j] == 6: pygame.draw.arc(screen, color, [(j * num2 + (num2 *0.5)), (i * num1 + (0.5 * num1)), num2, num1], PI/2, PI, 3) if level [i][j] == 7: pygame.draw.arc(screen, color, [(j * num2 + (num2 *0.5)), (i * num1 - (0.4 * num1)), num2, num1], PI, 3 *PI/2, 3) if level [i][j] == 8: pygame.draw.arc(screen, color, [(j * num2 - (num2 *0.4)) - 2, (i * num1 - (0.4 * num1)), num2, num1], 3 * PI/2, 2 * PI, 3) if level [i][j] == 9: pygame.draw.line(screen, 'white', (j * num2, i * num1 + (0.5 * num1)), (j * num2 + num2, i * num1 + (0.5 * num1)), 3)
def drawPlayer(): #screen.blit(image,(0,0)) # 0 - RIGHT, 1 - LEFT, 2 - UP, 3 - DOWN if direction == 0: screen.blit(image, (playerX, playerY)) elif direction == 1: screen.blit(pygame.transform.flip(image, True, False), (playerX, playerY)) elif direction == 2: screen.blit(pygame.transform.rotate(image, (90)), (playerX, playerY)) elif direction == 3: screen.blit(pygame.transform.rotate(image, (270)), (playerX, playerY))
def checkPosition(centerX, centerY): turns = [False, False, False, False] #checks if players center position is clear num1 = (HEIGHT - 50 //32) num2 = (WIDTH//30) num3 = 15 # check collisions based on center x and center y of player +/0 fudge number if centerX // 30 < 29: #L, R, D, U !!! #row, column if direction == 1: #right if level[centerY//num1][(centerX - num3)// num2] < 3: #empty square, small dot or big dot turns[0] = True if direction == 0: #left if level[centerY//num1][(centerX + num3)// num2] < 3: #empty square, small dot or big dot turns[1] = True if direction == 3: #up if level[(centerY+num3)//num1][centerX // num2] < 3: #empty square, small dot or big dot turns[2] = True if direction == 2: #down if level[(centerY-num3)//num1][centerX// num2] < 3: #empty square, small dot or big dot turns[3] = True
#L, R, D, U # L = 0, R = 1, D = 2, U = 3 if direction == 2 or direction == 3: if 12
Я работаю над проектом JavaFX, вдохновленным руководством Rysnow по созданию игр на YouTube ( oPzPpUcDiYY Я внимательно следил за руководством, но у меня возникли проблемы с обнаружением столкновений. Несмотря на то, что я распечатал координаты для...
Я разрабатываю 2D-раннер с использованием Kivy и реализую точное по пикселям обнаружение столкновений. Я использовал свойство Keep_data = True, чтобы разрешить доступ к данным пикселей для моих спрайтов, и метод read_pixel() для проверки...
Я пытаюсь создать иерархию групп спрайтов Pygame. За время работы программы в подгруппы будут добавляться новые спрайты. Мне интересно, нужно ли мне также добавлять эти новые спрайты в родительские группы вручную или они будут автоматически...
Некоторая информация из текстового файла Pacmangridmover.cs
Найденное: Maze
Pac -Man, снятый в положении сетки (11, -3)
Pacman, начинается в позиции: (11, -3)
Это означает, что Pac -Mane -Pace -Paiste -Table -Way. правильно. Более 200...
Я программирую на Java 2D-игру с видом сверху и 8 направленными движениями, и во время написания своего следующего большого достижения — обнаружения столкновений — я столкнулся с серьёзной ошибкой. Как описано в вопросе, персонаж игрока (который на...