Hướng dẫn how do you make a pong in python? - làm thế nào để bạn tạo một cái pong trong python?

Hướng dẫn how do you make a pong in python? - làm thế nào để bạn tạo một cái pong trong python?

Giới thiệu

Hôm nay, chúng ta sẽ tạo ra một trò chơi pong bằng rùa Python. Pong là một trò chơi máy tính nổi tiếng tương tự như bóng bàn. Hai người chơi trong trò chơi này kiểm soát hai mái chèo ở hai bên của cửa sổ trò chơi. Để đánh bóng di chuyển, họ di chuyển mái chèo lên xuống. Một người chơi điểm số tăng lên khi anh ấy hoặc cô ấy đánh bóng hoặc khi đối thủ bỏ lỡ cú đánh.

Để tạo trò chơi Python này, chúng tôi sẽ sử dụng mô -đun Rùa. Để di chuyển các mái chèo trái và phải trong trò chơi này, chúng tôi sẽ sử dụng các phím lên, xuống, W và S & NBSP; Khi một cầu thủ tấn công bóng đến mức tốc độ được xác định trước, tốc độ của quả bóng tăng, cũng như điểm số. Khi một người chơi bỏ lỡ một cú đánh, quả bóng sẽ khởi động lại từ trung tâm về phía người chơi khác, với điểm số của đối thủ tăng lên.

Bước 1. Nhập mô -đun rùa.

# Import the turtle library
import turtle

Mô -đun rùa phải được nhập khẩu trước. Mô -đun này sẽ được sử dụng để xây dựng toàn bộ trò chơi.

Bước 2. Tạo vải.

# Creating the screen with name and size
screen = turtle.Screen()
screen.title("Python Pong game by copyassignment.com ")
screen.setup(width=1000 , height=600)

Bước 3. Tạo mái chèo trái và phải.

# Creating the left paddle
paddle1 = turtle.Turtle()
#Setting its speed as zero, it moves only when key is pressed
paddle1.speed(0)
#Setting shape, color, and size
paddle1.shape("square")
paddle1.color("blue")
paddle1.shapesize(stretch_wid=6, stretch_len=2)
paddle1.penup()
#The paddle is left-centered initially
paddle1.goto(-400, 0)

# Creating the right paddle
paddle2 = turtle.Turtle()
#Setting its speed as zero, it moves only when key is pressed
paddle2.speed(0)
#Setting shape, color, and size
paddle2.shape("square")
paddle2.color("red")
paddle2.shapesize(stretch_wid=6, stretch_len=2)
paddle2.penup()
#The paddle is right-centered initially
paddle2.goto(400, 0)

Giai đoạn tiếp theo là làm mái chèo trái và phải. Chúng có hình vuông và được tập trung theo chiều dọc ở đầu trái hoặc bên phải. Tốc độ của chúng là tối thiểu. Họ chỉ di chuyển khi các phím bàn phím được đẩy.

Bước 4. Tiếp theo, chúng tôi tạo ra một quả bóng.

# Ball of circle shape
ball = turtle.Turtle()
#Setting the speed of ball to 0, it moves based on the dx and dy values
ball.speed(0)
#Setting shape, color, and size
ball.shape("circle")
ball.color("green")
ball.penup()
#Ball starts from the centre of the screen
ball.goto(0, 0)
#Setting dx and dy that decide the speed of the ball
ball.dx = 2
ball.dy = -2

Nó bây giờ là thời gian để làm bóng. Nó có hình tròn trong hình dạng và lần đầu tiên nằm ở trung tâm của màn hình. Mặc dù tốc độ của nó bằng 0, nó di chuyển theo các giá trị dx và dy. Vị trí của quả bóng được cập nhật bởi DX và DY mỗi khi vòng lặp trò chơi chính chạy, tạo ảo giác về tính di động.

Bước 5. Tạo bảng điểm và khởi tạo điểm số.

# Initializing the score of the two players
player1 = 0
player2 = 0
# Displaying the score
score = turtle.Turtle()
score.speed(0)
score.penup()
#Hiding the turtle to show text
score.hideturtle()
#Locating the scoreboard on top of the screen
score.goto(0, 260)
#Showing the score
score.write("Player1 : 0 Player2: 0", align="center", font=("Courier", 20, "bold"))

scors.write (người chơi của người chơi1: 0 người chơi2: 0, align = trung tâm

Sau đó chúng tôi đặt lại điểm số về 0. Sau đó, trên đầu màn hình, xây dựng một bảng điểm để hiển thị các điểm hiện tại. Hàm ghi () được sử dụng để hiển thị văn bản trên cửa sổ trong trường hợp này.

Bước 6. Các chức năng để di chuyển mái chèo và khớp với các phím.

# Function to move the left paddle up
def movePad1Up():
     y = paddle1.ycor() #Getting the current y-coordinated of the left paddle
     y += 15
     paddle1.sety(y) #Updating the y-coordinated of the paddle

# Function to move the left paddle down
def movePad1Down():
    y = paddle1.ycor()#Getting the current y-coordinated of the left paddle
    y -= 15
    paddle1.sety(y)#Updating the y-coordinated of the paddle

# Function to move the right paddle up
def movePad2Up():
    y = paddle2.ycor()#Getting the current y-coordinated of the right paddle
    y += 15
    paddle2.sety(y)#Updating the y-coordinated of the paddle

# Function to move the right paddle down
def movePad2Down():
   y = paddle2.ycor()#Getting the current y-coordinated of the right paddle
   y -= 15
   paddle2.sety(y)#Updating the y-coordinated of the paddle


# Matching the Keyboard buttons to the above functions=
screen.listen()
screen.onkeypress(movePad1Up, "w")
screen.onkeypress(movePad1Down, "s")
screen.onkeypress(movePad2Up, "Up")
screen.onkeypress(movePad2Down, "Down")

Bây giờ chúng tôi sẽ xây dựng các chức năng cho phép chúng tôi thay đổi mái chèo theo chiều dọc. Chúng tôi đang điều chỉnh tọa độ y của mái chèo bằng 15 đơn vị để cung cấp cho nó chuyển động. Chúng hoạt động như sau:

1. Khi bạn nhấn nút mũi tên trái trên bàn phím, hàm MovePad1up () được gọi và mái chèo bên trái di chuyển lên.

2. Khi bạn nhấn phím mũi tên bên phải trên bàn phím của mình, hàm MovePad1Down () được gọi và mái chèo bên trái trượt xuống.

3. Khi bạn nhấn nút Mũi tên lên trên bàn phím của mình, hàm MovePad2UP () được gọi và mái chèo bên phải di chuyển lên.

Bước 7. Tạo trò chơi chính.

#The main game
while True:
  #Updating the screen every time with the new changes
  screen.update()

  #Moving the ball by updating the coordinates
  ball.setx(ball.xcor()+ball.dx)
  ball.sety(ball.ycor()+ball.dy)

  # Checking if ball hits the top of the screen
  if ball.ycor() > 280:
   ball.sety(280)
   ball.dy *= -1 #Bouncing the ball

  # Checking if ball hits the bottom of the screen
  if ball.ycor() < -280:
   ball.sety(-280)
   ball.dy *= -1#Bouncing the ball

  #Checking if the ball hits the left or right walls, the player missed the hit
  if ball.xcor() > 480 or ball.xcor() < -480:
   if(ball.xcor() <-480):
    player2 += 1 #Increasing the score of right player if left player missed
   else:
    player1 += 1 #Increasing the score of left player if right player missed
   #Starting ball again from center towards the opposite direction
   ball.goto(0, 0)
   ball.dx *= -1
   ball.dy *= -1

  #Updating score in the scoreboard
  score.clear()
  score.write("Player1 : {} Player2: {}".format(player1, player2), align="center", font=("Courier", 20, "bold"))

  #Checking if the left player hit the ball
  if (ball.xcor() < -360 and ball.xcor() > -370) and (paddle1.ycor() + 50 > ball.ycor() > paddle1.ycor() - 50):
   #Increasing score of left player and updating score board
   player1 += 1
   score.clear()
   score.write("Player A: {} Player B: {}".format(player1, player2), align="center", font=("Courier", 20, "bold"))
   ball.setx(-360)

  #Increasing speed of the ball with the limit 7
  if(ball.dy>0 and ball.dy<5): #If dy is positive increasing dy
  ball.dy+=0.5
  elif(ball.dy<0 and ball.dy>-5): #else if dy is negative decreasing dy
  ball.dy-=0.5

  if(ball.dx>0 and ball.dx<5):#If dx is positive increasing dx
  ball.dx+=0.5
  elif(ball.dx<0 and ball.dx>-5): #else if dx is negative decreasing dx
  ball.dx-=0.5

  #Changing the direction of ball towards the right player
  ball.dx *=-1

  #Checking if the right player hit the ball
  if (ball.xcor() > 360 and ball.xcor() < 370) and (paddle2.ycor() + 50 > ball.ycor() > paddle2.ycor() - 50):
  #Increasing score of right player and updating scoreboard
  player2 += 1
  score.clear()
  score.write("Player A: {} Player B: {}".format(player1, player2), align="center", font=("Courier", 20, "bold"))
  ball.setx(360)

  #Increasing speed of the ball with the limit 7
  if(ball.dy>0 and ball.dy<7):#If dy is positive increasing dy
   ball.dy+=1
  elif(ball.dy<0 and ball.dy>-7):#else if dy is negative decreasing dy
   ball.dy-=1

  if(ball.dx>0 and ball.dx<7):#If dx is positive increasing dx
   ball.dx+=1
  elif(ball.dx<0 and ball.dx>-7): #else if dx is negative decreasing dx
   ball.dx-=1

  #Changing the direction of ball towards the left player
   ball.dx*=-1

Cuối cùng, chúng tôi đã đến để viết mã trò chơi cốt lõi. Chúng tôi viết nó trong một vòng lặp tiếp tục vô thời hạn cho đến khi cửa sổ được đóng lại.

  • Chúng tôi bắt đầu bằng cách cập nhật màn hình. Quả bóng sau đó được di chuyển bằng cách cập nhật tọa độ DX và DY.
  • Chúng tôi nảy bóng bằng cách thay đổi dấu hiệu của DY sau khi kiểm tra xem nó có chạm vào các bức tường trên và dưới không.
  • Chúng tôi biết rằng nếu một trong những người chơi không đánh bóng, nó sẽ bật ra khỏi các rào cản trái hoặc phải. Kết quả là, chúng tôi tìm xem quả bóng tấn công các bức tường trái hay phải. Thay đổi điểm số của đối thủ và làm mới bảng điểm.
  • Bắt đầu bóng theo hướng ngược lại từ giữa màn hình.
  • Cuối cùng, chúng tôi xem xét liệu có bất kỳ mái chèo nào đã liên lạc với bóng không. Cập nhật bảng điểm và nâng điểm số. Tăng tốc độ trong khi ở trong giới hạn tốc độ. 7 Thay đổi hướng của quả bóng DX DX, khiến nó di chuyển về phía người chơi đối phương.

Mã hoàn chỉnh để tạo một trò chơi pong bằng rùa Python

# Import required library
import turtle


# Create screen
sc = turtle.Screen()
sc.title("Pong game")
sc.bgcolor("Black")
sc.setup(width=1000, height=600)


# Left paddle
left_pad = turtle.Turtle()
left_pad.speed(0)
left_pad.shape("square")
left_pad.color("yellow")
left_pad.shapesize(stretch_wid=6, stretch_len=2)
left_pad.penup()
left_pad.goto(-400, 0)


# Right paddle
right_pad = turtle.Turtle()
right_pad.speed(0)
right_pad.shape("square")
right_pad.color("yellow")
right_pad.shapesize(stretch_wid=6, stretch_len=2)
right_pad.penup()
right_pad.goto(400, 0)


# Ball of circle shape
hit_ball = turtle.Turtle()
hit_ball.speed(40)
hit_ball.shape("circle")
hit_ball.color("pink")
hit_ball.penup()
hit_ball.goto(0, 0)
hit_ball.dx = 5
hit_ball.dy = -5


# Initialize the score
left_player = 0
right_player = 0


# Displays the score
sketch = turtle.Turtle()
sketch.speed(0)
sketch.color("blue")
sketch.penup()
sketch.hideturtle()
sketch.goto(0, 260)
sketch.write("Left_player : 0 Right_player: 0",align="center", font=("Courier", 24, "normal"))


# Functions to move paddle vertically
def paddleaup():
	y = left_pad.ycor()
	y += 20
	left_pad.sety(y)


def paddleadown():
	y = left_pad.ycor()
	y -= 20
	left_pad.sety(y)


def paddlebup():
	y = right_pad.ycor()
	y += 20
	right_pad.sety(y)


def paddlebdown():
	y = right_pad.ycor()
	y -= 20
	right_pad.sety(y)


# Keyboard bindings
sc.listen()
sc.onkeypress(paddleaup, "w")
sc.onkeypress(paddleadown, "s")
sc.onkeypress(paddlebup, "Up")
sc.onkeypress(paddlebdown, "Down")


while True:
	sc.update()

	hit_ball.setx(hit_ball.xcor()+hit_ball.dx)
	hit_ball.sety(hit_ball.ycor()+hit_ball.dy)

	# Checking borders
	if hit_ball.ycor() > 280:
		hit_ball.sety(280)
		hit_ball.dy *= -1

	if hit_ball.ycor() < -280:
		hit_ball.sety(-280)
		hit_ball.dy *= -1

	if hit_ball.xcor() > 500:
		hit_ball.goto(0, 0)
		hit_ball.dy *= -1
		left_player += 1
		sketch.clear()
		sketch.write("Left_player : {} Right_player: {}".format(left_player, right_player), align="center",font=("Courier", 24, "normal"))

	if hit_ball.xcor() < -500:
		hit_ball.goto(0, 0)
		hit_ball.dy *= -1
		right_player += 1
		sketch.clear()
		sketch.write("Left_player : {} Right_player: {}".format(left_player, right_player), align="center",font=("Courier", 24, "normal"))

	# Paddle ball collision
	if (hit_ball.xcor() > 360 and hit_ball.xcor() < 370) and (hit_ball.ycor() < right_pad.ycor()+40 and hit_ball.ycor() > right_pad.ycor()-40):
		hit_ball.setx(360)
		hit_ball.dx*=-1
		
	if (hit_ball.xcor()<-360 and hit_ball.xcor()>-370) and (hit_ball.ycor()left_pad.ycor()-40):
		hit_ball.setx(-360)
		hit_ball.dx*=-1

Output:

Hướng dẫn how do you make a pong in python? - làm thế nào để bạn tạo một cái pong trong python?
Trò chơi Pong sử dụng rùa Python

Chúng tôi đã phát triển thành công trò chơi Pong bằng Python Rùa, chúng tôi đã học cách tạo biểu mẫu cho các khối và bóng, cũng như cách sửa đổi tốc độ và làm mới màn hình.

Tôi hy vọng bạn đã vui vẻ làm trò chơi này !. Để biết thêm các hướng dẫn thú vị, hãy xem trang web của chúng tôi Copyassignment.com


Cũng đọc:

  • Vẽ logo Android bằng rùa Python
  • Tạo một chiếc đồng hồ bấm giờ bằng Python Tkinter
  • Vẽ người tuyết bằng rùa Python
  • Vẽ cờ Ấn Độ vĩ đại bằng rùa Python
  • Vẽ một con chó bằng rùa Python
  • Vẽ một con cá bằng rùa Python
  • Vẽ trái tim bằng rùa Python
  • Vẽ cây Giáng sinh bằng rùa Python
  • Vẽ logo Olympic bằng rùa Python
  • Vẽ logo Audi trong Rùa Python
  • Vẽ ô tô bằng rùa Python
  • Vẽ chim cánh cụt bằng rùa Python
  • Vẽ gấu trúc bằng rùa Python
  • Cat sử dụng rùa Python
  • Tạo một bot telegram bằng cách sử dụng python
  • Nhận dự báo thời tiết bằng cách sử dụng Python
  • Trò chơi Hangman sử dụng Python
  • Bàn cờ sử dụng python
  • Logo Google trong Rùa Python
  • Trò chơi bắn súng bằng bóng sử dụng python pygame
  • Hoàn chỉnh hướng dẫn và dự án
  • Vẽ logo Windows bằng rùa Python
  • Hệ thống quản lý thư viện Dự án Python với mã nguồn | GUI và cơ sở dữ liệu
  • Người mới bắt đầu dự án rùa Python tiên tiến
  • Vẽ logo Netflix bằng rùa Python
  • Flappy Bird in Python Pygame với mã nguồn
  • Tạo trình duyệt web của riêng bạn bằng Python
  • Triển khai mô hình học máy bằng cách sử dụng Streamlit
  • Tic Tac Toe bằng dự án Python với mã nguồn
  • Tạo bot telegram bằng cách sử dụng python

Bạn có thể làm một trò chơi chỉ vớ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.. To build a game, you'll need to use many core programming skills. The kinds of skills that you'll see in real-world programming.

Tôi có thể thực hiện một trò chơi 3D với Python không?

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.two sites that are dedicated to 3D Python are Python 3D(py3d.org) and Python 3D Software. You can find several 3D game projects available here. PyWeek is a bi-annual programming challenge site that produces several great games.

Trò chơi nào là trò chơi dễ dàng nhất trong Python?

Bây giờ chúng ta 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 headstart trong đường cong học tập của bạn !..
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.....
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.....
Trò chơi rắn đói ở Python ..

Bạn có thể tạo các trò chơi trình duyệt với Python không?

Bạn không thể xây dựng một trò chơi web trong Python.Trình duyệt web chỉ chạy JavaScript.Khi nào bạn tạo trò chơi đơn giản đầu tiên của mình bằng Python?. Web browsers only run JavaScript. When did you create your first simple game using Python?