1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo môn học đồ họa máy tính đê ti game flappy bird

15 136 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Môn Học Đồ Họa Máy Tính Đề Tài Game Flappy Bird
Tác giả Giang Ứng Hưng, Phạm Hải Nam, Nguyễn Đức Huy
Người hướng dẫn Ngô Ngọc Thịnh
Trường học Trường Đại học Điện Lực
Chuyên ngành Công nghệ Thông tin
Thể loại Báo cáo môn học
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 15
Dung lượng 0,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC ĐỒ HỌA MÁY TÍNH ĐÊ TI: GAME FLAPPY BIRD Sinh viên thực hiện : GIANG ỨNG HÙNG PHẠM HAI NAM NGUYỄN ĐỨC HUY Giảng viên hướ

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC

ĐỒ HỌA MÁY TÍNH

ĐÊ TI:

GAME FLAPPY BIRD

Sinh viên thực hiện : GIANG ỨNG HÙNG

  PHẠM HAI NAM   NGUYỄN ĐỨC HUY Giảng viên hướng dẫn : NGÔ NGỌC THNH Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MÊM

Khóa : 2019 - 2023

 Hà Nội, tháng 4 năm 2022

Trang 2

PHIẾU CHẤM ĐIỂM Sinh viên thực hiện:

STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký

1 GIANG ỨNG HÙNG

2 PHẠM HAI NAM

3 NGUYỄN ĐỨC HUY

Giảng viên chấm:

Họ và tên Chữ ký Ghi chú Giảng viên chấm 1 :

Giảng viên chấm 2 :

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU 4

I Giới thiệu về công nghệ phát triển game pygame 5

Tạo cửa sổ game 5

Vòng lặp game 6

Sự kiện 7

Vẽ vài thứ lên màn hình 8

II Code game Flappy Bird với python 10

1 Các hàm trong game 10

Tạo cửa sổ game và vẽ nền cho game 10

Tạo cột và chuyển động của cột 12

2.Kết quả thực nghiệm 13

KẾT LUẬN 15

Trang 4

LỜI MỞ ĐẦU

 Như chúng ta đã thấy trong những năm gần đây sự phát triển vượt bậc về công nghệ đồ họa đã mang lại cho con người chúng ta vô vàn sự tiện nghi, những trải nghiệm mới mẻ, chân thực

Vậy đồ họa máy tính là gì : Đồ họa máy tính là phương pháp và công nghệ dùng trong việc chuyển đổi qua lại giữa dữ liệu và hình ảnh bằng máy tính Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về ở toán học, các thuật toán cũng như các kĩ thuật để cho phép tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính Đồ họa máy tính có liên quan ít nhiều đến một số lĩnh vực như đại số, hình học giải tích, hình học họa hình, quang học, và kĩ thuật máy tính, đặc biệt là chế tạo phần cứng (các loại màn hình, các thiết bị xuất, nhập, các vỉ mạch đồ họa )

Là sinh viên khoa Công nghệ thông tin trường Đại học Điện Lực Chúng em cũng được tiếp xúc với môn học đồ họa máy tính Với những kiến thức em đã được học chúng em đã thực hiện đề tài “ GAME FLAPPY BIRD” Trong quá trình thực hiện nghiên cứu chúng em đã sử dụng thư viện đồ họa openGL đang được sử dụng rộng rãi hiện nay

Có lẽ rằng chương trình và báo cáo của chúng em chưa được chuyên nghiệp, hoàn chỉnh nhất, còn có những thiếu xót Vì thế em rất mong thầy cô và các bạn có thể góp ý để nhóm em xây dựng đề đạt kết quả tốt nhất có thể

Trang 5

I Giới thiệu về công nghệ phát triển game pygame

- Pygame là một bộ mô-đun Python đa nền tảng được thiết kế để viết trò chơi điện tử Nó bao gồm đồ hoạ máy tính và thư viện âm thanh được thiết kế để sử dụng với ngôn ngữ lập trình Python

Tạo cửa sổ game

import pygame ,  sys

from pygame locals import *

pygame init ()

DISPLAYSURF = pygame display set_mode (( 400 ,  300 ))

pygame display set_caption ( ' Hello world! '

while True :

  for event in pygame event get ():

  if event type == QUIT :

  pygame quit ()

  sys exit ()

Đây là kết quả có được:

Trang 6

DISPLAYSURF = pygame display set_mode (( 400 ,  300 ))

Dòng này dùng để tạo cửa sổ game Hai số trong tuple (400, 300) chính là chiều rộng và chiều cao của cửa sổ Đơn vị độ dài hay toạ độ của đối tượng trong  pygame là pixel DISPLAYSURF là 1 biến dạng surface Surface là gì thì mình sẽ giải thích kĩ ở phần sau nhe Bây giờ các bạn cứ hiểu đơn giản DISPLAYSURF là cái khung đen đen ấy là được

pygame display set_caption ( ' Hello world! '

Dòng trên dùng để tạo cái tiêu đề

while True :

  for event in pygame event get ():

  if event type == QUIT :

  pygame quit ()

  sys exit ()

Vòng lặp game

Để nói cho dễ hiểu thì các chuyển động trong game cũng giống như trong phim hoạt hình Tức là để tạo ra các chuyển động thì người ta sẽ “phát” liên tục các hình ảnh Trong game cũng tương tự thế Vì vậy, chúng ta cần có một vòng lặp để “vẽ” liên tục những hình ảnh Vòng lặp while trong đoạn code trên chính là vòng lặp game

Ví dụ, muốn cho một viên bi màu xanh chuyển động từ trái sang phải, phía sau là một nền đỏ thì phải làm như sau:

o Vẽ nền đỏ, vẽ viên bi

o Thay đổi vị trí viên bi (cho sang phải một tí) Lặp lại bước đầu tiên

Trang 7

Trong vòng lặp game còn một phần quan trọng nữa là bắt “sự kiện” Tiếp theo chúng ta sẽ tìm hiểu về sự kiện nhé!

Sự kiện

Sự kiện trong game có thể là một cái click chuột, ấn phím…

Bây giờ cùng xem lại đoạn code này:

for event in pygame event get ():

  if event type == QUIT :

  pygame quit ()

  sys exit ()

Dòng code này có tác dụng: Khi click vào nút X trên cửa sổ thì kết thúc game và đóng cửa sổ lại Dùng biến event trong vòng for để lấy các sự kiện xảy ra Dòng if 

để kiểm tra sự kiện có phải là “click nút X” hay không Hai dòng cuối dùng để đóng chương trình

Quay lại ví dụ về viên bi lúc nãy, nếu muốn khi ấn phím space thì viên bi nhảy lên thì phải bắt sự kiện ấn phím space, sau đó code để xử lý cho viên bi nhảy lên Trong lập trình game có rất nhiều sự kiện khác nhau, mình sẽ dành một phần riêng

để nói về các sự kiện thường gặp

Trang 8

Vậy là chúng ta vừa tìm hiểu xong đoạn code đầu tiên Nếu các bạn vẫn chưa hiểu thì cũng đừng quá lo lắng, hồi xưa mình cũng vậy thôi Hãy đọc lại, tìm hiểu thêm trên google, hoặc cũng có thể liên hệ với mình nhe!

Vẽ vài thứ lên màn hình

 Như đã tìm hiểu về vòng lặp game, những lệnh vẽ sẽ nằm trong vòng lặp game  Nào, bây giờ chúng ta hãy thử tô lên cửa sổ một cái nền màu trắng và vẽ một hình chữ nhật màu đỏ nha!

import pygame ,  sys

from pygame locals import *

pygame init ()

DISPLAYSURF = pygame display set_mode (( 400 ,  300 ))

pygame display set_caption ( ' Hello world! '

while True :

  for event in pygame event get ():

  if event type == QUIT :

  pygame quit ()

  sys exit ()

 

DISPLAYSURF fill (( 255 ,  255 , 255 ))   pygame draw rect ( DISPLAYSURF , ( 255 ,  0  0 ),   ( 100 ,  80 ,

150 ,  50 ))

  pygame display update ()

Trang 9

Đây là kết quả nhận được:

Trang 10

II Code game Flappy Bird với python

1. Các hàm trong game Tạo cửa sổ game và vẽ nền cho game gravity = 0.25  # giả lập trọng lực

bird_movement = 0

game_active = False

score = 

high_score = 

# chèn background 

bg = pygame image load (

assets/background-night.png ' ) convert ()

bg = pygame transform scale2x ( bg )

# chèn sàn

floor = pygame image load ( ' assets/floor.png ' ) convert () floor = pygame transform scale2x ( floor )

floor_x_pos = 0

# tạo chim

bird_down = pygame transform scale2x ( pygame image load (   ' assets/yellowbird-downflap.png ' ) convert_alpha ()) bird_mid = pygame transform scale2x ( pygame image load (   ' assets/yellowbird-midflap.png ' ) convert_alpha ()) bird_up = pygame transform scale2x ( pygame image load (   ' assets/yellowbird-upflap.png ' ) convert_alpha ()) bird_list =  [ bird_down ,  bird_mid ,  bird_up ]   # 0 1 2

bird_index = 

bird = bird_list [ bird_index ]

#bird=

pygame.image.load('assets/yellowbird- midflap.png').convert_alpha()

#bird = pygame.transform.scale2x(bird)

bird_rect = bird get_rect (center = 100 , 384 ))

# tạo timer cho bird 

birdflap = pygame USEREVENT   1

pygame time set_timer ( birdflap , 200 )

Trang 11

# tạo ống

pipe_surface = pygame image load (

assets/pipe-green.png ' ) convert ()

pipe_surface = pygame transform scale2x ( pipe_surface )

pipe_list =  []

# tạo timer

spawnpipe = pygame USEREVENT

pygame time set_timer ( spawnpipe ,  1200 )

pipe_height = [ 300 ,  400 ,  500 ]

# Tạo màn hình kết thúc

game_over_surface = pygame transform scale2x (

  pygame image load ( ' assets/message.png ' ) convert_alpha ()) game_over_rect = game_over_surface get_rect (center = 216 ,

384 ))

# Chèn âm thanh

flap_sound = pygame mixer Sound ( ' sound/sfx_wing.wav ' )

hit_sound = pygame mixer Sound ( sound/sfx_hit.wav ' )

score_sound = pygame mixer Sound ( sound/sfx_point.wav '

score_sound_countdown = 100

Tạo con chim và vẽ lên cửa sổ 

# tạo chim

bird_down = pygame transform scale2x ( pygame image load (   ' assets/yellowbird-downflap.png ' ) convert_alpha ())

bird_mid = pygame transform scale2x ( pygame image load (

  ' assets/yellowbird-midflap.png ' ) convert_alpha ())

bird_up = pygame transform scale2x ( pygame image load (

  ' assets/yellowbird-upflap.png ' ) convert_alpha ())

bird_list =  [ bird_down ,  bird_mid ,  bird_up ]   # 0 1 2

bird_index = 

bird = bird_list [ bird_index ]

Chuyển động rơi tự do của chim

 bird_movement += gravity #tăng trọng lực khi chim di chuyển

Trang 12

if event key == pygame K_SPACE and game_active :

-  flap_sound play ()   #nhạc game

Dòng if được thêm vào khá đơn giản Khi trò chơi bắt đầu nhấn phím space thì chim sẽ bay lên

if event key == pygame K_SPACE and game_active == False :

  pipe_list clear ()

  bird_rect center    ( 100 ,  384 )

Tạo cột và chuyển động của cột

Tạo cột

pipe_surface = pygame image load (

assets/pipe-green.png ' ) convert ()

pipe_surface = pygame transform scale2x ( pipe_surface )

Trang 13

pipe_list =  []

Hàm draw của cột

def draw_pipe ( pipes ) :

  for pipe in  pipes:

  if pipe bottom >= 600 :

  screen blit ( pipe_surface ,  pipe )

  else :

  flip_pipe = pygame transform flip ( pipe_surface , False ,  True )

  screen blit ( flip_pipe ,  pipe )

2.Kết quả thực nghiệm

- Giao diện khởi động

Trang 14

Giao diện khi chơi

Trang 15

KẾT LUẬN Qua việc thực hiện nghiên cứu đề tài “Game flappy bird ” Nhóm chúng em đã được biết thêm rất nhiều về môn Đồ họa máy tính Bên cạnh đó, việc làm nghiên cứu giúp chúng em đoàn kết hơn, rèn luyện cho chúng em kỹ năng làm việc nhóm

Trong quá trình thực hiện đề tài có rất nhiều ý tưởng hay, độc đáo Nhưng do kiến thức của chúng em hạn hẹp và thời gian không cho phép nên chúng em chưa thể thực hiện được những ý tưởng đó Tuy nhiên chúng em đã cố gắng để xây dựng một chương trình hoàn chỉnh nhất, đẹp nhất Trong quá trình xây dựng chương trình nhóm chúng em khó tránh khỏi những sai sót Vì vậy em rất mong rằng thầy và các bạn cùng góp ý với nhóm em để có thể hòa thành sản phẩm một cách hoàn trỉnh nhất

Ngày đăng: 17/05/2023, 18:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w