“无法访问L:\ 文件或目录损坏且无法读取"

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“无法访问L:\ 文件或目录损坏且无法读取"相关的知识,希望对你有一定的参考价值。

谁来救救我的硬盘哪,我拷东西时直接拔下的硬盘,后来就出现了四个文件盘,有两个出现“无法访问:\ 文件或目录损坏且无法读取",怎么办哪,里面的东西老重要了,谁来帮帮我,我亿分感谢………………跪求








首先,右击这个移动硬盘的盘符,这里是F,这时会弹出一个窗口,在这个窗口中,选择“属性”;


  2、这时会弹出如下面的这个窗口,在这个窗口中选择“工具”;

  3、这时选择“检查”;

请点击输入图片描述

  4、这时出现这个窗口,点击“扫描驱动器”;

请点击输入图片描述

  5、扫描开始了,耐心等待一会儿,扫描完成后,问题就解决了。

请点击输入图片描述

使用其他第三方工具试试 

工具/软件:极光数据恢复软件

目录损坏恢复方法,损坏恢复步骤

1:右击软件选择用《管理员身份运行》

请点击输入图片描述

2:运行后会列出所有的分区和物理盘,我们直接双击需要恢复的J盘就可以

请点击输入图片描述

3:很快会将找到的数据放到《J:》中

请点击输入图片描述

4:勾选需要恢复的文件 右击选择《复制勾选的文件》

请点击输入图片描述

5:将文件保存到合适的路径

请点击输入图片描述

6:等待数据完全复制出来就可以了

注意事项:先别格式化这个盘,格式化会再次破坏数据,格式化了也别再存别的东西, 这样还有机会恢复

参考技术A psp有电子书功能
psp推出大容量电池2200mh没好像是2400mh的
一:按键使用常识
1、开/关机:对于开机就不用多说了,关机时要把power键向上推4、5秒钟左右再松手,这样才是真正的关机,否则只是进入了休眠状态。如果有人以前没注意到过这点也不要紧,因为处于休眠状态的小P费电很少,几乎不费电,而且对机器的正常使用没有影响;
2、有人反应听音乐时将小P放在兜里很不方便,因为经常有可能不小心碰倒按键,其实这个很简单,PSP可是号称“21世纪的WALKMAN”的产品,WALKMAN都有锁定键盘的功能,更何况小P?只要把power键向相反方向(即向下)推,就可以锁定键盘,解除按键锁定仅需再次把开关键推上来即可。
需要注意的是:要轻轻向上推,否则将进入休眠状态。另外,耳机线控的锁键方法和WALKMAN是一样的,在此不必详细说明;
3、音符按键为什么按下去无效?
其实很简单,音符按键是调整音乐模式用的,只有插耳机以后才能使用;
4、线控的按键和机器本身的按键通用吗?还是独立的?
这两方面是既独立又通用的,它们所起的功效相同。只是单一方面锁定键盘后,只能用另一方面键盘控制,如机器键盘为锁定状态,就只能通过线控进行控制,这主要应用在听mp3时,看电影的时候还是使用机器本身的键盘更为方便;
5、听mp3时可以关闭屏幕吗?
答案很简单:当然可以,长按音符键旁边那个控制亮度的键两秒钟以上,屏幕就会自动关闭,这样在听mp3时可以省电,按任意键即可重新打开屏幕;
6、调节亮度的按键只有三级亮度可调,我怎么听说有第四级?
是这样的,只有在使用电源时才有第四级亮度,平时用电池,最高只能选择三级亮度;
7、浏览图片时使用按键放大和缩小图像的问题:
在观看图片时按住方块键并上下滑动类比摇杆即可实现图像的放大或缩小,松开方块键单独推动摇杆可改变观看图片的区域。

二:电池常识:
1、PSP在持续使用的情况下,电池能用多久?
在玩游戏时候大约4—6个小时,看电影时约为3—5小时,待机可坚持6—10小时;
2、新买回来的小P需不需要在前三次充电时持续充12小时以上?
完全没有这个必要,小P用的是锂电池,镍氢电池时代的常识还是早日忘掉吧;
3、小P的电池多就能充满电?
大约2小时20分钟,在充满后最好多充20—30分钟,这时候小P的电池才真正意义上的充满了;
4、长时间使用电源玩游戏时,最好将小P电池取出,这样可延长电池寿命;
5、小P电池不在机器里超过24小时,再次放入机器开机时,系统会初始化,需要重新设定日期、时间,新手对这点不必有顾虑,这是正常的。

三:关于WiFi:
1、WiFi在机器左侧,向上推是开,向下推是关,注意不要搞混了。由于PSP的WiFi和手机的蓝牙功能是一样的道理,所以使用后记得关闭,不然很费电的;
2、在飞机上、医院里、火灾报警器旁、自动门周围切勿使用WiFi,应尽量确认此功能处于关闭状态,否则电子器械、医疗装置将会受无线电波的影响。

四:液晶屏幕:
1、新手刚刚购买小P时,建议最好购买屏幕保护贴膜,这样可以防止液晶屏幕表面受损伤;
2、在寒冷天气中使用PSP,画面可能会出现拖慢现象,也可能使人感觉画面的亮度不如平时,这点大可放心,只要回到温度适宜的地方,小P的画面就可以恢复正常了;
3、要注意:不要长时间停留在静止的影像上,这样很可能会导致模糊的影像永久残留在你的小P液晶屏上;
4、由于目前世界上的液晶技术并没有完全成熟,所以经常会有坏点出现,一般来说,3个或3个以下的坏点都属正常情况,坏点可能是黑色的暗点、白色的亮点,也可能是红黄蓝绿等彩色的坏点。这些坏点在开机情况下呈现持续亮或暗,关机后仍会持续数秒残留影像才会消失,这是正常情况;
5、擦拭屏幕一定要使用柔软的布或纸巾,不要使用粗糙的纸或卫生纸等擦小P的屏幕。

五:其它常识:

1、影视资源的存放问题:
由于各种自制软件、程序的下载及教程都可以在本论坛找到,我就不详细说明了,只提醒各位新手:影视资源需存放到相应的文件夹,这些文件夹是需要自己建立的,如MP4和AVC文件的存放位置,需要在记忆棒根目录建立MP_ROOT文件夹,里面再建立100MNV01和101ANV01两个文件夹,MP4文件放在100MNV01里面,AVC文件则放在后面的文件夹里。PMP文件放在根目录PSP目录下的自建video文件夹。具体播放方式请参考教程;
2、长时间不使用PSP,请将电池取出;
3、切勿将小P在阳光下暴晒或放在磁场强烈的地方,否则容易损坏PSP的硬件;

最后:PSP的画面会在每月1日自动更新,遇到这种情况的菜鸟不必不知所措。

PSP系统中文说明书

一:PSP是什么东西

二:PSP的硬件参数以及规格

三:如何对PSP进行开关机操作

四:PSP专用光盘UMD介绍以及放置方式

五:如何放入/取出PSP记忆棒

六:PSP下载的游戏镜像该放置在哪里

七:PSP使用的电池

八:如何为PSP充电?

九:PSP的标准装备有哪些

十:如何拿PSP

十一:PSP键位示意图

十二:PSP专用光盘UMD介绍以及放置方式

十三:如何保存PSP相关数据

十四:如何装入PSP电池

十五:玩PSP的时候需要注意的其他事项

1.NETWORK UPDATE(网络升级)
用于通过网络升级PSP主机的操作系统,需要能上网的PC和无线网卡支持。

2.USB CONNECTION(USB连接)
PSP用USB连接线连接PC后必需选择此项才能被PC识别。

3.VIDEO SETTINGS(影像设定)
┠MENU LANGUAGE : UMD影片的菜单语言设定
┠AUDIO LANGUAGE :UMD影片的语音语言设定
┠SUBTITLE LANGUAGE :UMD影片的字幕语言设定
┗UMD VIDEO VOLUME :UMD影片的音量设定,选择 2后可听到PSP喇叭的最大音量

4.PHOTO SETTINGS(图片设定)
可以调节幻灯片模式下图片的切换速度

5.SYSTEM SETTINGS(系统设定)
┠NICKNAME:昵称设定,输入时按SELECT可切换文字类型,输入相应的平假名后按△键可显示日语汉字
┠SYSTEM LANGUAGE:系统语言设定
┠BATTERY INFORMATION:电池信息,可查看剩余电量等信息
┠FORMAT MEMORY STICK:格式化记忆棒
┠RESTORE DEFAULT SETTINGS:所有设定初始化(恢复出厂设定)气)
┠SYSTEM INFORMATION:系统信息,可查看MAC地址 操作系统版本等信息
┗ABOUT PSP:关于PSP(快速按2下○键可以使屏幕全黑,方便查看坏点)

6.DATE&TIME SETTINGS(时间日期设定)
┠DATE&TAME:日期和时间设定,随着月份的改变,PSP的菜单背景颜色也会改变
┠DATE FORMET:日期的显示格式,可选择YYYY/MM/DD DD/MM/YYYY MM/DD/YYYY 3种格式
┠TIME FORMAT:时间格式,可选择12小时制或24小时制
┠TIME ZONE:选择时区
┗DAYLIGHT SAVING:夏令时

7.POWER SAVE SETTINGS(省电设定)
┠BACKLIGHT AUTO-OFF:背光自动关闭设定
┠AUTO SLEEP:自动休眠设定
┗WLAN POWER SAVE:无线通迅机能省电设定

8.SOUND SETTINGS(声音设定)
┠AVLS:自动音量控制系统,开启后音量会被控制在一定范围内防止使用者听不到外界声音
┗KEY TONE:按键音开关

9.SECURITY SETTINGS(UMD影片年龄限制设定)
┠CHANGE PASSWORD:更改密码,初始密码是 0000
┗PARENTAL CONTROL LEVEL:设置 需要密码才能播放的 UMD影片级别

10.NETWORK SETTINGS(网络设定)
┠AD HOC MODE:PSP和PSP互连模式设定
┗INFRASTUCTURE MODE:连接到热点模式设定

什么才叫掌上游戏机?索尼会用PSP给所有追求时尚的消费者印证真正的“多媒体掌上娱乐系统”含义,任天堂用了几乎20多年的时间来打造Gameboy品牌,然而索尼只用了两年不到的时间便让所有人深刻记住的"PSP"这个名字,可见品牌号召力并非浪得虚名,对吧?

今天笔者将从如何保养PSP说起,与广大玩家分享一下PSP正确使用及保养心得。

首先有必要解释一下“砖头”这个专门用来形容PSP极具讽刺性的名词,顾名思义,PSP比较重,如果工作不能就完全失去了游戏机的意义,所以“砖头”就是专门指固件系统出了故障作废的PSP。以下便来正式列举PSP保养五大守则:

1.使用第三方软件
也就是这个致命性损害所以使到有“砖头”这个代名词的流行,所谓第三方软件就是指并没有得到索尼官方认可的PSP软件,包括了PSP用的模拟器、ISO 引导程序、PSP降级程序、刷写全中文系统等等的非法程序。正是因为这些程序都是一些国外的编程小组自行编写的程序,并没有得到官方严格测试,所以难保程序中会有一些BUG导致PSP内的固件数据丢失或被修改,从而使PSP无法再次正常启动。
使用第三方软件导致固件数据出错,跟刷写电脑主板Bios数据错误原理大致相似,存在一定风险,但是修复也并非十分困难,问题是我们并没有索尼专门用来刷写PSP固件数据的机器。
要避免以上风险,最根本的做法还是拒绝使用第三方软件,这样就能保证你的PSP不收其害,假如必要时用到,一定要按提示操作,特别是退出软件的步骤,通常软件界面会有介绍,往往变成砖头就是因为退出程序时运行错误而向固件写入了错误信息所致,比如使用最新的ISO引导程序,切勿在游戏中直接按HOME键跳出游戏,必须按 L R Start 跳至菜单界面,然后再按△键退出程序。
连月来笔者一共调查了多达百名的PSP玩家,统计下来平均100个经常使用第三方软件的PSP玩家之中,有3个是因为不正确操作甚至是无故出错引致开机不能,尽管3%这个数据并不高,但如果你不想沉溺在胆战心惊的恐惧下享受游戏,那还是拒绝第三方软件为妙。
伤害系数:7
砖头几率:3%
实现原因:系统固件被错误刷写导致开机不能
解决方案:重新写入固件数据 / 更换PSP储存Rom的固件

2.使用组棒
组棒美曰其名为组装记忆棒,实质是假货。其实就是山寨小作坊通过来历不明的渠道收购闪存芯片厂商的闪存芯片,这些闪存芯片多半都是不达标或者是有瑕疵的半成品,再经过地下工厂的加工,最后套个外壳就推出市场低价售卖。
正如以上所说的,组棒是山寨小作坊的次品货,是没有经过正规厂商严格的检测流程,所以难免在使用过程中存在众多莫名其妙的错误。相信众多使用过组棒的 PSP玩家也会有相同的经历,在使用过程中无故死机、或者在运行完相关程序后突然不能读取记忆棒内容,重新格式化后又能正常读取、甚至在正常使用过程中 PSP的记忆棒指示灯突然一阵狂闪,随后记忆棒就作废了……
笔者采访过十余户PSP零售商,对方都一致反映开机不能的PSP全部都是使用组棒的,使用原装记忆棒的PSP玩家基本上没有出现过突入其来的错误,至于组棒,1G容量组棒返修率最高,次之是2G容量,其实我们通过专业软件来测试记忆棒的传输速度可知,组棒的稳定性极差,时快时慢,甚至有时还不能被软件认出。
笔者又请教了对闪存芯片方面有所研究的行家,据表示闪存芯片能正确地实现与机器之间数据互传,闪存与PSP之间存在电压,此时闪存内的控制芯片担当着重要的角色,如果控制电压过低,PSP可能会无法正常读取组棒正在传送中的信息,导致死机;而控制电压过高的话,可能会使有过高的电流回流到PSP主板上,导致烧毁,从而开机不能……
“一分钱一分货”绝对是硬道理,何必为了芝麻而丢了西瓜?我们太平洋游戏网强烈建议广大PSP玩家使用经过严格检测认证的行货记忆棒,切勿因小失大。
伤害系数:9
砖头几率:5%
实现原因:记忆棒控制芯片出错使PSP回路电流过高以烧毁
解决方案:更换PSP电路主板

3.液晶屏幕暴晒暴寒
部分玩家反映PSP的拖影现象越来越严重,这个得分两方面来探讨,首先得承认PSP的液晶面板响应速度本来就不够快,其次如果玩家保养得不好会导致液晶屏加速老化,残像更明显。先天因素无法解决,笔者就来分享一下后期的使用保养要点。
液晶是一种在一定温度范围内呈现既不同于固态、液态,又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性,又具有液体的流动性。一般可分热致液晶和溶致液晶两类。在显示应用领域,使用的是热致液晶,超出一定温度范围,热致液晶就不再呈现液晶态,温度低了,出现结晶现象,温度升高了,就变成液体;液晶显示器件所标注的存储温度指的就是呈现液晶态的温度范围。
鉴于独特的组成结构,液晶屏幕可以说很娇气,指定的工作温度为8~40度,超出了以上范围则很可能对液晶分子造成永久性损害,要想PSP在长期内仍保持颠峰状态的显示效果是需要玩家在后期自行保养的,而要达到最理想的图象效果,环境温度需控制在20~30度之内最佳。
笔者去年夏天曾把PSP放桌上就外出,窗帘忘了拉起来,中午时分阳光直接暴晒于桌上的PSP,傍晚笔者回家使用时立即感觉到PSP屏幕残像变本加厉,甚至连看电影的时候也明显感觉到拖影,但已经造成了不可修复的永久性伤害…… 冬天也一样,切勿把PSP曝露在温度较低的环境中,实在太低的环境下除了注意“保暖”外,建议一定时间开机播放电影,让液晶分子保持在激活状态。以上是一些个人心得,切勿忽略了液晶屏幕保养的重要性!
伤害系数:6
实现几率:30%
实现原因:液晶体分子很容易受温度影响造成永久性损害
解决方案:更换PSP液晶面板 4.滥用第三方未经索尼认证配件
PSP普及率提高了,国内的一些地下作坊也抢着推出各自的周边配件,如:二合一数据/充电线、屏幕保护膜等等配件,尽管价格上跟经过官方认证的日本原装件有一定差距,但实际效果却出奇恶劣。
众所周知PSP屏幕容易磨损,所以买机时配一张屏幕保护膜是必不可少的,一张原装HORI贴膜通常卖50元,而国内厂商的贴膜仅要30元就能买到,然而贴上HORI原装贴膜无论透光率和耐磨度都远远高于国产贴膜,国产贴膜甚至影响屏幕表现效果,又容易留有指纹,几乎没有存在的必要!
至于市面上的二合一数据传输/充电线同样存在瑕疵,所谓的充电线,主要是因为电脑的USB接口输出电压为5V,而PSP的AC电源适配器输出电压也是5V,如此就等同于用电脑的USB接口来给PSP充电,然而电脑的USB接口输出电压是非常不稳定的,有兴趣的玩家不妨用万用表测试一下,通常都只有4V左右,不稳定的电压长远来说对PSP也会有一定影响,所以还是建议使用索尼配备的电源适配器为佳。
伤害系数:2

5.使用过程中热插拨耳机线
有部分玩家反映在PSP正常使用过程中突然拔出PSP线控后就立即黑屏,随后就不能开机长眠了……很明显这是回路电流过大而引起烧机,玩家可以通过 PSP耳机听到声音是因为耳机在做功,而要使耳机做功必须通过PSP本体供电到耳机,当突然拨出线控一刻会形成一股电流,强度足以击毁PSP主板局部零件,所以插拨耳机线控的时候请关掉主机。
其实早在PS时代已经有玩家提出主机通电情况下热插拨手柄会导致烧机,原理跟这个差不多,除非主机内置了电阻系数足以容纳瞬间电流强度的保险丝,否则烧毁的几率比《最终幻想X》的遇敌率还高!
伤害系数:9
砖头几率:25%
实现原因:回路电流击毁PSP主板电子部件
解决方案:更换PSP主板

PSP,一个超时代的主机,方便实用,外表超酷,为此,很多拥有者,包括你我,都拿它当宝贝一样供着,爱护备至,当然了,两千大洋对我们广大工薪阶层,确实不是算一个小数目,买回家后,呵护备至,理所当然。

小P到手快4个月了,其中有过刷机的刺激,玩不出游戏的着急,无意损坏的悲哀,购买周边的乐趣,以及自己打出一个完美存档的满足,这其中的酸甜苦辣,我想是广大P友们共同的PSP情结。

在使用过程中,我总结出了一些心得,写出来,以供参考,同意与否,全在个人观点,任君自取。

1:屏幕问题
你的PSP是否完美屏?为什么人家的机器用了好久还是完美屏,可我的屏幕却出现坏点?你是不是有这样的疑问呢?那么我们来看看应该怎么保养屏幕吧

液晶屏怕冷不怕热,不要在低温下放置你的PSP(比如放在冰箱里)

液晶屏的亮度等级和使用寿命息息相关,如果你一只习惯在高亮度下玩游戏,那么,你就要做好你的屏幕寿命缩短的心理准备。

液晶屏怕日晒,切勿因为你爱护PSP,而让它去享受日光浴

无论什么屏幕,都怕单一静止不动的画面,静止画面下不要待机太久

液晶屏幕怕重压,特别在清洁你心爱的PSP时,千万不要因为你力气大,而死气白冽的擦拭屏幕。

2:机内进灰

你再为此而担惊受怕么?别怕,在你使用PSP的时候,因为在不断的运动,那时候进会是不太可能的,进灰主要是在你不使用的时候,那怎么预防呢?很简单,摆放PSP的时候,不要正面摆放,把它翻过来放,UMD仓向上,这样,进灰的可能性将降低到1%,为什么?好好观察一下你就知道了。

3:电池问题

尽量不要使用外接电源(不是充电器,是额外的外接电源)因为现在市面上的那些外接,质量实在不敢恭维,还是不用的好

不怕充电久(PSP有自动切断保护)就怕久补充,不要到了山穷水尽在充电,在电量6%的时候,就可以充电了,当你的PSP电源灯开始闪烁的时候,你就可以为你的PSP补充能量了

边充电边玩,完全不影响电池寿命,尽可放心

4:玩游戏不是打架,操作的时候不要用太大力气

5:少玩变态游戏,一场DJ下来,你的PSP按耨寿命至少缩短1%

6:不要用酒精擦拭你的PSP,有腐蚀效应

7:一定要用高质量的铝盒,至少我的便宜铝盒送人了,因为我发现我的PSP上,出现了许多划痕,劣质硬盒是PSP破相杀手。怕破相?别怕花钱

8:充电游戏的时候,千万注意PSP充电接口,不要让其受压,摇晃,PSP充电口不是按保护,裸露在外的接口,在受到外力摇晃的时候,会使焊点松动,那样挺麻烦的

9:先关机,插上接口后再通电源,通电情况下插拔电源,电源口和电源口金属接触的一霎那,会有瞬间强电,所以尽量避免先插电源,再接接口的情况

10:拔电源时候相反,先拔电源,再拔接口,道理同上

11:R建设置不要太频繁,改变其速率等运行方式,改动多了容易对机器造成损坏

12:UMD不要经常拿进拿出,搞不好那天就会出现机械损伤
参考技术B 文件系统损坏了。具体哪里被破坏了需要手工分析,如果软件扫描恢复的效果不满意,可以联系我远程在线恢复。

参考资料:http://hi.baidu.com/%CA%FD%BE%DD%BB%D6%B8%B40

本回答被提问者采纳
参考技术C 没有办法,应当是硬盘部分区域损坏,即使修复了,里面的文件也无法恢复,你要去一趟专业维修计算机

学习 Python 之 Pygame 开发魂斗罗

学习 Python 之 Pygame 开发魂斗罗(一)

Pygame

回忆Pygame

在之前的学习中,咱们使用Pygame开发出了坦克大战,这次再使用Pygame开发魂斗罗,如果有想学习开发坦克大战的小伙伴,可以看看下面的博客

学习 Python 之 Pygame 开坦克大战(一)

学习 Python 之 Pygame 开坦克大战(二)

学习 Python 之 Pygame 开坦克大战(三)

学习 Python 之 Pygame 开坦克大战(四)

学习 Python 之 Pygame 开坦克大战(五)

下面再回顾一下Pygame创建窗口、播放音乐等操作

Pygame的官方文档

函数名称作用返回值
pygame.display.init()初始化展示模块None
pygame.display.set_mode(size = (0, 0))初始化窗口(窗口就是一个Surface对象)Surface
pygame.display.set_caption(title, icontitle = None)设置窗口标题和图标None
pygame.Surface.fill(color, rect = None)用纯色填充表面Surface对象None
pygame.Color(b, g, r)创建用于颜色表示的Pygame对象Color
pygame.display.update()更新屏幕None
pygame.event.get()获取事件队列Eventlist
pygame.image.load(filename)从文件加载图片(图片跟窗口一样,也是Surface对象)Surface
pygame.Surface.get_rect()获取Surface对象的rect属性Rect
pygame.Surface.blit(source, dest, area = None)在一个Surface对象上显示另一个Surface对象Rect
pygame.font.init()初始化字体模块None
pygame.font.SysFont(name, size, bold = False, italic = False)从系统字体创建字体对象Font
pygame.font.render(text, antialias, color, background = None)创建一个带有指定字体的Surface对象Surface
pygame.mixer.init()初始化混合器模块None
pygame.mixer.Sound(filename)从文件创建声音对象Sound
pygame.mixer.Sound.play(loops = 0, maxtime = 0)播放音乐,loops参数控制播放次数,播放次数为loops + 1次。默认为0,表示声音不会重复,只播放一次。如果loops为-1,声音将无限循环Channel
pygame.mixer.Sound.stop()声音停止播放None
pygame.mixer.Sound.set_volume(value)设置音量None
pygame.transform.flip(surface, flip_x, flip_y)图片翻转Surface
pygame.transform.scale(surface, size)将图片(Surface对象)调整为大小为(width, height)的新图片Surface
pygame.time.Clock()用于帮助跟踪时间以及控制游戏帧速率的类Clock
pygame.time.Clock.tick(framerate = 0)设置游戏运行的帧率milliseconds
pygame.time.Clockget_fps()计算游戏的帧速率(以帧每秒为单位)float

1. 使用pygame创建窗口

import pygame


# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Contra')

创建结果

窗口一闪而过

2. 设置窗口背景颜色

# 设置窗口背景颜色
blue = 255
green = 0
red = 255
BACKGROUND_COLOR = pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)

# 更新窗口
pygame.display.update()

完整代码

import pygame
import time

# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH = 1100
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Tank Battle')

# 设置窗口背景颜色
blue = 255
green = 0
red = 255
BACKGROUND_COLOR = pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)

# 更新窗口
pygame.display.update()

# 让程序休眠200秒,方便观察窗口的变化
time.sleep(200)


不要忘记更新窗口,否则不会显示颜色的

实际上,颜色可以不用使用 pygame.Color(blue, green, red) 来创建,直接使用元组的方式

WHITE = (255, 255, 255)

这样的方式传入

window.fill(WHITE)

也是可以生效的,为了方便直接用红绿蓝序列即可

3. 获取窗口中的事件

def getWindowEvent():
    for event in pygame.event.get():
        # 点击窗口右上角的关闭触发的事件
        if event.type == pygame.QUIT:
            sys.exit()
        # 鼠标按下事件
        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = event.pos
            print('鼠标按下, 鼠标位置(x, y)'.format(x = x, y = y))
        # 鼠标抬起事件
        elif event.type == pygame.MOUSEBUTTONUP:
            print('鼠标抬起')
        # 键盘按键按下事件
        elif event.type == pygame.KEYDOWN:
            print('键盘按键按下')
            # 具体键盘事件触发
            if event.key == pygame.K_j:
                print('按下键盘 j 键')
        # 键盘按键抬起事件
        elif event.type == pygame.KEYUP:
            print('键盘按键抬起')

完整代码

import pygame
import sys

def getWindowEvent():
    for event in pygame.event.get():
        # 点击窗口右上角的关闭触发的事件
        if event.type == pygame.QUIT:
            sys.exit()
        # 鼠标按下事件
        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = event.pos
            print('鼠标按下, 鼠标位置(x, y)'.format(x = x, y = y))
        # 鼠标抬起事件
        elif event.type == pygame.MOUSEBUTTONUP:
            print('鼠标抬起')
        # 键盘按键按下事件
        elif event.type == pygame.KEYDOWN:
            print('键盘按键按下')
            # 具体键盘事件触发
            if event.key == pygame.K_j:
                print('按下键盘 j 键')
        # 键盘按键抬起事件
        elif event.type == pygame.KEYUP:
            print('键盘按键抬起')

# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH = 1100
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Contra')

# 设置窗口背景颜色
blue = 255
green = 0
red = 255
BACKGROUND_COLOR = pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)

while 1:
    # 获取键盘事件
    getWindowEvent()

    # 更新窗口
    pygame.display.update()

运行后按下鼠标左键,键盘s键,键盘w键

结果

鼠标按下, 鼠标位置(355, 170)
鼠标抬起
键盘按键按下
键盘按键抬起
键盘按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
W按键按下
键盘按键抬起

系统的事件都具有一组成员属性。下面是事件类型及其特定属性的列表图(图片来源链接

学习 Python 之 Pygame 开坦克大战(一)中,我们使用的是另一种形式,这两种差别不大,大家仔细对比一下

在上面的结果中,“W按键按下”打印的次数与窗口的帧率有关系,在下面我们会说到

4. 在窗口中展示图片

(1). pygame中的直角坐标系

(2). 展示图片

import pygame


# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH = 1100
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Contra')

# 设置图片路径
path = '../Image/Map/第一关BG.png'
# 加载图片
image = pygame.image.load(path)
# 获取直角坐标
rect = image.get_rect()
# 设置图片的位置,在(0,0)处加载图片
rect.left = 0
rect.top = 0
# 在窗口显示
window.blit(image, rect)

while 1:
    # 更新窗口
    pygame.display.update()

(3). 给部分区域设置颜色

import pygame

# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Contra')

# 设置窗口背景颜色
blue = 255
green = 0
red = 255
BACKGROUND_COLOR = pygame.Color(blue, green, red)
window.fill(BACKGROUND_COLOR)

# 给部分区域设置颜色
rect = pygame.Rect(200, 200, 200, 300)
REGION_COLOR = pygame.Color(50, 50, 150)
window.fill(REGION_COLOR, rect)

while 1:
    # 更新窗口
    pygame.display.update()

5. 在窗口中显示文字

import pygame


# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Contra')

# 设置文字内容
text = 'Hello Pygame'

# 初始化字体
pygame.font.init()
# 设置文字字体和大小
fontSize = 16
font = pygame.font.SysFont('georgia', fontSize)
# 加载文字并设置颜色
fontColor = pygame.Color(255, 255, 255)
fontObject = font.render(text, True, fontColor)
# 设置展示位置
position = (50, 50)
# 展示文字
window.blit(fontObject, position)

while 1:
    # 更新窗口
    pygame.display.update()

运行结果

6. 播放音乐

import pygame


# 初始化混合器模块
pygame.mixer.init()
# 加载音乐
sound = pygame.mixer.Sound('./star.wav')
# 播放音乐
sound.play()

7. 图片翻转与缩放

import time
import pygame

def enlarge(image: pygame.Surface, scale):
    """
    缩放图片
    :param image: 要缩放的图片
    :param scale: 图片缩放尺寸
    :return: 缩放后的图片
    """

    # 获取图片大小
    rect = image.get_rect()
    # 长宽扩大 scale 倍
    largeSize = (int(rect.width * scale), int(rect.height * scale))
    # 对图片缩放
    large = pygame.transform.scale(origin, largeSize)
    return large

def flip(image: pygame.Surface, h, v):
    """
    图片翻转
    :param image: 要翻转的图片
    :param h: 是否水平翻转
    :param v: 是否上下翻转
    :return: 翻转后的图片
    """

    return pygame.transform.flip(image, h, v)

# 初始化展示模块
pygame.display.init()
# 设置窗口大小
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Contra')

# 加载原图
origin = pygame.image.load('../Image/Map/第一关BG.png')
# 显示原图
rect = origin.get_rect()
rect.x = 0
rect.y = 0
window.blit(origin, rect)

# 更新窗口
pygame.display.update()
time.sleep(2)

# 图片缩放2.5倍
large = enlarge(origin, 2.5)
# 显示原图
rect = large.get_rect()
rect.x = 0
rect.y = 0
window.blit(large, rect)

# 更新窗口
pygame.display.update()
time.sleep(2)

# 图片翻转
img = flip(large, True, False)
# 显示原图
rect = img.get_rect()
rect.x = 0
rect.y = 0
window.blit(img, rect)

# 更新窗口
pygame.display.update()
time.sleep(2)

先看看原图

放大2.5倍的图


翻转图片,这里是左右翻转,图片的最后是BOSS关,翻转过来就先显示BOSS关卡啦

水平翻转大家可以自己试一试


自己封装的图片缩放函数

def enlarge(image: pygame.Surface, scale):
    """
    缩放图片
    :param image: 要缩放的图片
    :param scale: 图片缩放尺寸
    :return: 缩放后的图片
    """

    # 获取图片大小
    rect = image.get_rect()
    # 长宽扩大 scale 倍
    largeSize = (int(rect.width * scale), int(rect.height * scale))
    # 对图片缩放
    large = pygame.transform.scale(origin, largeSize)
    return large

自己封装的图片翻转函数

def flip(image: pygame.Surface, h, v):
    """
    图片翻转
    :param image: 要翻转的图片
    :param h: 是否水平翻转
    :param v: 是否上下翻转
    :return: 翻转后的图片
    """

    return pygame.transform.flip(image, h, v)

8. 设置游戏帧率

创建一个对象来帮助跟踪时间,并设置帧率

clock = pygame.time.Clock()
fps = 60

在循环中设置帧率,并把帧率显示在标题上

while 1:
    # 设置帧率
    clock.tick(fps)
    r = clock.get_fps()
    caption = 'Contra - :.2f'.format(r)
    pygame.display.set_caption(caption)

    # 更新窗口
    pygame.display.update()

完整代码

import pygame

# 初始化展示模块
pygame.display.init()

# 设置窗口大小
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
size = (SCREEN_WIDTH, SCREEN_HEIGHT)
# 初始化窗口
window = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption('Contra')

clock = pygame.time.Clock()
fps = 60

while 1:
    # 设置帧率
    clock.tick(fps)
    r = clock.get_fps()
    caption = 'Contra - :.2f'.format(r)
    pygame.display.set_caption(caption)

    # 更新窗口
    pygame.display.update()

看看结果,可以看到窗口上有帧率显示了,60表示 1秒窗口要刷新60次

以上是关于“无法访问L:\ 文件或目录损坏且无法读取"的主要内容,如果未能解决你的问题,请参考以下文章