Расчесывание мира и персонажа для завершения игры [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Расчесывание мира и персонажа для завершения игры [дубликат]

Сообщение Anonymous »


Я пытаюсь объединить две программы. Один — это мир, другой — персонаж. Я перепробовал все, что описано в книге. Сейчас все изменения применяются к привязкам клавиш, но после их объединения я собираюсь добавить автоматические триггеры. Я просто хочу иметь возможность перемещать своих маленьких человечков по миру. ПОМОГИТЕ, Я ТАК ДОЛГО НА ЭТО ПОТРАТИЛ!

Я пытался их интегрировать, а затем попытался заставить их работать одновременно, но ничего не получилось. `

#Начало мирового кода
`импортировать pygame импортировать систему # Инициализируем pygame pygame.init() # Определить цвета ЧЕРНЫЙ = (0, 0, 0) ТЕМНО-СЕРЫЙ = (64, 64, 64) БЕЛЫЙ = (255, 255, 255) # Загрузка изображений # (Предполагая, что файлы изображений находятся в том же каталоге, что и этот скрипт) image_13 = pygame.image.load('13.png') image_10 = pygame.image.load('10.png') image_14 = pygame.image.load('14.png') image_9 = pygame.image.load('9.png') image_5 = pygame.image.load('5.png') image_7 = pygame.image.load('7.png') image_8 = pygame.image.load('8.png') image_6 = pygame.image.load('6.png') # Настраиваем отображение экран = pygame.display.set_mode((800, 600)) pygame.display.set_caption("Мастеру Угвею что-то нужно.") show_images = [Ложь, Ложь, Ложь, Ложь, Ложь, Ложь, Ложь, Ложь, Ложь] # Определить положение и размеры изображения image_positions = [(150, 320), (0, 240), (150, 390), (20, 263), (600, 315), (390, 230), (390, 350), (600, 315) ] image_sizes = [(150, 150), (220, 220), (150, 150), (220, 220), (150, 150), (320, 280), (320, 280), (150, 150) ] шрифт = pygame.font.Font(нет, 52) big_text_box = pygame.Rect(100, 0, 200,100) # Скорректированная высота big_text_value = "Где я?" show_large_text = Ложь # Определим второе текстовое поле small_text_box = pygame.Rect(100, 1, 200,100) # Скорректированная позиция и высота small_text_value = "Здесь так темно...\nПо крайней мере, у меня есть банан!" show_small_text = Ложь # Определим третье текстовое поле Third_text_box = pygame.Rect(100, 2, 200,100) # Скорректированная позиция и высота Third_text_value = "МАСТЕР УГВЕЙ?!" show_ Third_text = Ложь # Определим четвертое текстовое поле four_text_box = pygame.Rect(10, 3, 800,100) # Скорректированная позиция и высота four_text_value = "За этой дверью есть что-то прекрасное,\nНо чтобы увидеть красоту, нужно предложить красоту." show_fourth_text = Ложь # Определим пятое текстовое поле пятый_текст_бокс = pygame.Rect(100, 4, 200,100) # Скорректированная позиция и высота пятое_текст_значение = "ООО ООО ААХ ААХ" show_fifth_text = Ложь # Определим шестое текстовое поле шестой_текст_бокс = pygame.Rect(10, 5, 200,100) # Скорректированная позиция и высота Sixth_text_value = "Будь отцом -_- \n Что бы там ни было, за этим камнем \n есть что-то крутое." show_sixth_text = Ложь # Определим седьмое текстовое поле Seventh_text_box = pygame.Rect(100, 6, 200,100) # Скорректированная позиция и высота Seventh_text_value = "ЖЕМЧУЖИНА!" show_seventh_text = Ложь # Определим восьмое текстовое поле восьмой_текст_бокс = pygame.Rect(10, 7, 200 100) восьмой_текст_значение = "Хорошая работа, молодой человек. Это действительно красиво. \nВы можете войти в комнату истинного спокойствия. \nСпасибо, что сохраняешь это по-настоящему, чувак :P" show_eighth_text = Ложь защита toggle_images(индекс): show_images[индекс] = не show_images[индекс] защита переключения1(): глобальный show_large_text show_large_text = не show_large_text защита переключения2(): глобальный show_small_text show_small_text = не show_small_text защита переключения3(): глобальный show_ Third_text show_ Third_text = не show_ Third_text защита переключения4(): глобальный show_fourth_text show_fourth_text = не show_fourth_text защита переключения5(): глобальный show_fifth_text show_fifth_text = не show_fifth_text защита переключения6(): глобальный show_sixth_text show_sixth_text = не show_sixth_text защита переключения7(): глобальный show_seventh_text show_seventh_text = не show_seventh_text защита переключения8(): глобальный show_eighth_text show_eighth_text = не show_eighth_text защита draw_interface(): # Черный фон (нижний слой) screen.fill(ЧЕРНЫЙ) # Темно-серый низ (второй слой) pygame.draw.rect(screen, DARK_GREY, (0, 3 * screen.get_height() // 4, screen.get_width(), screen.get_height() // 4)) для меня покажите в перечислении (show_images): если показать: screen.blit(pygame.transform.scale([image_13, image_10, image_14, image_9, image_5, image_7, image_8, image_6], image_sizes), image_positions) если show_large_text: text_surface = font.render(large_text_value, True, БЕЛЫЙ) screen.blit(text_surface, (large_text_box.x + 10, big_text_box.y + 10)) если show_small_text: lines = small_text_value.split('\n') # Разделение текста на строки y_offset = small_text_box.y + 10 # Начальное смещение по оси y для строки в строках: text_surface = font.render(линия, True, БЕЛЫЙ) screen.blit(text_surface, (small_text_box.x + 10, y_offset)) y_offset += text_surface.get_height() + 5 # Увеличить смещение по оси y для следующей строки если show_ Third_text: text_surface = font.render( Third_text_value, True, БЕЛЫЙ) screen.blit(text_surface, ( Third_text_box.x + 10, Third_text_box.y + 10)) если show_fourth_text: lines = four_text_value.split('\n') # Разделение текста на строки y_offset = four_text_box.y + 10 # Начальное смещение по оси y для строки в строках: text_surface = font.render(линия, True, БЕЛЫЙ) screen.blit(text_surface, (четвертый_текст_box.x + 10, y_offset)) y_offset += text_surface.get_height() + 5 # Увеличить смещение по оси y для следующей строки если show_fifth_text: text_surface = font.render(fifth_text_value, True, БЕЛЫЙ) screen.blit(text_surface, (fifth_text_box.x + 10, пятый_text_box.y + 10)) если show_sixth_text: lines = Sixth_text_value.split('\n') # Разделение текста на строки y_offset = Sixth_text_box.y + 10 # Начальное смещение по оси y для строки в строках: text_surface = font.render(линия, True, БЕЛЫЙ) screen.blit(text_surface, (sixth_text_box.x + 10, y_offset)) y_offset += text_surface.get_height() + 5 # Увеличить смещение по оси y для следующей строки если show_seventh_text: text_surface = font.render(седьмое_текстовое_значение, True, БЕЛЫЙ) screen.blit(text_surface, (seventh_text_box.x + 10, Seventh_text_box.y + 10)) если show_eighth_text: lines = восьмое_текст_значение.split('\n') # Разделение текста на строки y_offset = восьмой_текст_box.y + 10 # Начальное смещение по оси y для строки в строках: text_surface = font.render(линия, True, БЕЛЫЙ) screen.blit(text_surface, (eighth_text_box.x + 10, y_offset)) y_offset += text_surface.get_height() + 5 # Увеличить смещение по оси y для следующей строки защита основной(): пока правда: для события в pygame.event.get(): если event.type == pygame.QUIT: pygame.quit() sys.exit() если event.type == pygame.KEYDOWN: если event.key == pygame.K_1: toggle_images(0) toggle_images(1) elif event.key == pygame.K_2: toggle_images(2) toggle_images(3) elif event.key == pygame.K_3: toggle_images(4) toggle_images(5) elif event.key == pygame.K_4: toggle_images(6) toggle_images(7) elif event.key == pygame.K_5: переключить1() elif event.key == pygame.K_6: переключатель2() elif event.key == pygame.K_7: переключить3() elif event.key == pygame.K_8: переключить4() elif event.key == pygame.K_9: переключить5() elif event.key == pygame.K_t: переключить6() elif event.key == pygame.K_y: переключить7() elif event.key == pygame.K_u: # Добавлено переключение восьмого текстового поля переключить8() draw_interface() pygame.display.flip() если __name__ == "__main__": основной() #Код символов Начало импортировать pygame импортировать систему класс ImageSet: def __init__(self, image_paths, window_size, all_image_sets): self.images = [pygame.transform.scale(pygame.image.load(path), (200, 200)) для пути в image_paths] self.mirrored_images = [pygame.transform.flip(image, True, False) для изображения в self.images] self.image_rect = pygame.Rect(400, 300, 200, 200) собственная скорость = 3 self.switch_speed = 1 self.current_image = 0 self.last_switch_time = pygame.time.get_ticks() self.mirrored_v = Ложь self.mirrored_down = Ложь self.all_image_sets = all_image_sets Защиту handle_teleportation (я, ключи): если ключи[pygame.K_z]: self.image_rect.topleft = (-200, 300) ключи elif[pygame.K_x]: self.image_rect.topleft = (800, 300) Защиту handle_switch_F (я, ключи): current_time = pygame.time.get_ticks() если ключи[pygame.K_f]: если текущее_время - self.last_switch_time >= self.switch_speed * 100: self.current_image = (self.current_image + 1) % len(self.images) self.last_switch_time = текущее_время обновление def (я, ключи): current_time = pygame.time.get_ticks() self.handle_teleportation(ключи) если ключи[pygame.K_LEFT] или ключи[pygame.K_RIGHT]: если текущее_время - self.last_switch_time >= self.switch_speed * 100: self.current_image = (self.current_image - 1) % len(self.images), если ключи[pygame.K_LEFT] else (self.current_image + 1) % len(self.images) self.last_switch_time = текущее_время для image_set в self.all_image_sets: если image_set == сам: image_set.image_rect.move_ip(-self.speed, 0) ifkeys[pygame.K_LEFT] else image_set.image_rect.move_ip(self.speed, 0) если ключи[pygame.K_DOWN]: если текущее_время - self.last_switch_time >= self.switch_speed * 1000: для image_set в self.all_image_sets: image_set.mirrored_v = не image_set.mirrored_v image_set.mirrored_down = не image_set.mirrored_down self.last_switch_time = текущее_время self.handle_switch_F(ключи) def draw(сам, окно): если self.mirrored_v и self.mirrored_down: current_image_surface = self.mirrored_images[self.current_image] Элиф self.mirrored_v: current_image_surface = self.mirrored_images[self.current_image] Элиф self.mirrored_down: current_image_surface = self.mirrored_images[self.current_image] еще: current_image_surface = self.images[self.current_image] window.fill((0, 0, 0)) window.blit(current_image_surface, self.image_rect) защита основной(): pygame.init() размер_окна = (800, 600) окно = pygame.display.set_mode(размер_окна) pygame.display.set_caption('Движущееся изображение') image_sets = [ ImageSet(['1.png', '2.png'], размер_окна, []), ImageSet(['3.png', '4.png'], размер_окна, []), ImageSet(['11.png', '12.png'], размер_окна, []), ImageSet(['1A.png', '2A.png'], размер_окна, []) ] для image_set в image_sets: image_set.all_image_sets = image_sets текущий_набор = 0 часы = pygame.time.Clock() пока правда: для события в pygame.event.get(): если event.type == pygame.QUIT: pygame.quit() sys.exit() ключи = pygame.key.get_pressed() если ключи[pygame.K_a]: текущий_набор = 0 ключи elif[pygame.K_s]: текущий_набор = 1 ключи elif[pygame.K_d]: текущий_набор = 2 ключи elif[pygame.K_f]: текущий_набор = 3 если current_set < len(image_sets): image_sets[current_set].update(ключи) image_sets[current_set].draw(окно) pygame.display.flip() если __name__ == "__main__": основной() `
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»