Hướng dẫn can you code games with python? - bạn có thể viết mã trò chơi bằng python không?

Hướng dẫn phát triển trò chơi Python

Tạo các trò chơi máy tính của riêng bạn trong Python là một cách tuyệt vời để học ngôn ngữ.

Để xây dựng một trò chơi, bạn sẽ cần sử dụng nhiều kỹ năng lập trình cốt lõi. Các loại kỹ năng mà bạn sẽ thấy trong lập trình trong thế giới thực. Trong phát triển trò chơi, bạn sẽ sử dụng các biến, vòng lặp, câu lệnh có điều kiện, chức năng, lập trình hướng đối tượng và cả một loạt các kỹ thuật lập trình và thuật toán.

Như một lợi thế, bạn sẽ có sự hài lòng khi chơi trò chơi mà bạn vừa tạo ra!

Trong hệ sinh thái Python, bạn sẽ tìm thấy một bộ công cụ, thư viện và khung phong phú sẽ giúp bạn tạo trò chơi của mình một cách nhanh chóng. Các bài viết, hướng dẫn và các khóa học trong phần này sẽ cho bạn thấy con đường để tăng tốc với việc xây dựng các trò chơi của riêng bạn ở Python.

Lập trình trò chơi với Python

Bạn có thể viết toàn bộ trò chơi bằng Python bằng pygame. Xem danh sách các Pythongamel Libraries khác được duy trì trong wiki này hoặc danh sách này được duy trì trên DevMaster.net. Một hướng dẫn đầy đủ có thể được tìm thấy trong cuốn sách miễn phí "Làm các trò chơi với Python & Pygame".

Nếu bạn có một trò chơi hiện có và muốn thêm một công cụ kịch bản để làm cho nó linh hoạt hơn, Python cũng là một lựa chọn rất tốt. Nhưng bạn sẽ phải tìm hiểu về việc tích hợp ngôn ngữ trị liệu.

Trang web

Pygame - Hướng dẫn đầy đủ - Một hướng dẫn hoàn chỉnh của Pygame dạy nó từ đầu. Một số dự án trò chơi cũng có sẵn với các giải thích từng bước và nguồn.

Python humongous cho một nghiên cứu trường hợp năm 2002 về pygame.

Pygame RPG Series - Một loạt các hướng dẫn ngắn trong quá trình trong đó một trò chơi theo kiểu RPG hoàn chỉnh được tạo bằng pygame.

Hướng dẫn lập trình Pygame là một phần tổng hợp của một vài hướng dẫn ngắn cho pygame.

Phát triển trò chơi với pygame là một hướng dẫn là phần giới thiệu về pygame. Cũng chứa các hướng dẫn về cách thực hiện một số trò chơi cơ bản trong pygame.

Nếu bạn quan tâm đến việc học cách sử dụng pygame để tạo trò chơi 3D, hai trang web dành riêng cho 3D Python là Python 3D (py3d.org) và phần mềm Python 3D. Bạn có thể tìm thấy một số dự án trò chơi 3D có sẵn ở đây.

Pyweek là một trang web thử thách lập trình hai năm một lần sản xuất một số trò chơi tuyệt vời.

Sách

Ngoài ra còn có một số cuốn sách cụ thể bao gồm lập trình trò chơi trong Python:

http://inventwithpython.com

  • "Phát minh ra các trò chơi máy tính của riêng bạn với Python" là một cuốn sách miễn phí, được cấp phép Creative Commons về Python cho những người mới bắt đầu hoàn chỉnh mà không có lập trình kinh nghiệm. Mỗi chương có mã nguồn cho một trò chơi nhỏ như Tic Tac Toe, Hangman, Reversi và các trò chơi khác. Các chương cuối cùng cung cấp một giới thiệu về pygame.

http://inventwithpython.com/pygame

  • "Làm các trò chơi với Python & Pygame" cũng là một cuốn sách được cấp phép miễn phí, sáng tạo, giả định một lượng nhỏ kinh nghiệm lập trình Python. Nó đi vào chi tiết hơn với thư viện pygame. Có mã nguồn cho các trò chơi như Tetris, Connect Four, Simon, Sokoban và các trò chơi khác.

http://www.handysoftware.com/cpif

  • "Tác giả đã đặt ra để viết một cuốn sách như cuốn sách mà anh ấy đã sử dụng để dạy mình lập trình ở tuổi 12. ... Cuốn sách này đã được sử dụng thành công bởi các gia đình học tại nhà và giáo viên trường công." Thư viện và mã ví dụ được cung cấp với cuốn sách cũng có sẵn để tải xuống.

http://eu.wiley.com/wileycda/wileytitle/productcd-0470068221.html

  • "Bao giờ muốn phát triển trò chơi máy tính của riêng bạn? Tìm hiểu các khái niệm thực tế về lập trình hướng đối tượng để thiết kế trò chơi bằng cách sử dụng Python trong hướng dẫn đầy đủ, dễ thực hiện này. Cho dù bạn là sinh viên, nhà phát triển trò chơi đầy tham vọng hay kỳ cựu Lập trình viên, bạn sẽ đạt được các kỹ năng khi bạn tiến bộ từ trạm này sang trạm khác trong một loạt các hướng dẫn rõ ràng về các phong cách trò chơi khác nhau. Điểm dừng cuối cùng sẽ là một chương trình trò chơi hoàn thành để bạn thể hiện. "

Hôm nay, chúng tôi sẽ học cách viết mã một số trò chơi dễ dàng trong Python bằng một vài mô -đun Python phổ biến.

Tại sao chúng ta sử dụng Python?

Python là một ngôn ngữ lập trình nổi tiếng. Python rất dễ hiểu và mã. Nó được cho là thân thiện với nhà phát triển. Bất kỳ người mới bắt đầu nào cũng có thể học cách viết mã trong Python trong một khoảng thời gian ngắn.

Một số tính năng thú vị nhất của ngôn ngữ này như sau:

  • Python là nguồn mở và miễn phí
  • Di động và năng động
  • Siêu dễ hiểu, v.v.

Tạo các trò chơi dễ dàng trong Python

Bây giờ, hãy thực hiện một số trò chơi dễ dàng trong Python mà bạn có thể xây dựng như một người mới bắt đầu để có được một đầu trong đường cong học tập của bạn!

1. Một trò chơi đố trong Python

Đây là một trò chơi dựa trên văn bản rất đơn giản trong Python. Đó là một câu đố nhỏ mà bạn cũng có thể tự làm hoặc bạn bè của bạn. Chúng tôi không cần nhập bất kỳ mô -đun nào cho trò chơi này giúp nó dễ dàng hơn! Tự mình thử 😉

Đây là sử dụng:

  • Tuyên bố IF-Else-để kiểm tra câu trả lời
  • Tuyên bố in - để in đầu ra

print('Welcome to AskPython Quiz')
answer=input('Are you ready to play the Quiz ? (yes/no) :')
score=0
total_questions=3

if answer.lower()=='yes':
    answer=input('Question 1: What is your Favourite programming language?')
    if answer.lower()=='python':
        score += 1
        print('correct')
    else:
        print('Wrong Answer :(')


    answer=input('Question 2: Do you follow any author on AskPython? ')
    if answer.lower()=='yes':
        score += 1
        print('correct')
    else:
        print('Wrong Answer :(')

    answer=input('Question 3: What is the name of your favourite website for learning Python?')
    if answer.lower()=='askpython':
        score += 1
        print('correct')
    else:
        print('Wrong Answer :(')

print('Thankyou for Playing this small quiz game, you attempted',score,"questions correctly!")
mark=(score/total_questions)*100
print('Marks obtained:',mark)
print('BYE!')

Output:

Welcome to AskPython Quiz
Are you ready to play the Quiz ? (yes/no) :yes
Question 1: What is your Favourite programming language?python
correct
Question 2: Do you follow any author on AskPython? yes
correct
Question 3: What is the name of your favourite website for learning Python?askpython
correct
Thankyou for Playing this small quiz game, you attempted 3 questions correctly!
Marks obtained: 100.0
BYE!


2. Trò chơi Pong trong Python

Hầu hết chúng ta đã nghe nói về trò chơi Pong nổi tiếng. Nhiều người trong chúng ta thích chơi nó. Hôm nay hãy tìm hiểu cách viết mã trò chơi cổ điển này bằng ngôn ngữ lập trình Python!

Trước khi bắt đầu với phần mã hóa, trước tiên chúng tôi cần cài đặt mô -đun rùa. Mô -đun rùa & nbsp; là thư viện A & NBSP; Python & NBSP; cho phép người dùng tạo hình ảnh và hình dạng bằng cách cung cấp cho chúng một bức tranh ảo.turtle module is a Python library that enables users to create pictures and shapes by providing them with a virtual canvas.

Nếu bạn không có nó, bạn có thể cài đặt thư viện bằng PIP.

C:\Users\Admin>pip install turtle

Đọc thêm về Thư viện Rùa trong tài liệu chính thức của họ.

Hãy tự mình thử mã!

import turtle as t
playerAscore=0
playerBscore=0
 
#create a window and declare a variable called window and call the screen()
window=t.Screen()
window.title("The Pong Game")
window.bgcolor("green")
window.setup(width=800,height=600)
window.tracer(0)
 
#Creating the left paddle
leftpaddle=t.Turtle()
leftpaddle.speed(0)
leftpaddle.shape("square")
leftpaddle.color("white")
leftpaddle.shapesize(stretch_wid=5,stretch_len=1)
leftpaddle.penup()
leftpaddle.goto(-350,0)
 
#Creating the right paddle
rightpaddle=t.Turtle()
rightpaddle.speed(0)
rightpaddle.shape("square")
rightpaddle.color("white")
rightpaddle.shapesize(stretch_wid=5,stretch_len=1)
rightpaddle.penup()
rightpaddle.goto(-350,0)
 
#Code for creating the ball
ball=t.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("red")
ball.penup()
ball.goto(5,5)
ballxdirection=0.2
ballydirection=0.2
 
#Code for creating pen for scorecard update
pen=t.Turtle()
pen.speed(0)
pen.color("Blue")
pen.penup()
pen.hideturtle()
pen.goto(0,260)
pen.write("score",align="center",font=('Arial',24,'normal'))
 
#code for moving the leftpaddle
def leftpaddleup():
    y=leftpaddle.ycor()
    y=y+90
    leftpaddle.sety(y)
 
def leftpaddledown():
    y=leftpaddle.ycor()
    y=y+90
    leftpaddle.sety(y)
 
#code for moving the rightpaddle
def rightpaddleup():
    y=rightpaddle.ycor()
    y=y+90
    rightpaddle.sety(y)
 
def rightpaddledown():
    y=rightpaddle.ycor()
    y=y+90
    rightpaddle.sety(y)
 
#Assign keys to play
window.listen()
window.onkeypress(leftpaddleup,'w')
window.onkeypress(leftpaddledown,'s')
window.onkeypress(rightpaddleup,'Up')
window.onkeypress(rightpaddledown,'Down')
 
while True:
    window.update()
 
    #moving the ball
    ball.setx(ball.xcor()+ballxdirection)
    ball.sety(ball.ycor()+ballxdirection)
 
    #border set up
    if ball.ycor()>290:
        ball.sety(290)
        ballydirection=ballydirection*-1
    if ball.ycor()<-290:
        ball.sety(-290)
        ballydirection=ballydirection*-1
         
    if ball.xcor() > 390:
        ball.goto(0,0)
        ball_dx = ball_dx * -1
        player_a_score = player_a_score + 1
        pen.clear()
        pen.write("Player A: {}                    Player B: {} ".format(player_a_score,player_b_score),align="center",font=('Monaco',24,"normal"))
        os.system("afplay wallhit.wav&")
 
 
 
    if(ball.xcor()) < -390: # Left width paddle Border
        ball.goto(0,0)
        ball_dx = ball_dx * -1
        player_b_score = player_b_score + 1
        pen.clear()
        pen.write("Player A: {}                    Player B: {} ".format(player_a_score,player_b_score),align="center",font=('Monaco',24,"normal"))
        os.system("afplay wallhit.wav&")
 
     # Handling the collisions with paddles.
 
    if(ball.xcor() > 340) and (ball.xcor() < 350) and (ball.ycor() < rightpaddle.ycor() + 40 and ball.ycor() > rightpaddle.ycor() - 40):
        ball.setx(340)
        ball_dx = ball_dx * -1
        os.system("afplay paddle.wav&")
 
    if(ball.xcor() < -340) and (ball.xcor() > -350) and (ball.ycor() < leftpaddle.ycor() + 40 and ball.ycor() > leftpaddle.ycor() - 40):
        ball.setx(-340)
        ball_dx = ball_dx * -1
        os.system("afplay paddle.wav&")

Output:

Hướng dẫn can you code games with python? - bạn có thể viết mã trò chơi bằng python không?
Trò chơi Pong


3. Trò chơi rắn đói ở Python

Đây là hầu hết các trò chơi yêu thích của chúng tôi khi chúng tôi còn là những đứa trẻ. Chúng ta thực sự có thể mã hóa trò chơi này trong Python bằng cách nhập chỉ hai mô -đun! Thật tuyệt làm sao!

Bắt đầu nào!

Thứ nhất, chúng ta cần lắp đặt rùa. Nếu bạn không có nó đã được cài đặt, hãy mở CMD của bạn và nhập lệnh sau.

C:\Users\Admin>pip install turtle

Bây giờ chúng tôi sẽ cài đặt mô -đun ngẫu nhiên. Mô -đun ngẫu nhiên được sử dụng để tạo số ngẫu nhiên. Trong loại CMD của bạn trong lệnh sau.

C:\Users\Admin>pip install random2

Mã và tự mình thử và thưởng thức trò chơi!

import turtle
import random

w = 500
h = 500
food_size = 10
delay = 100 

offsets = {
    "up": (0, 20),
    "down": (0, -20),
    "left": (-20, 0),
    "right": (20, 0)
}

def reset():
    global snake, snake_dir, food_position, pen
    snake = [[0, 0], [0, 20], [0, 40], [0, 60], [0, 80]]
    snake_dir = "up"
    food_position = get_random_food_position()
    food.goto(food_position)
    move_snake()
    
def move_snake():
    global snake_dir

    new_head = snake[-1].copy()
    new_head[0] = snake[-1][0] + offsets[snake_dir][0]
    new_head[1] = snake[-1][1] + offsets[snake_dir][1]

    
    if new_head in snake[:-1]:
        reset()
    else:
        snake.append(new_head)

    
        if not food_collision():
            snake.pop(0)


        if snake[-1][0] > w / 2:
            snake[-1][0] -= w
        elif snake[-1][0] < - w / 2:
            snake[-1][0] += w
        elif snake[-1][1] > h / 2:
            snake[-1][1] -= h
        elif snake[-1][1] < -h / 2:
            snake[-1][1] += h


        pen.clearstamps()

        
        for segment in snake:
            pen.goto(segment[0], segment[1])
            pen.stamp()

        
        screen.update()

        turtle.ontimer(move_snake, delay)

def food_collision():
    global food_position
    if get_distance(snake[-1], food_position) < 20:
        food_position = get_random_food_position()
        food.goto(food_position)
        return True
    return False

def get_random_food_position():
    x = random.randint(- w / 2 + food_size, w / 2 - food_size)
    y = random.randint(- h / 2 + food_size, h / 2 - food_size)
    return (x, y)

def get_distance(pos1, pos2):
    x1, y1 = pos1
    x2, y2 = pos2
    distance = ((y2 - y1) ** 2 + (x2 - x1) ** 2) ** 0.5
    return distance
def go_up():
    global snake_dir
    if snake_dir != "down":
        snake_dir = "up"

def go_right():
    global snake_dir
    if snake_dir != "left":
        snake_dir = "right"

def go_down():
    global snake_dir
    if snake_dir!= "up":
        snake_dir = "down"

def go_left():
    global snake_dir
    if snake_dir != "right":
        snake_dir = "left"


screen = turtle.Screen()
screen.setup(w, h)
screen.title("Snake")
screen.bgcolor("blue")
screen.setup(500, 500)
screen.tracer(0)


pen = turtle.Turtle("square")
pen.penup()


food = turtle.Turtle()
food.shape("square")
food.color("yellow")
food.shapesize(food_size / 20)
food.penup()


screen.listen()
screen.onkey(go_up, "Up")
screen.onkey(go_right, "Right")
screen.onkey(go_down, "Down")
screen.onkey(go_left, "Left")


reset()
turtle.done()

Output:

Hướng dẫn can you code games with python? - bạn có thể viết mã trò chơi bằng python không?

Sự kết luận

Và đó là nó! Đây là một số trò chơi dễ dàng trong Python mà bạn có thể tạo như một người mới bắt đầu và có một số niềm vui! Chúng tôi thích xây dựng các dự án này và chúng tôi hy vọng bạn cũng vậy!

Bạn có thể viết mã loại trò chơi nào với Python?

Bạn có thể sử dụng Python để tạo các trò chơi arcade, trò chơi phiêu lưu và trò chơi giải đố mà bạn có thể triển khai trong vòng vài giờ. Bạn cũng có thể mã hóa các trò chơi cổ điển, chẳng hạn như Hangman, Tic-Tac-Toe, Kéo giấy đá và nhiều hơn nữa với các kỹ năng lập trình mới có được của bạn.arcade games, adventure games, and puzzle games that you can deploy within a few hours. You can also code classic games, such as hangman, tic-tac-toe, rock paper scissors, and more with your newly acquired programming skills.

Có trò chơi nào được viết bằng Python không?

Trò chơi video Toontown Online của Disney được viết bằng Python và sử dụng Panda3D cho đồ họa.Eve Online sử dụng Python không chồng.Mount & Blade được viết bằng Python.Cướp biển Caribbean trực tuyến được viết bằng Python và sử dụng panda3d cho đồ họa.Disney's Toontown Online is written in Python and uses Panda3D for graphics. Eve Online uses Stackless Python. Mount & Blade is written in Python. Pirates of the Caribbean Online is written in Python and uses Panda3D for graphics.

Là Python hay C ++ tốt hơn để phát triển trò chơi?

C ++ là người chiến thắng rõ ràng ở đây.Nó khó học hơn Python, nhưng tiềm năng của nó trong phát triển trò chơi là vô song.C ++ là: Nhanh hơn nhiều so với Python, dễ bị trễ khi phải đối mặt với tải máy chủ nặng của một trò chơi video. here. It's harder to learn than Python, but its potential in game development is unmatched. C++ is: Much faster than Python, which is prone to lag when faced with the heavy server load of a video game.

Là Python hay C# tốt hơn để phát triển trò chơi?

Hơn nữa, Python là một ngôn ngữ được giải thích động, trong khi C# là một ngôn ngữ được biên dịch tĩnh.Điều đó có nghĩa là phần mềm C# sẽ vượt trội hơn Python trong các ứng dụng như động cơ phát triển trò chơi nhưng sẽ không đánh bại thời gian phát triển nhanh của Python.C# software will outperform Python in applications such as game development engines but won't beat Python's fast development time.