首页>游戏 > 正文
如何自制游戏?Python制作游戏流程是什么?
来源: 21CN 发布于:2022-11-09 10:17:52

如何自制游戏:

1、先写一个游戏初始界面:

'''显示游戏开始界面'''defShowStartInterface(screen,width,height):

screen.fill(cfg.BACKGROUNDCOLOR)

tfont=pygame.font.Font(cfg.FONTPATH,width//4)

cfont=pygame.font.Font(cfg.FONTPATH,width//20)

title=tfont.render('拼图游戏',True,cfg.RED)

content1=cfont.render('按H或M或L键开始游戏',True,cfg.BLUE)

content2=cfont.render('H为5*5模式,M为4*4模式,L为3*3模式',True,cfg.BLUE)

trect=title.get_rect()

trect.midtop=(width/2,height/10)

crect1=content1.get_rect()

crect1.midtop=(width/2,height/2.2)

crect2=content2.get_rect()

crect2.midtop=(width/2,height/1.8)

screen.blit(title,trect)

screen.blit(content1,crect1)

screen.blit(content2,crect2) whileTrue: foreventinpygame.event.get(): if(event.type==pygame.QUIT)or(event.type==pygame.KEYDOWNandevent.key==pygame.K_ESCAPE):

pygame.quit()

sys.exit() elifevent.type==pygame.KEYDOWN: ifevent.key==ord('l'):return3

elifevent.key==ord('m'):return4

elifevent.key==ord('h'):return5

pygame.display.update()

2、定义移动操作的目的是为了移动拼图,具体实现起来十分简单:

'''将空白Cell左边的Cell右移到空白Cell位置'''defmoveR(board,blank_cell_idx,num_cols):

ifblank_cell_idx%num_cols==0:returnblank_cell_idx

board[blank_cell_idx-1],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx-1] returnblank_cell_idx-1'''将空白Cell右边的Cell左移到空白Cell位置'''defmoveL(board,blank_cell_idx,num_cols):

if(blank_cell_idx+1)%num_cols==0:returnblank_cell_idx

board[blank_cell_idx+1],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx+1] returnblank_cell_idx+1'''将空白Cell上边的Cell下移到空白Cell位置'''defmoveD(board,blank_cell_idx,num_cols):

ifblank_cell_idx

board[blank_cell_idx-num_cols],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx-num_cols] returnblank_cell_idx-num_cols'''将空白Cell下边的Cell上移到空白Cell位置'''defmoveU(board,blank_cell_idx,num_rows,num_cols):

ifblank_cell_idx>=(num_rows-1)*num_cols:returnblank_cell_idx

board[blank_cell_idx+num_cols],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx+num_cols] returnblank_cell_idx+num_cols

3、我们需要打乱拼图, 但是随机打乱很可能导致拼图无解,因此我们通过随机移动拼图来实现打乱拼图的效果 ,这也是我们先定义拼图的移动操作的主要原因:

'''获得打乱的拼图'''defCreateBoard(num_rows,num_cols,num_cells):

board=[] foriinrange(num_cells):board.append(i) #去掉右下角那块

blank_cell_idx=num_cells-1

board[blank_cell_idx]=-1

foriinrange(cfg.NUMRANDOM): #0:left,1:right,2:up,3:down

direction=random.randint(0,3) ifdirection==0:blank_cell

关键词: 游戏初始界面 智能编码 移动拼图制作 定义移动操作

猜你喜欢

  • 如何自制游戏?Python制作游戏流程是什么?
  • 重审请求被拒,“女版乔布斯”即将被判入狱
  • 与苹果抢占市场?谷歌悄悄开发新穿戴设备,瞄准不到13岁以下儿童-当前短讯
  • 联发科天玑9200首测!谁说我跑分没赢过?丨补充一点vol.10
  • 2022年世界互联网大会乌镇峰会今日开幕-天天热文
  • “双11”消费者想“占点便宜”不容易
  • 留在富士康的人:还在观望与等待中-新动态
  • 黄光裕怯魅:国美会是下一个乐视吗?-时快讯
  • RTX 4080 12GB被骂走了!RTX 4070 Ti回来了-全球热消息
  • 美的 U 型窗式空调已获得首批 Matter 认证
  • 00后可能没见过!盘点那些风靡一时又消失的手机配件
  • 被苹果暂停耳机供货?歌尔股份:预计影响收入不超33亿元-全球快播报
  • RTX 4080被疯狂加价直逼4090 网友:AMD RX 7900 XT变更香了-全球头条
  • 日元暴跌,日本人开始青睐二手苹果手机
  • Meta大裁员在即,扎克伯格承认决策失误!被裁员工将获至少4个月工资-世界速看料
  • 特斯拉在美召回超4万辆车:过烂路后助力转向可能会失效-环球快资讯
  • 经济日报:布局元宇宙产业需审慎-环球热资讯
  • 2022年世界互联网大会即将在义务召开 旨在增加大会与成员交流与合作
  • 2022全球工业互联网大会产业数字化数字产业化招商会召开 助力强省建设
  • 安徽合肥积极参与智慧城市国际标准制定 为提升中国影响力发挥作用