mама
15.08.2020 19:34

Неправильный порядок отображения спрайтов в 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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Vita77777
22.07.2021 15:38

var
    A: array [1..10] of integer;
    i, j, n, temp: integer;

begin
    randomize();
    n := 10;
    for i := 1 to n do
    begin
        A[i] := random(100);
        write(A[i], ' ');
    end;
    
    for j := 1 to n - 1 do
    begin
        for i := 1 to n - j do
        begin
            if a[i] mod 10 < a[i + 1] mod 10 then begin
                temp := a[i];
                a[i] := a[i + 1];
                a[i + 1] := temp;
            end;
        end;
    end;
    
    writeln();
    for i := 1 to n do
        write(A[i], ' ');
end.

0,0(0 оценок)
Ответ:
dashutadashuta2007
22.07.2021 15:38

const

  n = 10;

var

  a:array[1..n] of integer;

  i, j:integer;

begin

  randomize;

  writeln('Исходный массив:');

  for i := 1 to n do

  begin

    a[i] := random(101);

    write(a[i], ' ');

  end;

  

  for i := 1 to n - 1 do

    for j := 1 to n - i do

      if a[j] mod 10 > a[j + 1] mod 10 then

      begin

        a[j] := a[j] + a[j + 1];

        a[j + 1] := a[j] - a[j + 1];

        a[j] := a[j] - a[j + 1];

      end;

 

  writeln;

  writeln('Результат:');

  for i := 1 to n do

    write(a[i], ' ');

  writeln;

end.

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