用python语言编简单游戏_如何用Python编一个小游戏?

首选,Python基础要有,基本的变量、运算符、函数、语法要清楚。

其次,写小游戏基本都在用Pygame模块来创建完全界面化的游戏,所以需要了解一些Pygame的基本模块用法,比如image、cursors、mouse、draw、event等。

最后,学会用度娘,网上源码很多,多看看多学学。

最后的最后,送你一段自学的代码。

from pygame import *

from random import randint

def create_egg():

if len(body) == 195:

over()

while True:

egg = [randint(0,15)*20+1, randint(0,15)*20+1]

for b in body:

if egg == b:

break

else:

break

draw.rect(screen, (0,255,255), tuple(egg) + (18, 18), 0)

return egg

def over():

draw.rect(screen, (255,0,0), tuple(position) + (18, 18), 0)

my_font = font.SysFont("microsoft Yahei", 30)

textSurfaceObj = my_font.render("Game Over!", True, (255,255,255))

screen.blit(textSurfaceObj, (100, 130))

display.flip()

while True:

for eve in event.get():

if eve.type == QUIT:

exit()

time.delay(30)

init()

size = 320, 320

bg = 125, 125, 125

screen = display.set_mode(size)

display.set_caption("贪吃蛇")

screen.fill(bg)

body = [[161, 161]]*3

speed = [-1, 0]

position = [161, 161]

move_flag = True

egg = create_egg()

score = 0

while True:

for eve in event.get():

if eve.type == QUIT:

exit()

if eve.type == KEYDOWN and move_flag:

move_flag = False

if eve.key == 27:

exit()

if not speed[0]:

if eve.key == K_LEFT:

speed[0] = -1

speed[1] = 0

if eve.key == K_RIGHT:

speed[0] = 1

speed[1] = 0

if not speed[1]:

if eve.key == K_UP:

speed[1] = -1

speed[0] = 0

if eve.key == K_DOWN:

speed[1] = 1

speed[0] = 0

for i in [0, 1]:

position[i] += speed[i] * 20

for p in [0, 1]:

if position[p] < 0:

position[p] = 320 + position[p]

if position[p] > 320:

position[p] = position[p] - 320

for b in body:

if position == b:

over()

body = [position[:]] + body[:]

if position == egg:

score += 1

display.set_caption(f"贪吃蛇 分数:{score}")

egg = create_egg()

body += [body[-1]]

draw.rect(screen, (0,0,0), tuple(position) + (18, 18), 0)

draw.rect(screen, (bg), tuple(body[-1]) + (18, 18), 0)

body.pop()

move_flag = True

display.flip()

time.delay(500)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值