Bagaimana untuk menulis permainan Ular dalam Python?

王林
Lepaskan: 2023-05-09 20:55:06
ke hadapan
3347 orang telah melayarinya

Permainan mini Ular Python (kod sumber + komen + tampal dan gunakan) Permainan Ular ini sangat mudah dan mengelakkan penggunaan pygame yang sukar untuk dimuatkan:

Bagaimana untuk menulis permainan Ular dalam Python?

Bagaimana untuk menulis permainan Ular dalam Python?

Pelaksanaan kod permainan

1 Melukis imej

Dalam melukis imej permainan, kami menggunakan pygame dalam pangkalan data Grafik Turtle yang lebih ringan

Bina pangkalan data (gamebase.py)
from turtle import * # "*"是引用所有函数

def square(x, y, size, color_name):
    up()
    goto(x, y)
    down()
    color(color_name)
    begin_fill()

    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)

    end_fill()
Salin selepas log masuk
Di atas melukis melalui penyu, memajukan jarak unit dan kemudian berputar 90 darjah, dan kemudian berputar 90 darjah sekali lagi sehingga Blok kecil

Lukis Apple (snake.py)
Rujuk pangkalan data yang baru kami lukis

from turtle import *
from gamebase import square
from random import randrange
Salin selepas log masuk

dan kemudian tentukan saiz kanvas

setup(420,420,0,0)
//隐藏乌龟头 emoj.emoj.
hideturtle
//隐藏轨迹
tracer(False)

//绘制
done()
Salin selepas log masuk

Tentukan gelung program permainan ( Setara ke benang gelung di Jawa)
def gameLoop():
	//随机生成苹果
	apple_x = randrange(-200, 200)
	apple_y = randrange(-200, 200)
	//绘制苹果
	square(apple_x, apple_y, 10, "red")
	//刷新画布
	update()
Salin selepas log masuk
Melukis ular (snake.py)
Perhatikan bahawa kita boleh menganggap ular sebagai baris gilir, dan setiap orang dalam baris gilir ini Setiap elemen mengandungi dua pembolehubah (koordinat mendatar dan menegak unsur)

def gameLoop():
	//随机生成苹果
	apple_x = randrange(-200, 200)
	apple_y = randrange(-200, 200)
	//绘制蛇
	for n in range(len(sanke)):
		square(snake[n][0],snake[n][1[],10,"black)
	//绘制苹果
	square(apple_x, apple_y, 10, "red")
	//刷新画布
	update()
Salin selepas log masuk

Melukis pergerakan ular tamak
Prinsip pergerakan ular: Bagi memudahkan pergerakan ular, kami perlu Balikkannya ke dalam baris gilir. Apabila ia bergerak, kami akan membuang elemen pertama baris gilir ular (pop()), dan kemudian menambah elemen pada ekor ular (tambah())

global apple_x, apple_y, snake, aim_x, aim_y #全局变量申请snake.append([ snake[-1][0] + aim_x, snake[-1][1] + aim_y ])snake.pop(0)global apple_x, apple_y, snake, aim_x, aim_y 
#全局变量申请
snake.append([ snake[-1][0] + aim_x, snake[-1][1] + aim_y ])
snake.pop(0)
Salin selepas log masuk

Kemudian , kita perlu menambah gelung untuk menyegarkan masa berjalan,

ontimer(gameLoop, 100)
 # 每100毫秒运行一下gameLoop函数
Salin selepas log masuk

Buat tindak balas operasi ular
Kita perlu mewujudkan monitor papan kekunci, yang sangat mudah untuk python

listen() #监听
onkey(lambda: change(0, 10), "w")
onkey(lambda: change(0, -10), "s")
onkey(lambda: change(-10, 0), "a")
onkey(lambda: change(10, 0), "d")
gameLoop()
Salin selepas log masuk

Juga sangat mudah untuk menentukan sama ada ular telah makan epal sendiri
Prinsip ini sama dengan prinsip sama ada ular makan epal di atas

 if snake[-1][0] != apple_x or snake[-1][1] != apple_y:
        snake.pop(0)
    else:
        apple_x = randrange(-20, 18) * 10
        apple_y = randrange(-19, 19) * 10
Salin selepas log masuk

Tentukan sama ada ular berada dalam sempadan
def bite():
    for n in range(len(snake)-1):
        if snake[-1][0] == snake[n][0] and snake[-1][1] == snake[n][1]:
            return True
    return False
Salin selepas log masuk
Kod sumber permainan

pangkalan permainan
def inside():
    if -200 <= snake[-1][0] <= 180 and -190 <= snake[-1][1]<=190:
        return True
    else :
        return False
Salin selepas log masuk
snake.py

from turtle import * # "*"是引用所有函数

def square(x, y, size, color_name):
   up()
   goto(x, y)
   down()
   color(color_name)
   begin_fill()

   forward(size)
   left(90)
   forward(size)
   left(90)
   forward(size)
   left(90)
   forward(size)
   left(90)

   end_fill()
Salin selepas log masuk
.

Atas ialah kandungan terperinci Bagaimana untuk menulis permainan Ular dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan