欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    塔防式游戏详细设计之一.docx

    • 资源ID:641865       资源大小:27.50KB        全文页数:6页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    塔防式游戏详细设计之一.docx

    实验塔防式游戏详细设计之一一、实验目的二、实验要求三、实验设备计算机、PylhOn2.7、Pygame1.9.2四、实验内容一、创立游戏场景和卡通人物# 1-Importlibraryimportpygamefrompygame.Iocalsimport*#2-初始化游戏场景,即根本画布pygame.init()width,height=640,480screen=pygame.display.set_mode(width,height)#3-通过装载图像的方式而出一个卡通人物player=pygame.image,load(resources/images/dude.png)# 4-游戏的主循环whilel:# 5-clearthescreenbeforedrawingitagainscreen,fill(0)# 6-drawthescreenelementsscreen,blit(player,(100,100)#7-updatethescreenpygame.display,flip()#8-主循环中的事件循环foreventinpygame.event,get():#checkiftheeventistheXbuttonifevent.type=pygame.QUIT:# ifitisquitthegamepygame.quit()exit(O)代码解释:1. 导入pygame库,这一步能让你使用库里提供的功能2. 初始化Pygarne,设置展示窗口3. 加载作为兔子的图片4. 不停地循环执行接下来的局部5. 在给屏幕画任何东西之前用黑色进行填充6. 在屏幕的(100,100)坐标出添加你加载的兔子图片7. 更新屏幕8. 检查一些新的事件,如果有退出命令,那么终止程序的执行。二、丰富场景在#3的结尾处,在添加玩家图片的后面,加上以下的代码:1 grass=PyganIe.image,load("resources/images/grass.png")2 castle=Pygame.image,load("resourcesimagesCaStle.png")这段代码加载图片并将它们放在变量里。现在它们需要被画在屏幕上。但是当你检查了草的图片后,发现它不会覆盖整个屏幕,它的分辨率是640X480。添加到game.py里#6的代码:1 forXinrange(width/grass.get_width()+l):2 foryinrange(height/grass.get_height()+1):3 screen,blit(grass,(x*100,y*100)4screen,blit(castle,(0,30)5screen,blit(castle,(0,135)6screen,blit(castle,(0,240)7screen,blit(castle,(0,345)三、互动元素设计接下来你需要加上一些真正的游戏的元素了,比方让兔子能够随着按键移动。为了做到这一点,首先,你需要实现一个方法,用来记录在某一时刻那个键被按下。可以通过新建一个按键状态的队列来存放每个你想在游戏里用到的按犍。把以下代码参加到game.py里#2后面:1keys=False,False,False,False2playerpos=100,100这段代码是不言自明的,key这个队列用来记录几个按键的情况:W、A、S、D。队列中的每一项对应一个按键第一个对应W,第二个对应A等等。Playerpos这个变量表示程序画出玩家的位置。因为这个游戏会让玩家向不同的方向移动,用一个变量来表示玩家的位置并且能够依据这个变量将玩家画出来的方案是非常适合的。现在你需要修改现在画出玩家的代码,需要用上PlayerPoS变量。把#6局部的代码进行修改:从1screen,blit(player,(100,100)改成:1 screen,blit(player,playerpos)在#8的结尾,就在event.py=pygame.QUIT后面,添加一下的代码(与Pygame.QUIT保持同级别缩进)±2 ifevent,type=pygame.KEYDOWN:3 ifevent.key=K_w:4 keys0=True4elifevent.key=K_a:5keysl=True6elifevent.key=K_s:7keys2=True8elifevent.key=K_d:9keys3=True10ifevent.typ(2-=pygame.KEYUP:Ilifevent,key=pygame.K_w:12keysO=False13elifevent.key=pygame.K_a:14keysl=False15elifevent.key=pygame.K_s:16keys2=False17elifevent.key=pygame.K_d:18keys3=False首先,你检查是否有一个键被按下或放开。然后,检查是哪一个键被按下或放开了,如果被按下或放开的键是你使用的,你就更新记录按键的变量。最终,你需要更新PlayerPOS变量(兔子的当前位置)作为按键后的反响。这实际上是非常简单的。在8#代码区后面添加兔子移动的步长:#9-MoveplayerifkeysO:playerposl-=5elifkeys2:playerposl+=5ifkeysl:playerpos0-=5elifkeys3:playerpos0+=5四、控制鼠标操作精灵好的,现在你的兔子在你按键的时候可以移动了,但是如果你能用鼠标让兔子朝向你选择的方向不是更酷吗?这样它就不会总是朝向一个方向了。用三角定理实现它会非常简单。看一下下面的插图:在上图中,如果5,3)是兔子的位置,(2,4)是现在鼠标的位置,你可以通过三角定理来得出需要旋转的角度。然后,你知道了旋转的角度后,以就可以来旋转你的兔子了如果你对这局部感到有点疑感,不要担忧这没有关系。但这是你为什么需要在数学课上集中精力的原因。在游戏编程中会用得到它的。现在,你需要接受你的游戏里的概念。为了实现它,你可以使用PyGameSUrfaCeJOtate(Clegrees)函数。atatn2函数是来自Python的math库。所以把以下代码加到#1局部:1importmath然后,把#6局部的最后一行用一下代码替换:I#6.1-Setplayerpositionandrotationoposition=pygame.mouse,getpos()angle=math,atan2(position1-(playerposEl+32),positionL-(pIayerposL+26)playerrot=pygame.transform,rotate(player,360-angle*57.29)5 pIayerposl=(playerpos0-playerrot.getrect().wid6 playerposl-playerrot.getrect().height/2)screen,blit(playerrot,playerpos1)我们来浏览一下以上代码的根本结构。首先获取鼠标和玩家的位置。然后将它们使用atan2函数。然后,获取通过ata2函数得出的角度和弧度。当兔子被旋转的时候,它的位置将会改变。所以你需要计算兔子新的位置,然后将其在屏幕上显示出来。再次运行游戏,如果你只是按WASD这几个键,那么这个游戏跟以前还是一样的。但是如果你移动鼠标,兔子也开始旋转了,相当酷!五增加攻击能力现在你的兔子可以四处移动了,是时候来添加更多的功能了。让兔子用箭头射向它们的敌人怎么样?这一步会有一点复杂,因为你需要跟踪所有的箭头,更新它们,旋转它们,在它们跑出屏幕的时候删除它们.首先,在#2声明的局部加上必要的变量的声明。1acc=0,02arrows=第一个变量会跟踪玩家的精度,第二个变量会跟踪箭头。这个精度的变量本质上是一个数字组成的列表,记录了射出的箭头数和被击中的狼的数量。之后我们会用到这些信息用来计算射击精确度。接下来,在#3局部结尾加载箭头的图片。1arrow=pygame.image,load("resourcesimagesbullet.png,)现在,当玩家点击鼠标,就需要射出一支箭头。在#8局部加上以下代码:ent.type=pygame.MOUSEBUTTONDOWN:position=pygame.mouse.get_posOaccl+=larrows,append(math,atan2(position1-(playcrposl1+32),position0-(playerpos10+26),playerposl0+32,playcrposll+32)这段代码会检查是否鼠标被点击了,如果点击了,它就会得到鼠标的位置并且根据玩家和光标的位置计算出箭头旋转角度。旋转角度的值存放在arrows这个数组里。接下来,你需要真的在屏幕上画出箭头来.在#6局部加上以下代码:#6.2-Drawarrowsforbulletinarrows:2 一。ndex=0velx=math.cos(bullet0)*104 一vely=math.sin(bullet0)*106 bulletl+=velxbullet2+=vely8 ifbulletl<-64orbullet1>640orbullet2<-64orbullet2>480:arrows,pop(index)index+=l10Q.forprojectileinarrows:arrow1=pygame.transform,rotate(arrow,360-projectile0*57.29)screen,blit(arrowl,(projectilel,projectile2)Vely和VelX的值是根据三角定理算出来的。10是箭头的速度。if表达式是检查箭头是否超出了屏幕范围,如果超出,就删除这个箭头。第二个for表达式是循环来把箭头根据相应的旋转画出来。试着运行游戏。当你点击鼠标时,你的兔子就可以射出剪头了:D六、增加游戏的反派精灵好吧,现在有了城堡,并且你有一个英雄可以移动和射出箭头。还差什么呢?攻击城堡的敌人可以被英雄用箭头射了!在这一步,你将会随机创立出一些施冲向城堡。在游戏的进程中会有越来越多的灌冒出来。所以,我们来列个接下来要做的事情的清单。1. 添加一个坏蛋的列表2. 更新坏蛋的信息,并且检查它们是否超出屏幕范围3. 展示这些坏蛋第一步,在#2局部加上一下代码:1 badtimer=1002 badtimerl=03 badguys=640,1004 healthvalue=194以上的代码里定义了一个定时器,使得游戏里可以经过一段时间后就新建一只瘫。在#3局部结尾处添加以下代码:1 badguyimgl=py

    注意事项

    本文(塔防式游戏详细设计之一.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开