В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
ника2735
ника2735
14.05.2021 01:12 •  Информатика

Неправильный порядок отображения спрайтов в pygame Ссылка на пастбин с кодом: https://pastebin.com/8MMnbaDU
import pygame, sys
class MyBallClass(pygame.sprite.Sprite):
def __init__(self,image_file,speed,location):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('football.png')
self.image=pygame.transform.scale(self.image,(30,30))
self.rect=self.image.get_rect()
self.rect.left, self.rect.top=location
self.speed=speed
def move(self):
global score, score_surf, score_font
self.rect=self.rect.move(self.speed)
if self.rect.left<0 or self.rect.right>screen.get_width():
self.speed[0]=-self.speed[0]
if self.rect.top<=0:
self.speed[1]=-self.speed[1]
score=score+1
score_surf=score_font.render(str(score),1,(0,0,0))

class MyPaddleClass(pygame.sprite.Sprite):
def __init__(self,location=[0,0]):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('footballer.png')
self.image=pygame.transform.scale(self.image,(150,220))
self.rect=self.image.get_rect()
self.rect.left,self.rect.top=location

pygame.init()
screen=pygame.display.set_mode([460,320])
pygame.display.set_caption('Проект "Футболист"')
clock=pygame.time.Clock()
myBall=MyBallClass('footballer.png',[10,20],[20,20])
ballGroup=pygame.sprite.Group(myBall)
paddle=MyPaddleClass([270,150])
lives=3;score=0
score_font=pygame.font.Font(None,50)
score_surf=score_font.render(str(score),1,(0,0,0))
score_pos=[10,10];done=False;
running=True
pygame.display.flip()

while running:
clock.tick(30)
pole_surf=pygame.image.load('pole.png')
pole_surf=pygame.transform.scale(pole_surf,(460,320))
pole_rect=pole_surf.get_rect(center=(230,160))
screen.blit(pole_surf,pole_rect)
pygame.display.flip()
for event in pygame.event.get():
if event.type==pygame.QUIT:
running=False
elif event.type==pygame.MOUSEMOTION:
paddle.rect.centerx=event.pos[0]

if pygame.sprite.spritecollide(paddle, ballGroup, False):
myBall.speed[1]=-myBall.speed[1]
pygame.display.flip()

myBall.move()
if not done:
screen.blit(myBall.image, myBall.rect)
screen.blit(paddle.image, paddle.rect)
screen.blit(score_surf, score_pos)
pygame.display.flip()
for i in range (lives):
width=screen.get_width()
screen.blit(myBall.image, [width - 40*i, 20])
pygame.display.flip()
pygame.display.flip()

if myBall.rect.top>=screen.get_rect().bottom:
lives=lives-1
if lives==0:
final_text1="Конец игры"
final_text2="Количество очков:" + str(score)
ft1_font=pygame.font.Font(None,70)
ft1_surf=ft1_font.render(final_text1,1,(255,0,0))
ft2_font=pygame.font.Font(None,50)
ft2_surf=ft2_font.render(final_text2,1,(255,0,0))
screen.blit(ft1_surf,[screen.get.width()/2 - \
ft1_surf.get_width()/2,100])
screen.blit(ft2_surf,[screen.get.width()/2 - \
ft2_surf.get_width()/2,200])
pygame.display.flip()
done=True
else:
pygame.time.delay(5000)
myBall.rect.topleft=[50,50]
if event.type==pygame.QUIT:
running=False
pygame.quit()


Неправильный порядок отображения спрайтов в pygame Ссылка на пастбин с кодом: https://pastebin.com/8

Показать ответ
Ответ:
matveevaalina17
matveevaalina17
15.12.2022 13:27

Ну, площадь круга, допустим, вычисляется по формуле

S = pi*R^2.

Ну а кольца из большего круга вычитаем меньший, получим

Sk = pi*(R1^2 - R2^2)

Вот собственно и всё.

Программы тут и нет, так, пара операторов, например

 

Пи=3,141592653;

Ввод(R1,R2);

S = Пи*ABS(R1*R1-R2*R2);

Сообщить(R1,R2,S);

 

Замечание1. Модуль (ABS) обязателен, для снятия ограничений на порядок ввода радиусов. При таком подходе порядок(больший-меньший или наоборот) роли НЕ ИГРАЕТ!

 

Замечание2 Написано некоем псевдоязыке, с которого легко переведёшь на тот, которым владеешь.

 

0,0(0 оценок)
Ответ:
машазайка1
машазайка1
27.12.2020 02:50

Program pr1;
Var A : array [1..4, 1..4] of integer ; {резервирование памяти под массив А (4 на 4)}
i,j, max, p, k: integer ; {переменные i,j вводятся как индексы массива}
Begin
randomize;
For i:=1 to 4 do
For j:=1 to 4 do
A[i,j]:=random (100); {ввод элемента матрицы}
max:=A[1,1]; k:=1; p:=1; {первоначальное предположение}
For i:=1 to 4 do
For j:=1 to 4 do
if A[i,j]>max then begin {Если текущий элемент больше максимального }
max:=A[i,j]; {max = A[i,j], запоминаем индексы текущего элемента}
k:=i;
p:=j;
end;

writeln('Исходный массив:');
For i:=1 to 4 do begin
For j:=1 to 4 do
write (A[i,j], ' ');
writeln;
end;

 

a[k, p] := a[k, p] + a[1, 1];  // добавленные строки

a[1, 1] := a[k, p] - a[1, 1];

a[k, p] := a[k, p] - a[1, 1];

writeln('Преобразованный массив:');
For i:=1 to 4 do begin
For j:=1 to 4 do
write (A[i,j], ' ');
writeln;


end;
writeln ('Максимальный элемент матрицы = ', max);
write ('Он находится в строке №' , k);
writeln (' и в столбце №' , p);
end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота