Найти - Пользователи
Полная версия: PyGame не отображает русский язык.
Начало » Инструментальные средства разработки » PyGame не отображает русский язык.
1
GoldLion
Создаю меню игры. но столкнулся с проблемой. Место русских букв “кракозябры”
вод собственно код. Надеюсь на вашу помощь.

 #!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import pygame
from pygame.locals import *
pygame.init() 
pygame.font.init()
bgcolor = (51, 51, 51)
font_color = (255, 255, 153)
font_color2 = (255, 255, 0)
highlite_color = (153, 102, 255)
font = pygame.font.SysFont('arial.ttf', 72)
surface_width = 800
surface_height = 600
clock = pygame.time.Clock()
#surface_menu = pygame.display.set_mode([surface_width,surface_height])
#surface_menu=pygame.display.set_mode((800,600),pygame.FULLSCREEN)
surface_menu=pygame.display.set_mode((800,600))
pygame.display.set_caption("Test")
surface_menu.fill(bgcolor)
all_s = []# список всех объектов
class Sprite:
	def __init__(self,text, font, x, y):
		self.x = x
		self.y = y
		self.text = text
		self.font = font.render(self.text,1,font_color)
		self.rect = self.font.get_rect()
		all_s.append(self)
		self.w = self.font.get_width()
		self.h = self.font.get_height()
		#self.rect.topleft = (self.x,self.y)
		#surface_menu.blit(self.font,self.rect)
	def bum (self):# проверка попадания мышки на объект
		if self.x<mp[0]<self.x+self.w and self.y<mp[1]<self.y+self.h:
			a = mp[0]-self.x# разница кооздинаты мышки и объекта
			b = mp[1]-self.y
			self.font = font.render(self.text,1,font_color2)
		else:
			self.font = font.render(self.text,1,font_color)
		
	def render (self):# отображение обьекта на игровом поле(экране)
		self.rect.topleft = (self.x,self.y)
		surface_menu.blit(self.font,self.rect)
				
Sprite('Старт', font, (surface_width/2)-65, (surface_height/2)-90)
Sprite('Настройки', font, (surface_width/2)-65, (surface_height/2)-40)
Sprite('Выход', font, (surface_width/2)-50, (surface_height/2)+10)
while True: 
	for e in pygame.event.get():# для любого события
		
		if e.type == pygame.QUIT:# если было закрытие окна
			sys.exit()
	# захват объекта лкм и перемещение при удержании кнопки 
	if e.type == pygame.MOUSEMOTION:
		mp = pygame.mouse.get_pos()
		for i in all_s:
			i.bum()
	
	
	#if e.type == pygame.MOUSEBUTTONDOWN and e.button ==1:                                        
		#mp = pygame.mouse.get_pos()
		#for i in all_s :# захват объекта
			#i.bum()
	clock.tick(60)
	for i in all_s:# отображаем все объекты
		i.render()
	#pygame.display.update()
	pygame.display.flip()# отображаем полностью дисплей(окно)	
pygame.quit()
aiscy
 Sprite(u'Старт', font, (surface_width / 2) - 65, (surface_height / 2) - 90)
Sprite(u'Настройки', font, (surface_width / 2) - 65, (surface_height / 2) - 40)
Sprite(u'Выход', font, (surface_width / 2) - 50, (surface_height / 2) + 10)
GoldLion
aiscy
пробовал уже так ошибку выдаёт
Sprite(u'╤ЄрЁЄ',1, font, (surface_width/2)-65, (surface_height/2)-90)
SyntaxError: (unicode error) ‘utf8’ codec can't decode byte 0xd1 in position 0: invalid continuation byte
JOHN_16
вам сам файл с кодом программы нужно закодировать в utf-8 . В общем миллиард раз писали, на миллионе сайтов о том как надо работать с кодировками питона.
GoldLion
JOHN_16
вам сам файл с кодом программы нужно закодировать в utf-8 . В общем миллиард раз писали, на миллионе сайтов о том как надо работать с кодировками питона.

Блин забыл просто))) и спасибо вам.
извините за лишний пост)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB