Сабақтың тақырыбы: Шарттарды программалау («Футболшы» ойыны) Оқу бағдарламасына сәйкес оқыту мақсаттары



бет2/3
Дата19.01.2023
өлшемі57.5 Kb.
#417074
түріСабақ
1   2   3
Байланысты:
9 сынып инф 32
КТП естествознание 6 кл
Практикалық жұмыс
3-ші және 4-суреттерде «Футболшы» ойынының ойын
терезесі берілген. Ойын программасының кодында
әрбір блоктардың қызметтері көрсетілген (1-код).
Компьютерде орындаңдар.
1-код. «Футболшы» ойынының программа коды
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('futball.png')
#Доптың өлшемдерін береді (30 х 30 пиксель)
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]
#Доп әр рет жоғары қабырғаға соғылғанда 1- ұпай
қосады
if self.rect.top <= 0 :
self.speed[1] = -self.speed[1]
score = score + 1
#Ұпайдың өзгерісін str жолдық функциясы
көмегімен терезеге жазады
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('futbolist1.png')
#Ойыншының ойын алаңындағы өлшемдерін
береді(150 х 220 пиксель)
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('futbolist.png', [10,20], [20, 20])
ballGroup = pygame.sprite.Group(myBall)
paddle = MyPaddleClass([270, 150])
#Ойыншыға «өмір» тағайындайды ( бір ойын
кезінде 3 доп береді)
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
#Негізгі программа бөлігін іске қосатын цикл
while running:
clock.tick(30)
# Ойынға артқы фон ретінде футбол алаңын
жүктейді
pole_surf = pygame.image.load('pole.png')
pole_rect = pole_surf.get_rect(center=(230, 160))
screen.blit(pole_surf, pole_rect)
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]
# Допты қозғалтады
myBall.move()
if not done:
screen.blit(myBall.image, myBall.rect)
screen.blit(paddle.image, paddle.rect)
screen.blit(score_surf, score_pos)
for i in range (lives):
width = screen.get_width()
screen.blit(myBall.image, [width - 40 * i, 20])
pygame.display.flip()
# Доп алаңға түсіп кетсе бір допты (« жанды» )
өшіреді
if myBall.rect.top >= screen.get_rect().bottom:
lives = lives - 1
if lives == 0:
#Ойын қорытындысын ойын терезесіне жазады
final_text1 = "Oiyn sony"
final_text2 = "Upailar sany: " + 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:
# 1 секундтан соң ойыншының кейінгі «жанын» іске
қосады
pygame.time.delay(1000)
myBall.rect.topleft = [50, 50]
pygame.quit()


Достарыңызбен бөлісу:
1   2   3




©melimde.com 2023
әкімшілігінің қараңыз

    Басты бет
Сабақтың тақырыбы
бойынша жиынтық
жиынтық бағалау
Сабақ тақырыбы
Сабақтың мақсаты
бағдарламасына сәйкес
ғылым министрлігі
тоқсан бойынша
Реферат тақырыбы
бағалауға арналған
сәйкес оқыту
Сабақ жоспары
оқыту мақсаттары
жиынтық бағалауға
арналған тапсырмалар
білім беретін
бағалау тапсырмалары
Қазақстан республикасы
Қазақстан тарихы
жиынтық бағалаудың
мерзімді жоспар
тоқсанға арналған
республикасы білім
Жалпы ережелер
бекіту туралы
нтізбелік тақырыптық
арналған жиынтық
жалпы білім
болып табылады
Қазақстан республикасының
Зертханалық жұмыс
арналған әдістемелік
рсетілетін қызмет
оқыту әдістемесі
Мектепке дейінгі
Қазақ әдебиеті
бағалаудың тапсырмалары
Инклюзивті білім
Қысқа мерзімді
білім берудің
пәнінен тоқсанға
тақырыптық жоспар
қызмет стандарты
туралы жалпы
атындағы жалпы
пайда болуы
әдістемелік ұсыныстар
Жұмыс бағдарламасы
қарым қатынас
емтихан сұрақтары
пәнінен тоқсан