排名
1
文章
860
粉丝
112
评论
163
.net core自定义项目模板,创建自己的模板项目,使用命令行创建模板项目
尘叶心繁 : 可以可以讲真的我都想弄个模板
net core webapi post传递参数
庸人 :
确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 : 已精
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 :
疯狂反射
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

封装那个画格子的方法,为什么没有影响到全局变量
是我理解错了,这个方法里边访问的行列,地图高宽这些是访问哇,又不是改变,访问是可以访问的,但是改变后,外面的变量是不变的,只是在方法里边起作用,除非使用global申请一下。注意区分,是访问,还是修改。
def drawRect(point,color):
## 格子的高度 = 地图的高度/行数
boxheight = height/row
## 格子的宽度 = 地图的高度/列数
boxwidth = width/col
## 距离左边的位置=列宽*所在列
box_head_left = point.col*boxwidth
## 距离上边的位置=行高*所在行
box_head_top = point.row * boxheight
## 根据定义的行列位置画出来格子所在的位置
pygame.draw.rect(screen,color,(box_head_left,box_head_top,boxwidth,boxheight))
十:游戏开始界面制作
直接来就开始游戏,没有一个简单的界面不太好哇。我们来做一个简单的开始界面。类似这样
其实就是一个图片和一点文字而已 -。- 吐槽一下,图片资料太难找了。
先封装一个绘制文字的方法,要重复使用。
def drawText(_text,_fontsize,_textColor,_position):
myfont = pygame.font.Font('C:/Windows/Fonts/simhei.ttf',_fontsize)
# 如果不要字体第一个参数设置为null即可,系统里边的字体默认都在C:/Windows/Fonts下面
##myfont=pygame.font.Font(None,_fontsize)
text=myfont.render(_text,True,_textColor)
#获得显示对象的rect区域坐标
textRect =text.get_rect()
# 设置显示对象居中
textRect.center = _position
# 将准备好的文本信息,绘制到主屏幕 Screen 上。
screen.blit(text,textRect)
然后封装开始游戏的方法
里边也要写一个死循环监听按键
## 开始游戏
def beginGameShow():
image_surface = pygame.image.load('img/3.jpg').convert()
image_new = pygame.transform.scale(image_surface,(800,600))
# 将图像放置在主屏幕上
screen.blit(image_new,(0,0))
drawText("贪吃蛇大作战",60,(0,0,0),(400,110))
drawText("F1开始! F2退出!",20,(0,0,0),(390,510))
pygame.display.flip()
isRuning = True
while isRuning:
## 直接放一张背景图,或者放一个背景图,打印一些字即可。还有简单的动画
clock.tick(13)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
## 监听按键事件
if event.type == pygame.KEYDOWN:
print(event)
## 按下了f1
if event.key == 1073741882:
isRuning=False
## 按下了f2
if event.key == 1073741883:
sys.exit()
十一:游戏结束后,展示游戏界面,重新开始游戏
## 游戏初始化
def gameInit():
global headPoint
global snakeBody
headPoint = Point(int(row/2),int(col/2))
snakeBody = [
Point(row=headPoint.row,col=headPoint.col+1),
Point(row=headPoint.row,col=headPoint.col+2),
Point(row=headPoint.row,col=headPoint.col+3),
Point(row=headPoint.row,col=headPoint.col+4),
Point(row=headPoint.row,col=headPoint.col+5)
]
print("重新开始游戏了------------")
十二:重新开始游戏,一直提示撞自己死了的情况分析
明明已经初始化了,看输出,居然蛇头位置也改变了,蛇身也改变了….,为什么呢,没有去移动蛇头哇,蛇头的移动在下面哇。只有
难道是游戏结束写到了这个下面了,所以不行,但是蛇头位置也不应该会变化呢…,最多只是蛇尾少了而已。
测试了一下,输出感觉没有问题。是不是因为方向哦…初始化后,如果蛇头方向右不是蛇头就跑到身体里边去了么,感觉就是这个问题。但是判断游戏结束是在运动前面一步的哇….不对..第一次判断虽然通过了,但是趋势是向右的,所以会撞自己死掉。果然如此,一来就按右,就会挂掉,然后F1开始就会一直挂。
所以要初始化方向,不能让死了的时候是什么方向,重新开始就是什么方向。而且还要注意使用全局变量哇只是这样还是不行的哦。看颜色都看得出来是灰色的。
所以现在重新开始的方法变成了
## 游戏初始化
def gameInit():
global headPoint
global snakeBody
global snakeDirect
headPoint = Point(int(row/2),int(col/2))
snakeBody = [
Point(row=headPoint.row,col=headPoint.col+1),
Point(row=headPoint.row,col=headPoint.col+2),
Point(row=headPoint.row,col=headPoint.col+3),
Point(row=headPoint.row,col=headPoint.col+4),
Point(row=headPoint.row,col=headPoint.col+5)
]
## 注意要初始化方向
snakeDirect = "left"
print("重新开始游戏了------------")
## 做一下数据测试
# print(headPoint.col,headPoint.row)
# for item in snakeBody:
# print(item.col,item.row)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价