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

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

Đ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

  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 : 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 Lớp : D14CNPM3 Khóa : 2019 - 2023  Hà Nội, tháng năm 2022   PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: STT Họ tên sinh viên GIANG ỨNG HÙNG PHẠM HAI NAM NGUYỄN ĐỨC HUY Nội dung thực Điểm Chữ ký Giảng viên chấm: Họ tên Giảng viên chấm : Giảng viên chấm : Chữ ký Ghi   MỤC LỤC LỜI MỞ ĐẦU I Giới thiệu công nghệ phát triển game pygame .5 Tạo cửa sổ game Vòng lặp game Sự kiện .7 Vẽ vài thứ lên hình II Code game Flappy Bird với python 10 Các hàm game .10 Tạo cửa sổ game vẽ cho game 10 Tạo cột chuyển động cột 12 2.Kết thực nghiệm 13 KẾT LUẬN 15   LỜI MỞ ĐẦU  Như thấy năm gần phát triển vượt bậc công nghệ đồ họa mang lại cho người tiện nghi, trải nghiệm mẻ, chân thực Vậy đồ họa máy tính : Đồ họa máy tính phương pháp công nghệ dùng việc chuyển đổi qua lại liệu hình ảnh bằng máy tính Đồ họa máy tính lĩnh vực khoa học máy tính nghiên cứu tốn học, thuật toán kĩ thuật phép tạo, hiển thị điều khiển hình ảnh hình máy tính Đồ họa máy tính có liên quan nhiều đến số lĩnh vực đại số, hình học giải tích, hình học họa hình, quang học, kĩ thuật máy tính, đặc biệt chế tạo phần cứng (các loại hình, thiết bị xuất, nhập, 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 tiếp xúc với môn học đồ họa máy tính Với kiến thức em học chúng em thực đề tài “ GAME FLAPPY BIRD” Trong trình thực nghiên cứu chúng em sử dụng thư viện đồ họa openGL sử dụng rộng rãi Có lẽ chương trình báo cáo chúng em chưa chun nghiệp, hồn chỉnh nhất, cịn có thiếu xót Vì em mong thầy bạn góp ý để nhóm em xây dựng đề đạt kết tốt   I Giới thiệu công nghệ phát triển game pygame - Pygame mô-đun Python đa tảng thiết kế để viết trị chơi điện tử Nó bao gồm đồ hoạ máy tính thư viện âm 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 kết có được:   DISPLAYSURF = pygame.display.set_mode((400, 300)) Dòng dùng để tạo cửa sổ game Hai số tuple (400, 300) chiều rộng chiều cao cửa sổ Đơn vị độ dài hay toạ độ đối tượng  pygame pixel DISPLAYSURF biến dạng surface Surface giải thích kĩ phần sau nhe Bây bạn hiểu đơn giản DISPLAYSURF khung đen đen pygame.display.set_caption('Hello world!') Dòng dùng để tạo 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 chuyển động game giống phim hoạt hình Tức để tạo chuyển động người ta “phát” liên tục hình ảnh Trong game tương tự Vì vậy, cần có vịng lặp để “vẽ” liên tục hình ảnh Vịng lặp while đoạn code vịng lặp game Ví dụ, muốn cho viên bi màu xanh chuyển động từ trái sang phải, phía sau đỏ phải làm sau: o o o Vẽ đỏ, vẽ viên bi Thay đổi vị trí viên bi (cho sang phải tí) Lặp lại bước   Trong vòng lặp game phần quan trọng bắt “sự kiện” Tiếp theo tìm hiểu về sự kiện nhé! Sự kiện Sự kiện game click chuột, ấn phím… Bây 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 có tác dụng: Khi click vào nút X cửa sổ kết thúc game đóng cửa sổ lại Dùng biến event vòng for để lấy kiện xảy Dòng if  để kiểm tra kiện có phải “click nút X” hay khơng Hai dịng cuối dùng để đóng chương trình Quay lại ví dụ viên bi lúc nãy, muốn ấn phím space thì viên bi nhảy lên phải bắt 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ó nhiều kiện khác nhau, dành phần riêng để nói kiện thường gặp   Vậy vừa tìm hiểu xong đoạn code Nếu bạn chưa hiểu đừng lo lắng, hồi xưa thơi Hãy đọc lại, tìm hiểu thêm google, liên hệ với nhe! Vẽ vài thứ lên hình  Như tìm hiểu vịng lặp game, lệnh vẽ nằm vòng lặp game  Nào, thử tô lên cửa sổ màu trắng vẽ 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()   Đây kết nhận được:   II Code game Flappy Bird với python Các hàm game Tạo cửa sổ game vẽ cho game gravity = 0.25  # giả lập trọng lực bird_movement = 0 game_active = False score = 0 high_score = 0 # chèn background  bg = pygame.image.load('assets/backgroundnight.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]  # bird_index = 0 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)   # tạo ống pipe_surface = pygame.image.load('assets/pipegreen.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 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 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 chim 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]  # bird_index = 0 bird = bird_list[bird_index] Chuyển động rơi tự chim  bird_movement += gravity #tăng trọng lực chim di chuyển   if event.key == pygame.K_SPACE and game_active:   bird_movement = 0   bird_movement = -7   flap_sound.play() #nhạc game Dòng if thêm vào đơn giản Khi trò chơi bắt đầu nhấn phím space chim bay lên if event.key == pygame.K_SPACE and game_active == False:   game_active = True   pipe_list.clear()   bird_rect.center = (100, 384)   bird_movement = 0   score = 0 Tạo cột chuyển động cột Tạo cột pipe_surface = pygame.image.load('assets/pipegreen.png').convert() pipe_surface = pygame.transform.scale2x(pipe_surface)   pipe_list = [] Hàm draw 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 thực nghiệm Giao diện khởi động   Giao diện chơi   KẾT LUẬN Qua việc thực nghiên cứu đề tài “Game flappy bird ” Nhóm chúng em biết thêm nhiều 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ỹ làm việc nhóm Trong q trình thực đề tài có nhiều ý tưởng hay, độc đáo Nhưng kiến thức chúng em hạn hẹp thời gian không cho phép nên chúng em chưa thể thực ý tưởng Tuy nhiên chúng em cố gắng để xây dựng chương trình hồn chỉnh nhất, đẹp Trong q trình xây dựng chương trình nhóm chúng em khó tránh khỏi sai sót Vì em mong thầy bạn góp ý với nhóm em để hịa thành sản phẩm cách hồn trỉnh

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

Tài liệu cùng người dùng

Tài liệu liên quan