เกมงูในการใช้โมดูล Python
ฉันมั่นใจว่าบทความนี้จะเป็นประโยชน์กับคุณหากคุณเป็นแฟนตัวยงของเกมงู. ฉันจะแนะนำคุณเกี่ยวกับขั้นตอนการสร้างเกมง่ายๆ ในโพสต์นี้ ซึ่งแม้แต่มือใหม่ Python ก็ยังพบว่าสร้างได้ง่าย. ไลบรารี PyGame ใน Python, ซึ่งเป็นแพ็คเกจ Python ที่เราใช้ในการพัฒนาเกม, เป็นหนึ่งในแนวทางต่างๆ ในการออกแบบเกม.
การใช้เต่าห้องสมุดเป็นกลยุทธ์เพิ่มเติม. ผู้ใช้สามารถสร้างกราฟิกและวาดแบบฟอร์มบนผืนผ้าใบออนไลน์ได้ด้วยโมดูลนี้, ซึ่งติดตั้งด้วย Python เรียบร้อยแล้ว. ดังนั้น, ในบทช่วยสอนนี้, เราจะใช้ห้องสมุดเต่าเพื่อสร้างงูพื้นฐานของเรา
- โมดูลเวลา. เทคนิคนี้ช่วยให้เราติดตามจำนวนวินาทีที่ผ่านไปตั้งแต่ครั้งก่อน.
- โมดูลสุ่มเกมงู – มันสร้างตัวเลขสุ่มใน Python.
เครื่องมืออื่นๆ ที่คุณต้องการ ได้แก่ ตัวแก้ไขสำหรับข้อความที่คุณต้องการ. ฉันจะใช้ VSCode ในโพสต์นี้. แน่นอน, คุณจะต้องตั้งค่า Python 3 บนอุปกรณ์ของคุณหากคุณยังไม่ได้ติดตั้ง. คุณยังสามารถดาวน์โหลดเพื่อติดตั้ง Geekflare Compiler. นี่อาจเป็นประสบการณ์ที่สนุกสนานมาก!
สารบัญ
เกมงูทำงานอย่างไร
ผู้เล่นจะต้องควบคุมงูเพื่อให้ได้อาหารที่แสดงบนหน้าจอเพื่อให้ได้คะแนนที่ดีที่สุดในเกมนี้. ผู้เล่นบังคับงูโดยกดปุ่มทิศทางหนึ่งในสี่ปุ่มที่ชี้ไปในทิศทางที่งูกำลังเคลื่อนที่.
งูจะถูกนำออกจากเกมหากมันไปโดนผู้เล่นหรือสิ่งของ. ขั้นตอนที่เราจะใช้ในการเล่นเกมนี้ต่อไป.
- นำเข้าโมดูลที่ติดตั้งไว้ล่วงหน้าในแอปพลิเคชันของเรา (เวลาเต่า, เต่าเป็นแบบสุ่ม).
- การแสดงผลหน้าจอของเกมสร้างขึ้นด้วยโมดูล Turtle.
- ตั้งปุ่มเพื่อควบคุมทิศทางการเคลื่อนที่ของงูไปรอบๆ หน้าจอ.
- การใช้งานของเกม.
สร้างไฟล์ snakegame.py ที่เราจะเพิ่มโปรแกรมการใช้งาน.
การนำเข้าโมดูล
ส่วนนี้ของโปรแกรมจะโหลดเวลาที่ติดตั้ง Python, เต่า, และโมดูลสุ่ม. นอกจากนี้, ตัวเลขเริ่มต้นสำหรับคะแนนเริ่มต้นของผู้เล่น, คะแนนสูงสุดที่พวกเขาสามารถทำได้, และระยะเวลาที่ผู้เล่นล่าช้าระหว่างการเคลื่อนไหวแต่ละครั้งจะถูกกำหนด. เพื่อพิจารณาว่าได้เลื่อนเวลาออกไปเท่าใด, จำเป็นต้องใช้โมดูลเวลา.
import turtle
import random
import time
player_score = 0
highest_score = 0
delay_time = 0.1
สร้างหน้าจอของเกม
โมดูลเต่าที่เราติดตั้งช่วยให้เราสร้างหน้าจอเสมือนที่จะทำหน้าที่เป็นหน้าจอหน้าต่างของเกม. จากนั้นเราก็สามารถสร้างลำตัวของงูได้, ตลอดจนรายการอาหารที่งูจะกิน. หน้าจอจะแสดงคะแนนของตัวติดตามของผู้เล่นด้วย.
# window screen created
wind = turtle.Screen()
wind.title("Snake Maze")
wind.bgcolor("red")
# The screen size
wind.setup(width=600, height=600)
# creating the snake
snake = turtle.Turtle()
snake.shape("square")
snake.color("black")
snake.penup()
snake.goto(0, 0)
snake.direction = "Stop"
# creating the food
snake_food = turtle.Turtle()
shapes = random.choice('triangle','circle')
snake_food.shape(shapes)
snake_food.color("blue")
snake_food.speed(0)
snake_food.penup()
snake_food.goto(0, 100)
pen = turtle.Turtle()
pen.speed(0)
pen.shape('square')
pen.color('white')
pen.penup()
pen.hideturtle()
pen.goto(0, 250)
pen.write("Your_score: 0 Highest_Score : 0", align="center",
font=("Arial", 24, "normal"))
turtle.mainloop()
รหัสในข้อความที่ตัดตอนมาดังกล่าวสร้างหน้าจอเต่าก่อนที่จะเพิ่มชื่อเริ่มต้นและสีฉากหลัง. อันดับแรก เราเลือกขนาดก่อนที่จะร่างรูปร่างของงูลงบนผืนผ้าใบดิจิตอลของเรา. เพื่อป้องกันการขีดเส้นในขณะที่เต่าเคลื่อนไหว, วิธี penup หยิบปากกาของเต่า.
ด้วยการใช้เทคนิค goto, เต่าอาจถูกนำไปยังตำแหน่งที่แน่นอนโดยใช้พิกัด. อาหารที่งูกินเราทำเอง.
ทุกครั้งที่งูคาบอาหาร, เราต้องการแสดงคะแนนของผู้เล่นแต่ละคน. เรายังต้องการแสดงคะแนนสูงสุดที่แต่ละคนได้รับระหว่างเกม. สำหรับเหตุผลนี้, เราใช้ปากกา. เป็นปากกา, เขียน. อธิบายวิธีการทำให้เสร็จ.
การตั้งค่าปุ่มทิศทางสำหรับงู
ในกรณีนี้, เราตั้งโปรแกรมปุ่มบางอย่างเพื่อควบคุมการเคลื่อนไหวของงูบนหน้าจอ. เราจะใช้จดหมาย “แอล” เป็นปุ่มซ้าย, “ร” สำหรับซ้าย, “ยู” สำหรับขึ้น, และ “ง” สำหรับลง. คำแนะนำเหล่านี้จะถูกนำไปปฏิบัติโดยการเรียกงูโดยใช้ฟังก์ชันทิศทางของเต่า.
รวมตัวอย่างโค้ดต่อไปนี้ในของคุณ.
# Assigning directions def moveleft(): if snake.direction != "right": snake.direction = "left" def moveright(): if snake.direction != "left": snake.direction = "right" def moveup(): if snake.direction != "down": snake.direction = "up" def movedown(): if snake.direction != "up": snake.direction = "down" def move(): if snake.direction == "up": coord_y = snake.ycor() snake.sety(coord_y+20) if snake.direction == "down": coord_y = snake.ycor() snake.sety(coord_y-20) if snake.direction == "right": coord_x = snake.xcor() snake.setx(coord_x+20) if snake.direction == "left": coord_x = snake.xcor() snake.setx(coord_x-20) wind.listen() wind.onkeypress(moveleft, 'L') wind.onkeypress(moveright, 'R') wind.onkeypress(moveup, 'U') wind.onkeypress(movedown, 'D')
เคลื่อนไหว() ฟังก์ชั่นดังกล่าวข้างต้นช่วยให้การเคลื่อนไหวของงูในตำแหน่งที่ระบุภายในพิกัดที่ระบุ. ฟัง() ทำหน้าที่เป็นผู้ฟังเหตุการณ์ซึ่งเรียกใช้เมธอดที่นำงูไปในทิศทางใดทิศทางหนึ่งเมื่อผู้ใช้กดปุ่ม.
การดำเนินเกมเพลย์ในรูปแบบของงู
เกมจะต้องแปลงเป็นการแสดงสดหลังจากสร้างโครงสร้างพื้นฐานแล้ว. นี่คือสิ่งที่จะรวม:
- ขยายความยาวของงูด้วยสีที่แตกต่างกันทุกครั้งที่มันกินอาหาร.
- เมื่อใดก็ตามที่งูกินอาหาร, คะแนนของผู้เล่นจะเพิ่มขึ้น, และติดตามผลคะแนนสูงสุด.
- อาจจับงูไว้เพื่อป้องกันไม่ให้กระแทกกับผนังหรือแม้แต่ตัวของมันเอง.
- หลังจากตีงู, เกมยังคงดำเนินต่อไป.
- บนหน้าจออย่างไรก็ตาม, คือคะแนนสูงสุดของผู้เล่น แม้ว่าคะแนนของผู้เล่นจะถูกรีเซ็ตเป็นศูนย์เมื่อเริ่มเกมใหม่.
segments = []
#Implementing the gameplay
while True:
wind.update()
if snake.xcor() > 290 or snake.xcor() < -290 or snake.ycor() > 290 or snake.ycor() < -290:
time.sleep(1)
snake.goto(0, 0)
snake.direction = "Stop"
snake.shape("square")
snake.color("green")
for segment in segments:
segment.goto(1000, 1000)
segments.clear()
player_score = 0
delay_time = 0.1
pen.clear()
pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal"))
if snake.distance(snake_food) < 20:
coord_x = random.randint(-270, 270)
coord_y = random.randint(-270, 270)
snake_food.goto(coord_x, coord_y)
# Adding segment
added_segment = turtle.Turtle()
added_segment.speed(0)
added_segment.shape("square")
added_segment.color("white")
added_segment.penup()
segments.append(added_segment)
delay_time -= 0.001
player_score += 5
if player_score > highest_score:
highest_score = player_score
pen.clear()
pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal"))
# checking for collisions
for i in range(len(segments)-1, 0, -1):
coord_x = segments[i-1].xcor()
coord_y = segments[i-1].ycor()
segments[i].goto(coord_x, coord_y)
if len(segments) > 0:
coord_x = snake.xcor()
coord_y = snake.ycor()
segments[0].goto(coord_x, coord_y)
move()
for segment in segments:
if segment.distance(snake) < 20:
time.sleep(1)
snake.goto(0, 0)
snake.direction = "stop"
snake.color('white')
snake.shape('square')
for segment in segments:
segment.goto(1000, 1000)
segment.clear()
player_score = 0
delay_time = 0.1
pen.clear()
pen.write("Player's_score: {} Highest_score: {}".format(player_score, highest_score), align="center", font=("Arial", 24, "normal"))
time.sleep(delay_time)
turtle.mainloop()
ในข้อมูลโค้ดด้านบนที่เราใช้, เราได้กำหนดสถานที่สุ่มสำหรับอาหารงูบนหน้าจอ. ทุกครั้งที่งูกินสารอาหาร, ร่างกายเติบโตเป็นสีอื่น, สีขาวในกรณีนี้, เพื่อให้เห็นได้ชัดเจนว่าการเติบโตนั้นแตกต่างกัน.
เมื่องูเก็บอาหารแล้วไม่ชนกัน, อาหารจะแสดงในตำแหน่งสุ่มภายในพื้นที่พิกัด 270 องศาของขนาดของหน้าจอ. ทุกครั้งที่งูคาบอาหาร, คะแนนของผู้เล่นเพิ่มขึ้น 5. ถ้างูมีส่วนเกี่ยวข้องในการปะทะกับผู้เล่น, คะแนนของพวกเขาจะถูกรีเซ็ตเป็น 0 และหน้าจอเก็บคะแนนสูงสุดไว้.
ข้อสรุป
ห้องสมุดเต่าเป็นวิธีที่สนุกและง่ายในการสร้างเกมงูที่เราได้เห็นในบทช่วยสอนนี้. คุณยังสามารถใช้ไลบรารี PyGame ใน Python เพื่อใช้งานเกมเดียวกันได้. ค้นหาว่าคุณจะใช้ประโยชน์จากเกมนี้อย่างไรโดยอ่านข้อมูลเหล่านี้ ไพเกม คำแนะนำ.
ดาวน์โหลดเกม Snake Rivals Fun เกมงู
ดาวน์โหลด Snake.io – เกม Snake .io แสนสนุก