游戏里load什么意思推荐word版 16页Word文件下载.docx
《游戏里load什么意思推荐word版 16页Word文件下载.docx》由会员分享,可在线阅读,更多相关《游戏里load什么意思推荐word版 16页Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
Sprite.add添加精灵到group中去。
Sprite.remove从group中删除
Sprite.kill从groups中全部删除精灵
Sprite.alive判断精灵是否属于groups
三、建立一个简单的精灵
所有精灵在建立时都是从pygame.sprite.Sprite中继承的。
(1)做一个精灵,绘制一个宽30、高30的距形,具体代码如下:
classTemp(pygame.sprite.Sprite):
def__init__(self,color,initial_position):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.Surface([30,30])
self.image.fill(color)
self.rect=self.image.get_rect()
self.rect.topleft=initial_position
这里逐句进行一下分析,pygame.sprite.Sprite.__init__(self)完成初始化。
self.image=pygame.Surface([30,30])定义显示30*30的一个距形surface。
self.image.fill(color)用color来填充颜色。
self.rect=self.image.get_rect()获取self.image大小。
self.rect.topleft=initial_position确定左上角显示位置,当然也可以用topright、
bottomrigh、bottomleft来分别确定其他几个角的位置。
精灵的显示,在一个640*480大小的白色窗体[50,100]的位置绘制一个3
0*30大小的红色距形,完整代码如下:
importpygame,sys
pygame.init()
screen=pygame.display.set_mode([640,480])
screen.fill([255,255,255])
b=Temp([255,0,0],[50,100])
screen.blit(b.image,b.rect)
pygame.display.update()
whileTrue:
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
sys.exit()
(2)做一个精灵,显示内容为某一图片,这里以前面用过的小车图片为例,代码如下:
代码如下:
classCar(pygame.sprite.Sprite):
def__init__(self,filename,initial_position):
self.image=pygame.image.load(filename)
#self.rect.topleft=initial_position
self.rect.bottomright=initial_position
printself.rect.right
fi='
ok1.jpg'
b=Car(fi,[150,100])
这段代码与
(1)的不同之处在于self.image定义为pygame.image.load(filename),用来显示filename文件,本代码使用了ok1.jpg文件,并定义了小车右底角的显示位置是[150,100]。
三、学习精灵组
(1)使用精灵在屏幕上放多个图像,这种方法没用利用精灵组的概念,而是利用了list来生成每一个精灵。
Cargroup用来存储不同位置的Car,screen.blit(carlist.image,carlist.rect)逐个显示每一个精灵。
具体见代码:
篇二:
游戏框架
1017
ANT使用指南:
1.ANT是基于Java的生成工具,生成文件是用XML编写的。
每个生成文件由单个project元素组成,该元素又包含一个或多个target元素。
<
?
xmlversion="
1.0"
>
projectdefault="
init"
targetname="
/target>
/project>
2.属性
3.Eclipse中的文件关联
从菜单上选择Window=>
Preferences,然后展开Workbench组,
再选择FileAssociations参数设置页面。
1018
RPG类游戏开发框架
1.CGame初始化构造方法:
publicCGame(){InitializeBuffer();
//获得屏幕,得到一个Graphics实例
Config();
/*开启sms短信;
检查游戏发送渠道和信息config1();
初始化开机画面
SetGameStatus()--->
InitLogoShow--->
res.createImage
*/
pCanvas=newPayCanvas(Midlet.s_midlet,this,"
35"
SP_ID,"
01"
rmsLoadSms,DScreen.SCREEN_WIDTH,Screen.SCREEN_HEIGHT+addHeight,false);
//绘制开机画面
}
2.run()游戏入口重写接口Runnable.run()方法
publicvoidrun(){
smsc=System.getProperty("
wireless.messaging.sms.smsc"
);
//短信repaint();
serviceRepaints();
//强制重绘
mainLogic();
/*根据游戏状态加载游戏界面;
加载游戏LOGO画面KeyLogoShow(){
initGameOption();
Res.loadHzk();
//敌人属性FightingGame.loadFightEnemyArray("
fe"
//BOSS属性FightingGame.loadFightBossArray("
fb"
loadRMS(rmsLoadLv);
InitMainMenuRes();
Res.creatUiImg();
SetGameStatus(Data.GS_SOUND_OPTION);
Mainlogic()主方法{
根据状态加载各种游戏信息}
Paint()界面初始化paintgame()
Res资源类
Run(){
Repaint();
//调用paint()
MainLogic();
mainLogic(){//主方法,根据s_gameStatus状态判断,加载各种画面
switch(s_gameStatus){
caseData.GS_GAME_MAP:
keyworldmap();
break;
caseData.GS_BBX_LOAD:
KeyBbxLoad();
caseData.GS_OUR_LOGO:
KeyLogoShow();
caseData.GS_SOUND_OPTION:
KeySoundOption();
caseData.GS_MAIN_MENU:
KeyMainMenu();
caseData.GS_HELP_ABOUT:
KeyHelpAbout();
caseData.GS_MODE_MENU:
KeyModeMenu();
caseData.GS_HIGHT_SCORE:
KeyHiScore();
caseData.GS_GAME_LOAD:
KeyLoadGame();
}caseData.GS_GAME_FIGHTING_LOOP:
KeyGameFightingLoop();
break;
caseData.GS_GAME_FILM_LOOP:
Script.waitScript();
KeyGameFilmLoop();
caseData.GS_GAME_PAUSE:
KeyGamePause();
caseData.GS_GAME_SCENE_LOOP:
if(!
Script.waitScript())KeyGameSceneLoop();
caseData.GS_GAME_FREE:
KeyFreeGame();
caseData.GS_GAME_LAST:
KeyLastGame();
GS_OUR_LOGO:
KeyLogoShow(){initGameOption(
getSmsIndex(loadRMSsms());
短信
//读取u/zk.hy,作用未知//敌人属性FightingGame.loadFightEnemyArray("
//读取d/fe.hy文件//BOSS属性FightingGame.loadFightBossArray("
//读取d/fb.hy文件loadRMS(rmsLoadLv);
(loadRMS_loaderIndex())mainMenuIndex=0;
InitMainMenuRes(createImage(readIntBigEndian();
makePng2()));
Res.creatUiImg(createImage());
GS_SOUND_OPTION:
KeySoundOption(){
IsKeyPressed()//判断按键
setSound(playSound();
SetMusicVolume();
GS_MAIN_MENU:
KeyMainMenu(){
IsKeyPressed(GK_A|GK_SOFT_LEFT)
caseData.MENU_START:
isSpecialFilm=Data.GAME_START_FILM;
openShutter(Data.GS_GAME_LOAD);
//读取游戏资源界面paintgame();
/*isPaintShutter=true;
drawSceneNameTime=dSNT;
startLoad=true;
timeNow=0;
gotoState=state;
caseData.MENU_CONTINUE:
isSpecialFilm=Data.GAME_FREE_FILM;
caseData.MENU_MORE:
platformRequest(url_wap);
caseData.MENU_OTHER_MORE:
platformRequest(url_wap2);
caseData.MENU_SOUND:
SetGameStatus(Data.GS_SOUND_OPTION);
caseData.MENU_HELP:
caseData.MENU_ABOUT:
SetGameStatus(Data.GS_HELP_ABOUT);
caseData.MENU_EXIT:
SetGameStatus(Data.GS_GAME_FREE);
GS_GAME_LOAD:
KeyLoadGame(){
switch(s_time):
case2:
Res.hideSoundNotify();
//隐藏声音
篇三:
可怕效果在游戏中的营造——怖、惧、悚、怯
可怕效果在游戏中的营造
——怖、惧、悚、怯
本文并非一篇学术性(指心理学)文章,仅由提出的一明确定义——害怕的原因——推出可怕效果的一些设计原则。
本文所给出的“害怕的原因”并无学术价值,可认为是设计上的一种手段。
本文有些长(万余字),提的概念可能和通常理解不同,如果有什么异议,请耐心看完,也许你的问题后面有所提及。
恐怖游戏虽然没有明确的定义,但却在现代电子游戏中占有重要的地位,如《寂静岭》系列和《生化危机》系列。
这类游戏都是以营造恐怖效果为手段来吸引玩家,即令玩家害怕。
首先应指出,害怕是一种LowFeels,是不利于玩的因素,即如果游戏令玩家害怕,那么玩家是不会觉得好玩的。
那为什么恐怖游戏又如此受欢迎?
在我的另一篇文章《游戏论》中曾指出,恐怖游戏之所以受欢迎是因为它带给玩家一种HighFeel——刺激。
刺激是指由于潜意识(以往的经历)感到害怕但客观意识上认为不可怕而导致的一种感觉。
潜意识即不自觉的,它是由原来的经历产生的(这不准确,不过对本文的说明已足够)。
小时侯听别人讲鬼故事。
鬼总是晚上出来,披着长长的头发,脸都看不见,双脚不着地,在空中飘,这是其一。
鬼很可怕,这是其二。
当从小就听这种类似东西以至只要夜晚看见白衣长发空中飘动就能联想到鬼,进而害怕,此时就已经完成潜意识了,但还没完成可怕,为此,需要了解人为什么会害怕。
为了研究可怕效果的营造,需先明确害怕。
在此,认为人不管因为什么害怕,都是由于他害怕的事物会令他产生LowFeels(并非学术观点,仅为本文所用)。
所谓LowFeels就是不好的感觉,不希望有的感觉,如疼、饿、渴等,这在《游戏论》中曾经给出。
那么人怕鬼的根本是因为说鬼故事的人又说了其三——鬼会吃人、鬼的脸都烂了、鬼会抓人回去做奴隶等一系列让人Low的事情。
非常糟糕地还有其四——鬼力气很大、鬼能抓到人但人却抓不到鬼等。
这表示鬼一定能让人感到Low,进而建立起一见夜晚白衣长发空中飘就害怕的潜意识。
人的客观意识指人的逻辑思维,应注意这里用“客观”一词并不准确。
感受刺激的人通过逻辑判断,认为当前一切虽然可怕但实际不用害怕(注意这也包括拿不准,即自认为可能不用害怕),非常可惜的是这个人可能判断错误。
如蹦极跳的人,他知道他脚上绑了一根不可能断的绳子,虽然高速下落后与水面的碰触会产生非常大的LowFeels,但他逻辑判断出不可能碰触,因此他觉得刺激。
当绳子拉紧过程中突然断掉,他就会立刻非常害怕,因为他相信牛顿说的自己铁定要和水面撞上了,他害怕由此带来的LowFeels。
当他脱险被人从水中救出后,他可能会说:
“刚才真是太刺激了”,因为他逻辑判断出刚才自己是安全的(因为现在是安全的)。
他的大脑回想刚才的镜头,强劲的记忆功能回放刚才的所有感觉,无法逃避的潜意识立刻工作产生害怕,所以他说:
“回想起来都后怕”,这是一种对自己的逻辑判断失去信心的表现。
对上面“害怕的原因”的陈述,也许会有人指出人的天性本能就会产生一些害怕效应以保护自己。
解决问题应抓住重点进行简化。
在此可认为这种本能是一种经历(潜意识),只不过是出生前就已具有的罢了。
现已明确何谓刺激何谓可怕了,因此游戏出于带给玩家HighFeels应该努力制造刺激。
由于玩家一般是通过电脑或游戏机玩游戏,体感很少,因此可以保证玩家逻辑判断出自己是安全的,所以游戏设计者要制造刺激,就是要尽量营造可怕效果,这正是本文的目的。
对于
游戏中的可怕营造手段,也许还有其它,不过在此认为且只讨论四种——怖、惧、悚、怯。
怖——恐怖
怖指恐怖,人们经常会将恐怖和恐惧搞混,对此,让我们看下“怖”这个字。
“怖”,心字旁一个布。
布给人铺张的感觉,提供一强烈的“盖”的效果,表示害怕的感觉像一张布一样盖下来,即铺天盖地地压下来的可怕感觉。
乌云盖顶,被东西盖住头,都会产生一个感觉——黑暗。
这是因为人的眼睛不受光刺激时就反馈给大脑黑色的感觉,也因此,大部分恐怖游戏的营造手段就是暗。
如一个昏暗的手电筒配上主电源停电只路灯或紧急照明工作的场景,这基本已成为基础建设了。
上面的讨论是无意义的,因为根本没指出恐怖的究竟。
在此给出,恐怖指害怕不知道的东西。
因为不知道危险从何而来所以恐怖。
也正因为不知道会从哪进攻才会修筑一圈城墙将自己围住。
这其实就是危险像一张网,跑不掉,只能后退,最终被恐怖牢牢包住。
“害怕不知道的东西”有两层含义——“不知道害怕什么”和“害怕不能解释的东西”(其实两者是一个意思)。
太奇怪了,人为什么会连怕什么都不知道却害怕?
这完全有赖于潜意识。
一朝被蛇咬,十年怕井绳。
前面已经说了,害怕是不想有LowFeels。
人非常聪明,昨天手伸到红色气体(指火焰)中感觉很糟,所以今天就害怕把手伸到红色气体中,因为逻辑上及潜意识都判断出“手将很痛”。
这逻辑是不正确的,但非常流行,所有科学都以此逻辑为基础,相信规律是不会随时间而改变的(即使改变,又可找出规律随时间改变的规律,即拥有时间变量的规律。
不过此想法的前提是定有一规律不随时间而变,但这是不能保证的,就好像原来的人认为地球是平的一样)。
因此日后只要见到红色气体,不管是空中飘的还是某个喷嘴喷出的或某个物体散发的,都会下意识警惕自己以防碰触。
即人不知道是什么导致红色气体,但却害怕。
归根结底,人害怕的是现象,而非本质(即使你说自己就怕蛇,不怕绳子,但实际一个拍电影的道具蛇可能就真得让你害怕,可它不是蛇)。
因为人只能通过规律(表象)认知世界,不能通过规则(本原)判断世界。
所以上面怕的是类似蛇的东西和类似火焰的东西,并不是蛇和火焰本身,这也导致了设计上的方便。
所以设计“恐怖”时的一个重要手段是营造可怕的表象。
非常庆幸地玩家和游戏设计者都是人,因此设计者只要将自己害怕的现象放于设计中就行了,但不幸的就是地域文化的差别。
西方人对夜晚白衣长发空中飘往往不会觉得害怕,大多是追去看个究竟的反应。
同样道理,我们对于拿着镰刀的传教士或披着斗衣的吸血鬼也没太大感觉。
这要求针对不同玩家施以不同的恐怖效果。
如僵尸很可怕,但玩惯的玩家只会将其当作敌人来处理,即会对自己不利的东西。
此时僵尸的表象已完全失去作用,留下的仅是怪物一只而已。
对此,后面将给出一法。
不能解释的东西不一定会害怕。
如驾着驯鹿在空中派发礼物的圣诞老人、美丽纯洁的天使等。
因为我们至今不能解释任何非人造的事物,而所谓的科学理论只是经验的总结而非上帝的规定。
那人又为什么会害怕不能解释的事物?
其实还是上面那句老话,不想不爽而已。
美丽的天使会攻击人类,圣诞老人也会生气。
只要不能解释的事物给人的感官刺激和原来的某些可怕经历类似,如类似蛇、火焰等,就能令人恐怖。
这不等于没说吗?
这的确没抓住重点。
重点是未知事物给人一种可能危害自身的感觉,但又不知其运行规律,就好像和陌生人同走夜路、做着可能发生爆炸的化学实验一样,恐怖之感油然而生。
即令人抓不着头脑但又知对自身有危害。
因此,要产生恐怖,第一:
营造恐怖现象。
憎狞的面孔、腐烂的外表、暗绿的气息、诡异的配乐,如此之类,但坏处如前,人会习惯。
为此,我们需人造恐怖。
《生化危机2》中有一个XXX总会突然出现,能穿墙,攻击力大,半天打不死(这属于恐惧的范畴,后面讨论)。
很明显,玩家将很不爽他,这就可以利用。
每次他出现时,总给个特写以表明他的出现,然后镜头恢复到玩家身上。
以后只要出现他的特写,玩家就会紧张、害怕,因为不知道他在哪(镜头的切换是瞬间而非过渡,以至玩