文档库 最新最全的文档下载
当前位置:文档库 › 使用Cocos2D制作打鼹鼠游戏的教程

使用Cocos2D制作打鼹鼠游戏的教程

使用Cocos2D制作打鼹鼠游戏的教程
使用Cocos2D制作打鼹鼠游戏的教程

使用Cocos2D制作打鼹鼠游戏的教程(1)发布时间:2012-06-25 18:23:49 Tags:Cocos2d,Retina屏幕,鼹鼠游戏

作者:Ray Wenderlich

本系列教程共分为2部分,我将在第1部分中完成游戏的基本元素,即让可爱的

小鼹鼠能够从地洞中窜出来。我们将着重思考如何规划图像和坐标轴的设置,从

而让游戏在iPhone,iPad和Retina屏幕中能够有效地呈现出来。(请点击此处

查看第2部分)

规划图像设置:综述

因为我们希望这款游戏能够同时运行于普通的iPhone,拥有Retina屏幕的

iPhone以及iPad上,我们便需要在深入发展之前多花点时间仔细规划图像的设置。

为了掌握图像的规模和设置,我们首先需要考虑到以下要点:

Retina屏幕和UIKit

Retina屏幕和Cocos2D

iPad,iPhone和纵横比

Retina屏幕和UIKit

普通iPhone与拥有Retina屏幕的iPhone的区别在于,后者可以通过Retina

屏幕呈现出双倍的像素。也就是如果在普通iPhone上所呈现出的是480×320

像素,那么在Retina屏幕上将出现960×640像素。

iPhone-vs-Retina(from raywenderlich)

但是这时候你便会感到疑惑,即“像素的双倍增加难道不会破坏了那些基于480×320像素所编写的应用?”当然会(游戏邦注:特别是当你在使用UIKit进行编程时),除非你在UIKit中明确了帧的大小,否则你便是在以点而非像素设置大小。

在普通iPhone中,一个点代表一个像素。而在Retina屏幕中,一个点则等于两个像素。所以当我们将点的位置设置为(10,10)时,在普通iPhone上它的位置便是(10,10),而在Retina屏幕中则变成了(20,20),这是一种相对的位移。

如果你正在使用苹果的控制方式或Core Graphics,你便会发现苹果已经编写了合适的代码而让所有内容能够更好地呈现在Retina屏幕上。

只有你真正针对一张图像进行操作时你才能够发现问题的所在。假设你的iPhone应用中有一张200×200的图像,如果你不设置其它元素而将其放在Retina屏幕中,那么这张图像将被放大2倍,而最终显示出来的效果便会非常糟糕,因为你没有使用额外的分辨率去提升图像的质量。

未使用高清分辨率的图像(from raywenderlich)

所以我们需要做的便是提供另外一个版本的图像:即共有普通版本和双倍规格版本。如果你在双倍大小的图像中添加了“@2x”扩展名,那么当你尝试着去加载[UIImage imageNamed:...]图像或类似的应用程序界面时,Retina屏幕上将自动加载@2x图像。

所以使用Retina屏幕创造UIKit应用非常简单,即只要添加@2x图像便算你完成了大部分的工作。

那么Cocos2D又是怎样的情况?

Retina屏幕与Cocos2D

有一个好消息是,最新的Cocos2D版本完全支持于Retina屏幕,并且让整个过程操作更加简便:

1.基于CCDirector调用enableRetinaDisplay能让你在启动应用时确保Retina 屏幕的有效运行。如果你正在使用Cocos2D项目模版,你便可以在你的应用委托类中取消这一批注。

2.在你的应用上添加双倍精灵,而不是使用“@2x”扩展名,在Cocos2D中你可以使用“-hd”作为扩展名。当你加载精灵时,你只需使用正常名称(游戏邦注:

即没有“-hd”扩展名),而Cocos2D将自动帮助你在Retina屏幕上加载高清图像。

3.现在,当我们开始在Cocos2D中为精灵定位时,我们便可以使用点而不是像素了。但是我们需要注意的是一些应用程序界面(不多)仍然在使用像素进行定位——如果是这样的话我们便需要在方法名称中强调像素,而不是点。

其实最简单的方法便是让美工尽可能提高图片像素(例如将图像规格扩大2倍以适应Retina屏幕),这时候你便能够在面对普通iPhone时轻松地压缩图像比例了。

你可能会好奇为何要纠结于设置两种不同规格的图像,为什么不只加载较大的图像然后在面对其它设备时有规律地进行缩放?在内存中加载纹理是最耗应用内存的做法,所以如果你运行的是一个不能利用较高像素图像的设备,你只有加载适合设备的较小图像才能有效地节省内存。

不要担心,你并不需要不断地在Photoshop中缩放图像。Texture Packer 拥有一个非常棒的功能可帮助你轻松地缩放图像,而这也是我们将在本教程中所使用到的功能。

iPad,iPhone和纵横比

好吧,现在看来Retina屏幕的图像设置已经不成问题了,那iPad呢?

我们都清楚,同时针对于iPhone和iPad制作游戏是件烦人的事,因为这两款设备拥有完全不同的纵横比!

iPhone的屏幕规格是480×320或960×640——即纵横比是1.5。而iPad则是768×1024——纵横比为1.33。

这就意味着如果你的一张图像能够填满整个iPad背景(768×1024),而你想要在iPhone上再次使用这张图像,那图像便不可能吻合地平铺于iPhone屏幕上。如果说你压缩了图像规格以适应iPhone的宽度(乘以0.9375):图像规格便会变成720×960,这时候便会多出一些空白区域而需要我们进行裁剪。

Aspect-Ratio-Diff(from raywenderlich)

这就让事情变得更加麻烦了。因为你不仅需要处理背景图像的问题,同时你还会发现不同的纵横比将导致你难以在多种设备中使用相同的坐标轴。

关于这一问题存在着多种策略,我将在此列出我所看到/听到/使用过的几种:

在屏幕中央设置一个符合iPhone的Retina屏幕规格(640×960)的“可游戏区域”。如此我们便能够在边缘留出一些额外的空间——你可以用背景去覆盖这些空间,并且玩家也不会轻易注视到这一点。这种方法能够帮助你在不同设备间轻松地转变坐标轴并重复使用图像(在iPad和Retina屏幕上使用高分辨率的图像而在普通的iPhone上使用正常分辨率图像)。这也是我们在本篇教程中所使用的方法。

如果你在iPad屏幕上的每一边使用42像素分隔线,并将“主要内容”设置为684×1024,你便能够让iPad拥有与iPhone相同的纵横比。如果你将你的内容都控制在684×1024规格下,你便能够面向不同设备去压缩你的图像。

你可以面对iPhone,iPad以及Retina屏幕设置不同的图像和不同的坐标轴。这么做虽然能够让我们更加灵活地应对不同设备,但是我们还需要考虑到不同设备所具有的更大的二进制规格以及重置对象位置的问题。

另外一个问题是,从自动加载带有“-hd”扩展名的图像以及转换坐标轴等来看,现在的Cocos2D还不足以提供给iPad一些有益的帮助。

规划图像:结论

基于以上讨论,让我们开始规划这篇教程:

将图像限制在960×640规格的“可游戏区域”中,使用带有Retina屏幕的iPhone 的全屏设置,并被居中置于iPad屏幕上。

基于Texture Packer将图像压缩为普通iPhone规格的一半。

将完整的图像命名为带有“-hd”扩展名的名称,而压缩后的文件则不带这一扩展名,Cocos2D将基于是否启用Retina屏幕而加载合适的图像。

背景便是一种特殊情况,因为它们总是需要全屏展开。我们需要将背景设置为1024×768规格(iPad的规格标准),从而确保整个屏幕都能被填满。因为规格的近似我们也可以将同一图像再次用于iPhone上。虽然有些背景会超出屏幕范围,但是这种情况却不会出现在这一特殊背景上。

iPad版本中将包含一些特殊代码,能够帮助我们使用带有“-hd”扩展名的图像,转换坐标轴以适应内部“可游戏区域”,以及使用合适的字体等。

首先请先下载针对于本教程的图像。打开文件并观察内部设置:

在“前景”文件夹中,前景的规格是1024×768(iPad的规格),但是实际上这个规格却被分成了两个部分:下面部分和上面部分。如此我们便能够将鼹鼠放置在下面和上面部分的中间段,让玩家觉得鼹鼠好像真的藏在地下似得。

在“背景”文件夹中,背景的纵横比是1.33(也就是iPad的纵横比),但实际上却只有一半的规格(512×384)。主要是因为背景很少显示出来(即只通过3个鼹鼠洞进行呈现),所以我们没有必要创造出一个1024×1024规格的纹理去加载这一背景。也就是较小的纹理更加合适。

在“精灵”文件夹中,所有的精灵规模都巧妙地设置在960×640“可游戏区域”内。我们需要注意的是,1只鼹鼠对应2个动画(也就是鼹鼠窜出来时便会遭遇敲打)。

好了,让我们正式开始进行教程分析!

开始

打开XCode,在主菜单中选择“File\New Project…”,并选择“User Templates\cocos2d\cocos2d Application”,点击“Choose…”。将项目命名为“WhackAMole”,并点击“保存”。

接下来,使用Finder将你之前所下载的“图像”文件夹复制到你的“WhackAMole”项目的目录中,同时确保这一文件夹必须与“build”和“Classes”文件夹处于同等级别,如下所示:

Directory-Structure(from raywenderlich)

接下来确保你安装了Texture Packer,并能够用于你的设备中。

现在你便设置了TexturePacker,并能够以此创造你在之后所需要的精灵列表。只要使用TexturePacker的命令行工具以及Xcode集合你便能够完成各种任务,而不再需要依赖于TexturePacker的图形用户界面。

右击“资源”,选择“Add\New File…”,选择Mac OS X\Other\Shell Script,并点击“下一步”。将文件命名为“PackTextures.sh”,点击“完成”。

用以下代码取代PackTextures.sh的内容:

#!/bin/sh

TP=”/usr/local/bin/TexturePacker”

if [ "${ACTION}" = "clean" ]

then

echo “cleaning…”

rm resources/background*

rm resources/foreground*

rm resources/sprites*

else

echo “building…”

${TP} –smart-update \

–format cocos2d \

–data resources/background-hd.plist \

–sheet resources/https://www.wendangku.net/doc/557593695.html,z \ –dither-fs \

–opt RGB565 \

Art/background/*.png

${TP} –smart-update \

–format cocos2d \

–data resources/background.plist \

–sheet resources/https://www.wendangku.net/doc/557593695.html,z \

–dither-fs \

–scale 0.5 \

–opt RGB565 \

Art/background/*.png

${TP} –smart-update \

–format cocos2d \

–data resources/foreground-hd.plist \

–sheet resources/https://www.wendangku.net/doc/557593695.html,z \ –dither-fs-alpha \

–opt RGBA4444 \

Art/foreground/*.png

${TP} –smart-update \

–format cocos2d \

–data resources/foreground.plist \

–sheet resources/https://www.wendangku.net/doc/557593695.html,z \

–dither-fs-alpha \

–scale 0.5 \

–opt RGBA4444 \

Art/foreground/*.png

${TP} –smart-update \

–format cocos2d \

–data resources/sprites-hd.plist \

–sheet resources/https://www.wendangku.net/doc/557593695.html,z \

–dither-fs-alpha \

–opt RGBA4444 \

Art/sprites/*.png

${TP} –smart-update \

–format cocos2d \

–data resources/sprites.plist \

–sheet resources/https://www.wendangku.net/doc/557593695.html,z \

–dither-fs-alpha \

–scale 0.5 \

–opt RGBA4444 \

Art/sprites/*.png

fi

exit 0

这一脚本将能够运行TexturePacker而创造出背景图像,前景图像以及脚本图像的精灵列表——即高清和一般质量的图像。

我们必须以https://www.wendangku.net/doc/557593695.html,z格式保存每一份图像——因为基于内存和磁盘空间来看这是最有效的格式。同时关于每种图像设置我们还必须明确合适的像素格式和递色选项,而以此权衡图像质量和储存空间的使用。

如果你不清楚TexturePacker选项到底能够做什么,那就加载Terminal并运行TexturePacker,而以此获得每个选项的完整描述内容。

接下来你需要让你的项目能够在编译时运行这一列表脚本。在“目标”文件夹中右击并选择“Add\New Target…”,然后选择“外部目标”(也就是非列表脚本目标!),点击“下一步”。将其命名为“Target TexturePacker”,并点击“完成”。

双击TexturePacker上的目标并如下进行设置:

Target-Settings(from raywenderlich)

最后一步便是将这一目标依附于你的应用中。双击TextureFun上的目标,找到“General”标签,在“Direct Dependencies”中点击“+”按钮,在列表中选中Texture Packer然后点击“添加目标”。

Dependencies(from raywenderlich)

编译应用,如果一切设置合理的话你便能够从创建结果中看到Texture Packer 的输出。

TexturePackerResults(from raywenderlich)

接下来你需要在项目中添加新生成的精灵列表和属性列表。在“资源”文件夹中右击并选择“Add\Existing Files…”,然后从“资源”中选择背景,前景和精灵文件(总共12个文件)然后相继点击“添加”。你必须确保“组和文件”结构如下所示:

SpriteSheetsAdded(from raywenderlich)

你可以双击任何https://www.wendangku.net/doc/557593695.html,z文件去加载预览内容。这便是Texture Packer的新功能!

设置背景

打开HelloWorldScene.m并找到你的初始方法。删除用于创造“Hello World”标签的4行代码,并用以下代码进行替换:

// Determine names of sprite sheets and plists to load

NSString *bgSheet = @”https://www.wendangku.net/doc/557593695.html,z”;

NSString *bgPlist = @”background.plist”;

NSString *fgSheet = @”https://www.wendangku.net/doc/557593695.html,z”;

NSString *fgPlist = @”foreground.plist”;

NSString *sSheet = @”https://www.wendangku.net/doc/557593695.html,z”;

NSString *sPlist = @”sprites.plist”;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

bgSheet = @”https://www.wendangku.net/doc/557593695.html,z”;

bgPlist = @”background-hd.plist”;

fgSheet = @”https://www.wendangku.net/doc/557593695.html,z”;

fgPlist = @”foreground-hd.plist”;

sSheet = @”https://www.wendangku.net/doc/557593695.html,z”;

sPlist = @”sprites-hd.plist”;

}

// Load background and foreground

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:bgPlist];

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:fgPlist];

// Add background

CGSize winSize = [CCDirector sharedDirector].winSize;

CCSprite *dirt = [CCSprite spriteWithSpriteFrameName:@"bg_dirt.png"]; dirt.scale = 2.0;

dirt.position = ccp(winSize.width/2, winSize.height/2);

[self addChild:dirt z:-2];

// Add foreground

CCSprite *lower = [CCSprite

spriteWithSpriteFrameName:@"grass_lower.png"];

lower.anchorPoint = ccp(0.5, 1);

lower.position = ccp(winSize.width/2, winSize.height/2);

[self addChild:lower z:1];

CCSprite *upper = [CCSprite

spriteWithSpriteFrameName:@"grass_upper.png"];

upper.anchorPoint = ccp(0.5, 0);

upper.position = ccp(winSize.width/2, winSize.height/2);

[self addChild:upper z:-1];

// Add more here later…

让我们重温这一过程——因为这里存在一些很有帮助的新内容。

明确并加载精灵列表中的名称。这一部分主要罗列出Texture Packer所生成的精灵列表的名称,并进行加载。我们需要注意的是在iPhone上,Cocos2D将基

于Retina屏幕是否运行而自动选择“-hd”版本和普通版本。而iPad则不会加

载“-hd”版本,除非你命令它这么做。所以我们有必要明确我们所面对的是否

是iPad,或者是否需要使用“-hd”版本。

加载背景和前景。接下来我们就需要在精灵帧缓存中加载背景和前景的相关信息,有备于今后的使用。我们还需要注意的是不能将这些精灵添加到CCSpriteBachNode——因为这些图像只有一次使用价值。

添加背景。我们必须确保背景图像是置于所有图层之下。为了保存空间并确保图像居中,我们压缩了一半的图像规格。

添加前景。前景的添加主要分为两个部分。较为简单的方式便是图像的设置,即在顶层图像的中间/底部以及底层图像的中间/顶端设置定位点,并将这一定位点对准屏幕中心。在这一过程中你无需使用任何复杂的数学运算,所有的定位点都会出现在不同设备的合理位置上。虽然对于iPhone来说背景总是会超出屏幕范围,但是对于这一背景来说却不是什么大问题,并且甚少玩家会注意到这一点。除此之外我们还必须牢记我们使用的是不同z值去添加图像,所以必须适度降低最高图像的位置。

编译并运行代码,这时你便能够在屏幕上看到背景和前景了。并观察这一代码是否能够同时有效地运行于iPhone和iPad模拟器上。

Background(from raywenderlich)

如果你尝试着在Retina屏幕上运行代码并放大显示,你仍将看到普通的图像设置:

HD-vs-Normal(from raywenderlich)

主要是因为我们未在早些时候完成“Retina屏幕和Cocos2D”的第一个步骤:在CCDirector上调用enableRetinaDisplay,确保你在启动应用时能够运行Retina 屏幕。

为了做到这一点你需要打开WhackAMoleAppDelegate.m,并在applicationDidFinishLaunching中取消以下内容的批注:

if( ! [director enableRetinaDisplay:YES] )

CCLOG(@”Retina Display Not supported”);

编译并运行代码,现在当你运行Retina屏幕时便可以看到它自动使用高清文件了——主要归功于Cocos2D对于Retina屏幕的支持。

放置鼹鼠

在这款游戏中我们共需要添加三只鼹鼠——一个洞里一只。通常情况下鼹鼠都是藏在草地底下,但是当它们突然“窜出来”时你便需要想办法敲击它们。

首先我们需要在每个洞的底端添加鼹鼠。我们需要暂时让它们出现在其它图层之上,以确保将其设置在正确的点上;随后将它们放置在地下,并调整到最合适的位置上。

打开HelloWorldScene.h并添加一个数组以追踪鼹鼠所在的层面,如下:

// Inside @interface HelloWorld

NSMutableArray *moles;

通过将鼹鼠的定位点储存在这一数组中,我们便能够在之后轻松地设置每一个鼹鼠的位置了。

接下来我们需要在初始方法的最末处添加代码以设置鼹鼠的位置:

// Load sprites

CCSpriteBatchNode *spriteNode = [CCSpriteBatchNode batchNodeWithFile:sSheet];

[self addChild:spriteNode z:999];

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:sPlist];

moles = [[NSMutableArray alloc] init];

CCSprite *mole1 = [CCSprite spriteWithSpriteFrameName:@"mole_1.png"]; mole1.position = [self convertPoint:ccp(85, 85)];

[spriteNode addChild:mole1];

[moles addObject:mole1];

CCSprite *mole2 = [CCSprite spriteWithSpriteFrameName:@"mole_1.png"]; mole2.position = [self convertPoint:ccp(240, 85)];

[spriteNode addChild:mole2];

[moles addObject:mole2];

CCSprite *mole3 = [CCSprite spriteWithSpriteFrameName:@"mole_1.png"]; mole3.position = [self convertPoint:ccp(395, 85)];

[spriteNode addChild:mole3];

[moles addObject:mole3];

这便是我们首次创造出属于精灵的CCSpriteBatchNode,如此我们便能更有效地绘制鼹鼠并将其设置在地底层。我们需要注意的是我们只是暂时将z值设置为999,如此我们才能在鼹鼠出现在顶层时确保它们的位置是否合理。

然后在属性列表中加载所有的精灵帧到缓存中,以确保我们之后能够用到这些内容。

为每个鼹鼠创造一个精灵并放置在场景中,然后添加到鼹鼠列表上。每只鼹鼠的坐标值都被控制在480×320(iPhone的规格)的“可游戏区域”中。而如果面向的是iPad,我们就需要修改这一定位,即我们需要调用辅助功能convertPoint。

在初始方法的右上方添加以下方法:

- (CGPoint)convertPoint:(CGPoint)point {

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

return ccp(32 + point.x*2, 64 + point.y*2);

} else {

return point;

}

}

这一方法将帮助我们将“可游戏区域”点移至iPad屏幕上最合适的位置。我们需要记住:

我们正在iPad上使用高清图像,所以所有点都是双倍的。

我们将在1024×968的iPad屏幕上划出960×640的中心区域,并在左右两边和上下两端各留下32像素和64像素的边缘空间。

所以这一方法只是通过简单的数学运算而明确对象在iPad上的正确位置。

除此之外,我们必须添加以下代码清除我们用于分配鼹鼠数组的内存:

[moles release];

moles = nil;

编译并运行代码,这时候你便能够在正确的地点看到三只欢快的鼹鼠。并观察这一代码是否能够同时有效地运行于iPhone,iPhone Retina和iPad上。

Moles(from raywenderlich)

窜出的鼹鼠

既然我们明确了鼹鼠的位置,接下来我们便需要添加代码让它们能够从洞里窜出来。

首先我们需要将鼹鼠精灵列表的z值从999重新调回0,以确保鼹鼠一开始是待在地下的。

然后在你的初始方法最底断添加以下代码:

self schedule:@selector(tryPopMoles:) interval:0.5];

如果你之前未看过这些内容,你可以在节点上运行调度方法并推动Cocos2D调用另外一种方法。就像在这种情况下,我们便希望每0.5秒就有鼹鼠窜出来。

接下来我们需要添加tryPopMoles的执行:

- (void)tryPopMoles:(ccTime)dt {

for (CCSprite *mole in moles) {

if (arc4random() % 3 == 0) {

if (mole.numberOfRunningActions == 0) {

[self popMole:mole];

}

}

}

}

我们将每隔0.5秒调用一次这一方法,并且每次调用将面向每一只鼹鼠而让它们平均拥有三分之一次跳出机会。但是鼹鼠们也只有在不能够移动时才能够窜出洞口——所以一种简单的检查方法便是确保行动数值是否为0.

最后,添加popMole的执行:

- (void) popMole:(CCSprite *)mole {

CCMoveBy *moveUp = [CCMoveBy actionWithDuration:0.2 position:ccp(0, mole.contentSize.height)]; // 1

CCEaseInOut *easeMoveUp = [CCEaseInOut actionWithAction:moveUp

rate:3.0]; // 2

CCAction *easeMoveDown = [easeMoveUp reverse]; // 3

CCDelayTime *delay = [CCDelayTime actionWithDuration:0.5]; // 4

[mole runAction:[CCSequence actions:easeMoveUp, delay, easeMoveDown, nil]]; // 5

这一代码正是使用Cocos2D行动而促使鼹鼠能够窜出洞口,时隔半秒再钻回去。让我们进一步明确这些内容:

1.创造一个行动而推动着鼹鼠沿着纵坐标(如鼹鼠般高)向上移动。因为我们已经将鼹鼠准确安置在洞的正下方,所以它们窜出的位置也是合理的。

2.确保鼹鼠的移动看起来足够自然,将他们的移动行动与CCEaseInOut行动结合在一起。这么做能够确保开始和结束时的行动较慢,即鼹鼠能够加速/减速,以

此让整体看起来更加自然。

3.创造一个行动让鼹鼠能够再次回到洞里。一个简单的方法便是调用行动的反方法。

4.创造一个行动让鼹鼠能够在窜出后一秒停下行动。

5.既然完成了行动设置,我们便能够运行它们而完成鼹鼠的一系列行动:窜出,延迟然后缩回洞里。同时我们还需要在最后终止这一系列行动以表示动作的完成。

编译并运行代码,你将能够看到鼹鼠们欢快地窜出洞口了!

Mole-Pop(from raywenderlich)

游戏邦注:原文发表于2011年1月10日,所涉事件和数据均以当时为准。(本文为游戏邦/https://www.wendangku.net/doc/557593695.html,编译,拒绝任何不保留版权的转载,如需转载请联系:游戏邦)

How To Create A Mole Whacking Game with Cocos2D: Part 1/2

10 January 2011

One of the students in the iOS Programming 101 workshop that Shawn Grimes and I recently offered requested that I write a tutorial on how to write a mole whacking game with Cocos2D.

I thought this was a great idea for a tutorial for three reasons:

1.We’ve had a lot of Cocos2D tutorials on this site, but it might be hard to see how to combine everything together to make a game. So this tutorial does exactly that!

2.It will be a good opportunity to cover a new topic: how to make a game that works on the iPhone, iPad, and iPhone retina display.

3.And of course the most important reason – whacking moles is fun!

This tutorial builds on the following Cocos2D tutorials:

How to Make a Simple Game with Cocos2D,

How to Use Animations and Sprite Sheets in Cocos2D

How to Create and Optimize Sprite Sheets in Cocos2D with Texture Packer and Pixel Formats

How to Drag and Drop Sprites with Cocos2D

If you have not reviewed these tutorials already (or have similar knowledge), I recommend you go through them first.

This is a two-part tutorial series. In this first part, we’ll create the basics of the game – cute little moles popping out of holes. We’ll spend a lot of time thinking about how to organize the art and coordinates so that the game looks good on the iPhone, iPad, and Retina display – and be efficient too! (Jump to the second part.)

Planning the Art: Overview

Since we want this app to work on both the normal iPhone, retina-display iPhone, and the iPad, we need to take some time to carefully plan out how the art is going to be set up before we proceed any further.

In order to understand how to propery size and set up the art, we need to cover three topics first:

制作游戏视频完美使用教程

制作游戏视频完美使用教程 很多的游戏玩家不但喜欢玩各种新颖的游戏,还喜欢制作游戏视频。本人也是一个游戏爱好者,但刚开始制作游戏视频时,确实遇到了不少难题,所以总结出来,制作游戏视频最重要的便是要找到一款好用的视频制作软件,当然视频的精美度也是我们所关注的。下面我就根据自己的经验,使用国内最流行的电子相册制作软件《数码大师》,教大家快速制作动感十足的游戏视频。 工具/原料 数码大师安全下载地址:https://www.wendangku.net/doc/557593695.html,/indexgb.htm 超级捕快安全下载地址:https://www.wendangku.net/doc/557593695.html,/cm 方法/步骤 一、使用《超级捕快》录制游戏视频短片 软件除了可以游戏图片作为制作游戏视频的素材,还可以在视频中插入游戏视频片段,我们可以使用国内最流行的全能录像软件《超级捕快》,录制精彩的一段游戏视频,然后

将其插入作为整个制作的游戏视频的片头或片尾,还可以在相片间插入,导入方式非常多样。下面的第一张图片即是使用《超级捕快》的“电脑屏幕录像”功能录制游戏视频短片,而第二张图片则是在《数码大师》中导入游戏图片和刚才录制的视频短片的操作,都是非常简单的哦。

二、为游戏视频设置喜欢的音乐 在如下的“背景音乐”选项卡中,点击“添加媒体文件”和“插入歌词文件”按钮,可为制作的游戏视频设置喜欢的背景音乐和歌词。

三、设置文字特效和相片转场特效 特效可让相片的展示更具动感。《数码大师》提供了十多种炫酷的文字特效,以供抒写图片的注释和名字,让文字的展示非常多样化,除了文字特效。作为国内发展最久的电子相册制作软件,软件提供的相片特效不但在数量上首屈一指,特效的炫酷程度也让人十分震撼。如各种3D效果的翻页特效、透镜效果、卷画特效等等。

KRKR入门教程,教你做出一个完整的小游戏

进入正题: 吉里(KR)入门篇2010年1月31日星期日18:18 Salles &不知原作谁写的 一、初识吉里(KR) 吉里2(以下简称KR)/KAG3是由日本W.Dee氏编写的一个ADV(恋爱AVG文字游戏)制作引擎,具有很强的功能以及扩展性。 虽然采用了类似Java的tjs语言,但如果只是使用基本的ADV制作功能,则只需要用到KAG3的一些相对简单的指令。 由于KR支持Unicode,即使是日文原版也可以较好地支持其他语言。 在音频方面,它支持非压缩的Wav、Midi格式以及CD音轨,加载插件后还可以支持ogg、mp3等。 在视频方面则支持mpeg 1、swf。 图像方面则支持bmp、jpg、png、eri和tlg 5、tlg6等。 虽然占用资源较Nscripter等其他工具有所增大,但制作出的效果也更加华丽,前段时间大红大紫的Fate系列就很好地展现了KR的威力。 (《Fate/stay night》有兴趣的,可以去下载这个游戏玩玩,百度上有,这里不给下载地址了) KR的源程序可以在下面地址下载(去掉中间的空格,h ttp之间,5 8之间,20 6之间,2C A之间,in put之间,100 2007之间 共六处空格,全部去掉): h ttp:

//58.251.57.206/down?cid=2CA4450B80FEEEFC915F6A9BDD6A556D4AF6E250 &t=2&fmt=&usrin put=kagexpress&dt=100 2007这是迅雷、BT下载地址。 最后,本教程只是入门级的基础教程,如果您已经可以用KR实现基本的ADV制作,本教程对您的参考价值就很有限了…… 二、制作前的准备: 1.下载并解压KR,放在除系统盘以外的盘里,如: "D: \KR"。 2.首先我们需要建立一个新的工程。 在你解压KR后生成的目录里,有个叫Wizard的可执行程序,双击它。 在出现的对话框里,选择下拉菜单中的800*600,新工程目录输入: course,你会发现在KR目录里多了一个叫course的目录,这就是新的工程目录。 在确定后弹出一个设置对话框,什么都不用改先,确定就行。 3.用记事本方式打开course\data\config.tjs文件,这里可以进行一些设置。 目前需要用到的是先把; System.title = "KCDDP KAGeXpress 3.0";改为你需要的标题。这里不妨设为;System.title = "KR基础教学"。 4.下面,开始进行脚本编辑: 在course\data\scenario目录下,有个叫first.ks的文件,可以用记事本打开,这里就是你输入代码的地方。 5.把自己的图片放在course\data\bgimage里,名字自定。 最好先准备5张背景图,一张全黑的,叫black;一张全白的,叫white;另外三张随便在哪弄来三张图片,可自己命名为bgi

FLASH小游戏开发教程:游戏制作前的准备

FLASH游戏这东西吧,总入不了大流。国内拿FLASH做美术方面的应用比较多,而传统的游戏程序员又把FLASH当小儿科,不屑搞这个,事实上开发FLASH游戏也赚不了钱,七七八八的原因加起来,就变成了没多少职业程序员来开发FLASH游戏,学校也不会培养学生深入学习开发FLASH,搞这块的人少,人少交流讨论的也少,正正规规的教材也少,当然优秀作品更少。目前国内大部分的FLASH游戏开发爱好者没有好教材的指引,自己摸索着就上路了(我也是这样开始的),开发流程和习惯都是各人一套,很多人因为没有接受正确的学习而走了很多歪路(好像我也是)于是乎,话题转回来,我就开一贴跟菜鸟们多交流吧…… ================================================================= LESSON 1:游戏制作前的准备 突然灵光一闪:老子要做个XX类型游戏!于是立马打开电脑,打开FLASH,找图片,建元件,F9一按,代码蹭蹭的打啊……结果做了一半做不下去了。以上情况常常发生…… 做游戏首先脑子里先要有整个游戏的规划,最好是拿笔画个流程简图,然后再下手。游戏流程的规划是很重要的,我在做一个游戏游戏前,草稿纸上来来回回要打个半天的草稿才开工,我一直认为游戏的规划部分是很难的,如果真等到全部想好了,做起来其实是个很轻松的过程,只是耗时间罢了。理论知识多说没用……我们不如来实践下,跟我一起做个简单的游戏吧…… 【吃金币游戏-策划】(我在草稿纸头上写下以下几点) 基本描述: 1.天上掉宝物,地下小人物由自己控制,去接宝得分 2.时间限制30秒 写到这里,顺手画了张草图:

学会用按键精灵制作游戏脚本之前后台坐标关联教程

学会用按键精灵制作游戏脚本之前后台坐标关联教程 来源:按键学院【按键精灵】 各位大大在切换前后台命令的时候,有没有遇到坐标切换呢~ 有没有发现前后台的命令,对同一个窗体内容,居然坐标不同!! 今天~院刊就跟大家普及下前台坐标与相对应的后台坐标知识~ 什么是前台坐标和后台坐标呢? 什么是前台坐标? 以屏幕左上角的坐标为起点(0,0,从而获取到的各个窗体的坐标,就是前台坐标。 什么是后台坐标? 以窗口左上角为起点(0,0,从而获取到的这个窗体内的相对坐标,就是后台坐标。 如图: 我们来举个栗子吧,例如txt文本里的输入文字的起始点。

至此,各位大大知道前后台坐标的联系了吧。一个是绝对坐标(前台),一个是相对坐标(后台)。 那么如何进行前后台坐标的切换呢 从上图里,聪明机智的小伙伴们就会发现:如果知道了前台坐标,也知道了窗口左上角的值。那么窗口客户区内的 任意后台的坐标,不是都可以通过以下计算来获得了: 后台x坐标=客户区前台x坐标-客户区左上角前台x坐标 后台y坐标=客户区前台y坐标-客户区左上角前台y坐标 如何获得客户区前台的x,y坐标呢? 我们使用按键精灵自带的窗体插件命令:GetWindowRect来获取。 命令名称: GetWindowRect 窗口边框大小 命令功能:得到窗口句柄的边框大小(包括标题栏 命令参数:参数1 整数型,窗口句柄

返回值:字符串型,边框大小(包括标题栏 注:返回为:边框窗口左角X坐标|边框窗口左上角Y坐标|边框窗口右下角X坐标 |边框窗口右下角Y坐标 //下面这句是得到窗口句柄的边框大小(包括标题栏 sRect = Plugin.Window.GetWindowRect(句柄 将你所要获取的窗口句柄填入括号内就可以啦~ 范例举例: 举个萌萌哒的例子:向记事本特定位置输入文字。 例如我要往“hello”和“按键精灵”中间插入文字: 2014-9-17 18:03 上传 下载附件(8 KB 思路: 每次打开记事本的位置,有可能会有变化。而我们又不能每次都要去获取它的坐标再改脚本,这样太费力了。所以呢,只要锁定了记事本,知道了目标在记事本中的相对位置就可以操作啦。 同理,寻找游戏里的物品目标,前台不稳定。后台命令也是基于相对坐标的。 1. 先找到目标窗体的左上角坐标 (通过窗体插件命令:GetWindowRect来获取) 2. 再找到目标窗体内,“hello”和“按键精灵”中间的坐标 (为了方便,我们用抓抓获取。在游戏中,可以通过找图找色来获取前台坐标)

游戏辅助制作教程――如何使用按键精灵脚本自动间隔时间释放辅助.

方法三:我认为大华的成本核算应该选择分类法和逐步分项结转法。首先大华服装公司的男女西服两种产品所用原料和工艺技术过程相同,可以归一类计算产品成本,因而最适宜采用分类法计算成本。其次,根据题目所给的材料可知,大华公司男女西服一开始就没有分开计算成本,所以我认为采用分类法计算是符合大华公司产品成本计算的。。 结合本公司的特点和管理上的要求本组采用分项逐步结转分步法: 1、其能直接、准确提供按原始成本项目反映的产成品成本资料,便于从整个企业角度考核和分析产品成本计划的执行情况 2、此方法的半成品成本都是随着半成品实物的转移而结转,各生产步骤产品明细账中的生产费用余额,反映了留存在各个生产步骤的在产品成本中,因而能为在产品的实物管理和生产资金管理提供资料。 累计完工率 在分项结转分步法中,约当产量的计算需要使用累计完工率。 累计完工率=(以前各工序工时定额之和+本工序工时定额×本工序完工率)÷(以面各工序工时定额之和+本工序工时定额) 我们发现计算累计完工率的关键在于工时定额的测算。 工时定额的取得; (1通过总结过去的经验:通过询问服装厂工艺人员经验我们得到以下信息,西服裁剪、缝纫、平整分别需要0.5h、7h、1h。 (2以同类产品的工件或工序的时间定额为依据进行对比分析后推算出来:通过网上资料搜寻发现日产量为1200件的服装厂西服裁剪缝纫、平整分别需要82s、885s、115s。 通过观察累计完工率的公式我们发现,由于计算累计完工率需要的是各工序工时定额的比,经过测算各工序定额工时占定额工时比例可以得知: 项目裁剪工序缝纫工序平整工序总结过去的经验的到数值5%80%15%

游戏程序脚本制作教程第课

游戏程序脚本制作教程第课 第㈠节:序言 很多人都或多或少的接触过传奇服务器端脚本文件,也很想自己制作一点脚本来试试,但又不敢乱碰生怕改坏一点东西造成不能运行服务器端,其实“脚本语言“和C语言等等程序语言比起来那真是不值得一提。看完我给大家写的这篇文章后,你就自己偷着做吧... 可以说传奇服务器端所有的重点都集中在\mir200\envir\中,这里面记载着所有服务器要在游戏中表现的东西。在游戏中的npc信息也在其中,npcs.txt文件和merchant.txt文件中记载着npc的名称、出现的地图、坐标、范围和形象代码。你要问两个记载的npc有什么不同?为什么不和在一起算了?我来告诉你,npcs.txt中记载的npc是对话型npc,在进入游戏后,不能够使用@reloadnpc刷新信息的npc。而merchant.txt是交易型和任务型npc,可以使用@reloadnpc刷新信息。但我也做过试验,两种npc互换后也可以使用,好像没有太大的限制。 npcs.txt对应的文件在.\npc_def\文件夹中,merchant.txt对应的文件在.\market_def\文件夹中。你如果要添加npc的时候,要注意npc的文件名,例如你要创建一个超级商人的npc要他出现在比奇省330:330的坐标。首先你要在.\market_def\文件夹中创建一个文本文件命名为“超级商人-0“(这里你可以使用英文,也可以使用中文,但后面的数字必须要是这个npc出现的地图代码!),然后把你写好的脚本粘贴在里面。再打开merchant.txt文件,添加以下信息: ;调用的文件地图坐标x 坐标y 范围人物代码刷新时间 超级商人0 330 330 0 5 0 相信大家可以看懂吧,这里面的空格不要紧,没有规定信息之间必须空几格。人物代码自己换吧,现在的npc有46种模样。 和脚本的规则一样,这两个文件里面以;开头的行就当作注释部分不做编译。 第㈡节 现在步入正题,谈谈脚本的制作,这是这个游戏脚本制作教程最重要的部分。 npc脚本分为两种,一种是不做交易的npc,一种是与之交易的npc。我们先来讲不做交易的npc 这类脚本的开头一般以[@main]开头,但并不是必须以他开头,main的英文意思是“主体,主要部分”的意思,所以用他这是个好习惯。 接着就是条件语句#if,和他对应的#act,就是说如果...那么...,我在之前的《脚本语言之不完全公略》一文中提到了一系列的测试语句。#if后面可以跟这个测试语句,比如测试金钱checkgold,测试级别checklevel等等,这些测试语句可以连用,挑选满足这所有值的人。如果你想不要任何条件的话就把他留空,后面直接接#act. 接着就是#act,如果有人满足了上述条件,那么...我们可以使用一些命令应用于他,比如take 拿走他身上的什么东西,mapmove把他移动到什么地图,set赋予他什么函数值等等。这些语句你也可以连着使用。后面也可以跟文字,那么就在传奇里面显示为对话。 下面是#ELSEACT,如果没有满足#if条件的,就不再运行#act后面的指令,直接运行#ELSEACT后面的指令。后面也可以跟文字,那么就在传奇里面显示为对话。 #say和#elsesay的用法和#act#elsesay的用法相同。 游戏脚本制作教程范例:

KRKR入门教程,教你做出一个完整的小游戏

进入正题: 吉里吉里(KRKR)入门篇 2010年1月31日星期日18:18 作者:Salles & 不知原作谁写的 一、初识吉里吉里(KRKR) 吉里吉里2(以下简称KRKR)/KAG3是由日本W.Dee氏编写的一个ADV(恋爱AVG文字游戏)制作引擎,具有很强的功能以及扩展性。 虽然采用了类似Java的tjs语言,但如果只是使用基本的ADV制作功能,则只需要用到KAG3的一些相对简单的指令。 由于KRKR支持Unicode,即使是日文原版也可以较好地支持其他语言。 在音频方面,它支持非压缩的Wav、Midi格式以及CD音轨,加载插件后还可以支持ogg、mp3等。 在视频方面则支持mpeg1、swf。 图像方面则支持bmp、jpg、png、eri和tlg5、tlg6等。 虽然占用资源较Nscripter等其他工具有所增大,但制作出的效果也更加华丽,前段时间大红大紫的Fate系列就很好地展现了KRKR的威力。 (《Fate/stay night》有兴趣的,可以去下载这个游戏玩玩,百度上有,这里不给下载地址了) KRKR的源程序可以在下面地址下载(去掉中间的空格,h ttp之间,5 8之间,20 6之间,2C A之间,in put之间,100 2007之间 共六处空格,全部去掉): h ttp://5 8.251.57.20 6/down?cid=2C A4450B80FEEEFC915F6A9BDD6A556D4AF6E250&t=2&fmt=&usrin put=kagexpress&dt=100 2007 这是迅雷、BT下载地址。 最后,本教程只是入门级的基础教程,如果您已经可以用KRKR实现基本的ADV制作,本教程对您的参考价值就很有限了……

最强蜗牛辅助的教程

最强蜗牛辅助的教程 《最强蜗牛》是由青瓷游戏研发运营的荒诞手绘风放置手游,《不思议迷宫》原班人马倾力打造。这款充斥着各种黑色幽默、无厘头、恶搞、自黑元素的作品一经公布,便好评如潮,各大渠道平台均分高达9分以上。该游戏现已开启“超高能测试”。 鸟人助手辅助官网:http://www.niaoren001.com 鸟人助手iOS官网:http://www.iosnrzs.com 鸟人助手客服QQ::3284279732 《最强蜗牛》是一款荒诞手绘画风的放置游戏,十分沙雕,玩家将扮演一只蜗牛,从100年后的末日穿越到现代,在经历一系列令人啼笑皆非的故事之后,通过进化、变异等手段,超越人类成为最强生物,最终拯救地球。现已开启限时删档测试,5月28日0点关闭游戏下载,有兴趣的可以前往TapTap、B站或者好游快爆等平台参与测试。

《最强蜗牛》的主线剧情是一个反转反转再反转的高能故事,笑料不断,所有出场的人物,永远都无法分辨ta是正派还是反派。游戏过程中,有时候像是在看一部情景喜剧,有时候又像是在看悬念十足的美剧。并且游戏中的剧情分为表世界和里世界。表世界通过浅显易懂的过场动画+主线剧情的形式讲述“小人物成为英雄拯救世界的王道故事”。 《最强蜗牛》并不是一款能对标市面上某一个类型的手游,它有着独特的风格。游戏的主线副本是一张世界地图,玩家能够在各个地方不断旅行,不同的地方不同的时间都能触发不一样的特殊事件,遇到不一样的历史文物,见到各个时代的标志建筑。玩家能够在各个地方不断旅行,不同的地方不同的时间都能触发不一样的特殊事件,遇到不一样的历史文物,见到各个时代的标志建筑。 当然,如果小伙伴们实在没有时间,那么使用些游戏辅助帮助运行游戏也是可以的,比如说用游戏辅助神器鸟人助手,一键自动托管游戏。 鸟人助手上线最强蜗牛游戏辅助工具,可为玩家托管游戏,自动主线任务、副本等游戏内容,轻松升级。

文字冒险游戏制作教程

文字冒险游戏制作教程 如何新建作品? 登陆之后→【在线制作】→【新建作品】→填写【作品名】→选择类别【纯文本】→【确定】即可。 纯文本界面介绍: 工具栏:【设置】、【剧情】、【结构】、【预览】、【保存】、【发布】 设置:可以上传封面、上传音乐、选择游戏皮肤。

剧情:分为三大块 最左侧为剧情块:输入剧情块名称。 中间为剧情列表:为该剧情块下所有剧情内容。 最右侧属性:可以设置时间、添加数值及数值判断、添加后续剧情、设存储等。 结构:点击【结构】即可预览做完的游戏结构。 预览:点击【预览】即可预览游戏。 保存:点击【保存】即可保存游戏。 发布:剧情完成之后点击【发布】即可发布。(这里可以重新输入游戏名、填写游戏简介、分类、标签、状态。) 一、首先举一个例子教大家如何使用编辑器做纯文本游戏。 示例: 拯救公主 剧情块——剧情列表 场景1:城堡——你进入了一个城堡,里面黑魆魆的;两侧的火把照亮了一面墙壁 场景2:墙上有一把剑——墙上有一把剑;你该做点什么? 场景3:你把剑拿起来——你捡起了剑;肯定后面会用到 场景4:你没有拿起剑——我不需要剑 场景5(过渡段):遇见恶龙——一条恶龙出现在你面前;它挡住了你的去路;它准备攻击你 结局1:你被恶龙杀死了——你两手空空,你被恶龙杀死了;

结局2:你杀死了恶龙——你用手中的剑杀死了恶龙;你救出了公主。 1.进去剧情界面→最左侧点击即可增加剧情块。(这里的剧情块相当于章节) ①场景1-5 以及结局1 -2的内容输入到剧情块中。 ②场景1-5 以及结局1 -2的剧情块对应的剧情内容可以输入到对应剧情列表中。 例如:选中场景1:城堡该剧情块对应的剧情内容即是:你进入了一个城堡,里面黑魆魆的;两侧的火把照亮了一面墙壁。显示延迟时间可以根据内容选择合适的时间。(场景2-5和结局1-2剧情列表内容输入方法同场景1)

经典游戏制作教程

经典游戏制作教程 peng 1.游戏制作的主要流程 ------------------------------------------------------------------------------- 电脑游戏开发小组中的任何一个人(这个角色通常有策划担任),只要有了一个新的想法或 念头,就孕育着一个新游戏的诞生。在这个创意被充分讨论之后,再加上对其操作过程的趣 味性及市场销售的可行性的预测等因素的准确判断,一个完整的策划方案才可能产生。在经 过充分的讨论后,策划人员必须将讨论的重点写成文字,也就是提出完整的策划方案,经决 策者同意认可后,才能进下一步的工作。这份策划方案就像一部电影的剧本,它必须完整地 涵盖整个游戏的故事、流程、内容、方式、游戏画面、角色造型、场景规划、人工智能、硬 件配备、市场评估等。对整个游戏过程的详细描述及实施规划都应记录在案。当进入创作 过程之后,策划还必须随时和美术设计师和程序设计员保持联系,以免游戏程序的编写失控。 策划应能对游戏设置的内容与精神了如指掌,与各个小组及时沟通,并且控制整个游戏制作 的进程。 2.游戏设计基本论 ------------------------------------------------------------------------------- 要设计一个游戏,首先你必须要确定几个重要方针,第一是你要设计的游戏是属於那一种 类型,第二是时代背景,第三是模式,第四是程式技术,第五是表现手法,第六是市场定位, 第七是研发时间,在掌握上述七个方针之後,你就可以再做详细的规划内容及调配资源,那 麽何谓是七项方针呢? 笔者以范例来说明之! 一、类型: 所谓的类型是指这个游戏所着眼的一个游戏方式,通过这个方式来使玩者达到娱乐的目的,这个游戏方式有专有名词来各别予以命名,兹如下述: (1) RGP角色扮演: 这个类型的游戏以通过故事剧情牵引来使玩家能溶入主角所存在的一个世界,这类型态的 游戏多半透过战斗升级系统及人物对话的方式来一步步完成设计者所布下的剧情路线,最具 代表的作品有日本史克威尔所设计的 "太空战士系列" 及国内大宇资讯所设计的"仙剑奇侠传",当然还有很多部作品例如"神奇传说"等也是此中的佼佼者。 在RGP的类型中,在近几年来又分支了几个类似的型态,例如说Blizzard的"暗黑破坏神"Dirblo"被定位为"动作RPG",因其动作成分相当高所至,而"神奇传说"、"超时空英雄传说"则被定位尽"战略RPG",只因战略成分比重较高所以又有别於传统RPG。 (2) SLG战略: 谈起战略游戏,大家最耳熟能详的应是日本光荣公司所出品的"三个系列",KOEI的三国 志风靡东亚,从一代进化到现阶段的六代皆为玩家们所津津乐道,而所谓的战略游戏则是透

游戏辅助教程:按键精灵给源代码加密

游戏辅助教程:按键精灵给源代码加密 来源:按键学院【按键精灵】有童鞋问了小编这么一个绕人的问题:想分享代码而又不想完全分享,该怎么办? 小编:说人话…… 童鞋:我想分享我写的一个函数给别人使用,但是不想公开源码,该怎么办? 好办,命令库的加密功能就能实现。 啥是命令库加密? 命令库加密就是将命令库里写好的函数命令封装起来,源码不可见。使用者可以使用你的函数命令,但却看不到函数命令源码。 如何使用加密功能? 1、首先,需是按键精灵会员,才能使用命令库加密功能。加密之后的命令库命令,可以给其它会员或者非会员使用。 2、右击我的命令库里需要加密的命令,点击加密。 3、加密之后会新生成一个带锁图标的命令库文件,原来未加密的命令库文件也还存在。

4、加密的命令库文件,在按键精灵安装目录下的,lib文件夹里。 未加密的命令库文件后缀名是.qml 加密之后的命令库文件后缀名为.qmle 如果觉得到按键目录下找很麻烦,可以右击加密后的命令库文件: 选择导出,将加密的命令库文件导出到桌面或者其它好找的位置。 如何分享加密后的命令库命令?

1、生成加密文件后,将.qmle命令库文件,发送给要使用的人。 2、要使用的人接收到.qmle文件之后,将它放到按键精灵安装目录下的lib文件夹中。 3、打开按键精灵进行使用,如果按键精灵已经是打开状态,右击我的命令库里的任意命令,选择刷新即可看到新添加的命令库命令。 加密和未加密的命令库调用方式 1、未加密的命令库命令调用: Call Lib.大漠注册.register(dz) 2、加密的命令库命令调用: Call LibE.大漠注册.register(dz) 两者调用的区别在于:未加密的是lib.命令库命令。加密的是LibE.命令库命令

游戏辅助制作教程:按键精灵解密两种排序算法

游戏辅助制作教程:按键精灵解密两种排序算法 一、冒泡排序 冒泡排序是最慢的排序算法,但也是新手最容易上手的一个排序方法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n^2)的算法。O(n^2)的算法其实是衡量算法速度快慢的一个指标,我们称之为算法的时间复杂度。时间复杂越大,算法的执行效率越低。 当然,并不是越快的算法,一定越好。算法还有另一个指标,叫空间复杂度,即算法占用多少空间,这个和内存息息相关。一个算法可能很快,但是它占用的内存多,不一定耗得起。所以呢在不同的场合,我们需要根据不同的要求,会选择最合适的算法。 但是在游戏扫拍卖或者其他需要比拼速度的时候,时间就是金钱~越快越能抢占先机。现在我们介绍另一种更快更有效率的排序——快速排序,时间复杂度为O(n*logn)。 二、快速排序的算法思想 快速排序采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是:

1.先从数列中取出一个数作为基准数。(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3 . 再对左右区间重复第二步,直到各区间只有一个数。 通俗一点解释就是:假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边。 方法其实很简单:分别从初始序列“6 1 2 7 9 3 4 5 10 8”两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。这里可以用两个变量i和j,分别指向序列最左边和最右边。我们为这两个变量起个好听的名字“哨兵i”和“哨兵j”。刚开始的时候让哨兵i指向序列的最左边(即i=1),指向数字6。让哨兵j指向序列的最右边(即=10),指向数字。

7种方法来制作你自己的电脑游戏

7种方法来制作你自己的电脑游戏 如何制作你自己的电脑游戏 7 方法:打基础写设计文件开始编程创作游戏道具整合测试游戏发行游戏 设计一款电脑游戏可不是小任务,但要是你有一个好到无法不付诸行动的点子,那么眼下就是最好的动手时间啦!如今独立开发已经普遍发展,创造一款游戏可谓前所未有的简易廉价。跟随这份指南开始设计和打造你的梦幻游戏吧,然后分享给全世界哦。方法1: 打基础1 选出你的风格。尽管成功游戏都有其独到之处,但几乎所有游戏也都有特定的风格。想好你要制作哪种游戏,然后看看同一风格的其他游戏是怎么做的。一些常见风格包括: 射击 谜题 游戏平台 赛跑 冒险 连连看 角色扮演类游戏

广告2 挑选你的平台。你选来开发游戏的平台会深刻影响其开发方式。游戏平台决定了操控游戏的方式,智能手机游戏则是典型的基于触屏和倾斜感应而设计的,PC游戏一般需要一个键盘和一只鼠标,单机游戏则需要游戏键盘。 这些规则也有例外,但一般来说围绕特定的控制方式展开设计则要容易一些。 如果你想开发一款iPhone游戏,那你得通过一台Mac提交到Apple Store。3写一写预设计。这应该只要几页,但却是你创造的电脑游戏玩法的核心所在。它包含你游戏的基本概念,通过预设计你该清楚你的电脑游戏是否可行。 4 从核心理念出发。这份说明该作为游戏背后的动力。这些都是把握游戏核心的简单说明。经常回过头来看看,以确保你的游戏没有偏离基本目标。一些典型的核心理念如下: 这款游戏模拟太空站经济。 这款游戏让你扮演真实的汽车。

这款游戏用来测试玩家的反应。5 写一下你的特征。这些是你的游戏区别于同一类型其他游戏的特色。先从你的理念和概念写起。把具体的概念转变为动作主导的句子。争取写5-15个特征。例如: 概念:太空站建造 特征:建造并管理你个人的太空站 概念:来自小行星的破坏 特征:应对包括小行星、太阳耀斑和彗星在内的灾难,竭力存活 先把你的游戏特征写出来,这样有助于你之后在游戏文件里充实每一部分。在开头列出游戏特征将保持你的游戏连贯专一,防止发生思路断续累加的现象。 继续修正这些特征,直至你觉得他们足以代表你想要的游戏。6休整。把预设计塞进抽屉里,尽量一两个礼拜不要去想它。这样你方可带着崭新的视角重新审视。这有助于你决断这个项目是否真的值得继续追求,或者你是否需要重头再来一遍。广告方法2: 写设计文件1 开始写实际细节。这份设计文件是你整个游戏的骨干所在。它包含了对你游戏机制、情节、设置、美学设计等的详细描述。设计文件应该内容重于形式。

游戏开发教程

游戏开发教程-美术制作揭密 游戏美术似乎对很多门外汉来讲是比较神秘的。如果你不进入到这行业,即使你的美术再好,技术再精通,也很难理解其中的奥妙,希望本文能带给你一些启示。 游戏美术包含有许多方面,所以配合,协作是做好游戏的美术的首要因素。因为游戏是交互性非常强的项目,所以,美术其实要体现企化,程序所要表达的各种要素,这就对美术做出了非常多的限制。也要求美术与企划,程序要有很好的配合,才能做出一个很好的游戏。另外,由于一个游戏的内容很多,所以美术的分工也非常多,各个分工之间的配合,协调是很重要的因素。 游戏美术的分工 玩过游戏的人都知道,游戏中有几大部分,包括:地图,人物,界面,动画。另外还有肖像,图标,道具等相关因素。因为东西很多,就必须做一定的分工,保证各有专政。并且能提高工作效率。同时合理的分组能够使每个人的能力得到最大的提升。游戏工作组一般会分为地图组,人物组,平面组,动画组及特效组,每个组的人数不一样,一般来说地图组和人物组的人数会多一些,毕竟一个游戏的制作里面地图和人物占了绝大部分。另外平面组也是最重要的组成部分。而象动画组,特效组杂有些比较小的游戏工作组里面一般都是由这3个组里面的人来做。 每个小组都必须有个组长,这个组长除了技术不错之外,还必须有较强的流程控制和组协调能力,以及对企划思想的了解,有个比较形象的说法就是,宁愿要5个80分,不要3个100分加上2个60分。要尽量做到让玩游戏的人感觉不到图象是由好多人做出来的。 游戏美术的各个分工 这是游戏美术最重要的一个部分。上面讲过,游戏美术非常讲究合作,这种合作不只是和企划,程序之间的合作,更是美术各个部分之间的合作。 在开始制作前,美术就要和企划协调好,确定好整体风格,确定好俯视角度。一般有30度,45度,60度3种,其中45度又是最常用的。还有一些比较特殊的,比如横版(如街霸)及一些不是很固定的视角(比如《轩辕剑3》),确认角度包括地图的角度和人物的角度。确认完角度下来就是调节灯光,因为人物是在地图行走的,如果两者的明暗对比差别过大,会给玩家很怪的感觉,所以要调节好两者的关系。还要确定好人物和建筑的比例,是写实的还是Q版的,还是混合型的。大体的东西确认好以后才能进入美术的制作。 地图部分 地图制作按制作方法又可以分为图素拼图和整图制作。图素拼图指的是做出做出多块8方连续的各种小块的图,通过地图编辑器拼成一种大的地图,比如《帝国时代》,《剑侠情缘2》等,这种方法做出来的地图相对比较平淡,但是比较节省系统资源;整图制作,就是一个场景一次性建模渲染出来,比如《月影传说》《轩辕剑3》等,这种制作方法做出来的图相对丰富,真实漂亮,但是受机器的影响不能做太大的图。

简单游戏外挂制作教程

在几年前我看到别人玩网络游戏用上了外挂,做为程序员的我心里实在是不爽,想搞清楚这到底是怎么回事。就拿了一些来研究,小有心得,拿出来与大家共享,外挂无非就是分几种罢了(依制作难度): 1、动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标、键盘等,使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式。(这种外挂完全是垃圾,TMD,只要会一点点API的人都知道该怎么做,不过这种外挂也是入门级的好东东,虽然不能提高你的战斗力,但是可以提高你的士气^_^) 【24商城】超多外挂教程免费下载啦 网址:https://www.wendangku.net/doc/557593695.html,/ 淘宝店铺:https://www.wendangku.net/doc/557593695.html,/ 2、本地修改式,这种外挂跟传统上的一些游戏修改器没有两样,做这种外挂在编程只需要对内存地址有一点认识并且掌握API就可以实现,“精灵”的外挂这是这种方式写成的,它的难点在于找到那些地址码,找地址一般地要借助于别人的工具,有的游戏还有双码校验,正正找起来会比较困难。(这种外挂,比上一种有一点点难度,但是这种外挂做起来能够用,也是有一定难度的啦~~,这种外挂可以很快提升你对内存地址的理解及应用,是你编程技术提高的好东东) 3、木马式,这种外挂的目的是帮外挂制作者偷到用户的密码(TMD,“烂”就一个字,不过要知已知彼所以还是要谈一下啦~~),做这种外挂有一定的难度,需要HOOK或键盘监视技术做底子,才可以完成,它的原理是先首截了用户的帐号或密码,然后发到指定邮箱。(我以前写过这样的东东,但是从来没有用过,我知道这种东东很不道德,所以以后千万别用呀!~~) 4、加速式,这种外挂可以加快游戏的速度……(对不起大家,这种东东我没有实际做过,所以不能妄自评,惭愧~~) 5、封包式,这种外挂是高难度外挂,需要有很强的编程功力才可以写得出来。它的原理是先截取封包,后修改,再转发(Kao,说起来简单,你做一个试试~~~~)。这种外挂适用于大多数网络游戏,像WPE及一些网络游戏外挂都是用这种方式写成的,编写这种外挂需要apihook技术,winsock技术 这几种外挂之中,前三种可以用VB,DELPHI等语言比较好实现,后两种则要用VC等底层支持比较好的编程工具才好实现。 现在就依次(制作难度)由浅到深谈谈我对外挂制作的一些认识吧~~~~

RPG游戏制作教程

RPG全称为:Role Playing Game(角色扮演游戏) RPG游戏《仙剑奇侠传》(20张) RPG是电脑游戏的发展历史中形成的第一大阵营。作为具有一定的情节、描述人物成长过程、表现事件始末的一种游戏,决定了角色扮演类游戏必须提供一个广阔的虚拟空间来供游戏者旅行、冒险和生活。虽然这个空间是虚拟的,但它也有其一定的生存环境和规则。由于该类的大多游戏较别类游戏更强调文字的表现,使角色扮演游戏能够更为贴切地表达人类的情感。而整个游戏的流程由战斗,进行贸易,解开谜题和繁琐的迷宫串在一起。在很大程度上满足了游戏者潜在的对拥有多姿多彩的不凡生活的渴望。因为RPG游戏相对于其他类型的游戏,技术要求最低,电脑配置要求也最低,因此开发起来相对容易很多,RPG游戏在电子游戏中也是历史最为悠久、数量最为庞大的一种。在电子游戏发展史中,也留下了许许多多的经典作品,像家用电视游戏机上的《最终幻想》系列,PC 机上《魔法门》系列,还有中文电脑RPG游戏的经典《仙剑奇侠传》、《轩辕剑》、《幽城幻剑录》以及《幻想三国志》系列、《新绝代双骄》系列等。 游戏《上古卷轴》截图(20张) 相对于其他类型游戏,此类游戏更重要的核心是世界观表现及角色代入感体验(世界观依托于具有故事 RPG游戏《上古卷轴》(11张)性的文字设定,包括场景设定角色设定等诸多前期因素,所以此类游戏的前期筹备工作对于其他类型游戏来说是一个更为浩大的工程,对于RPG本身来说也是最为重要的工程),在很大程度上满足了游戏者潜在的对拥有多姿多彩的不凡生活的渴望。RPG的前身是交互式小说,与现在的冒险类游戏(简称AVG或ADV)同源,RPG游戏在电子游戏中也是历史最为悠久、数量最为庞大的一种。世界上第一款电子平台的RPG是1981年的游戏《巫术》。在电子游戏发展史中,也留下了许多经典作品,比如家用游戏机上的《最终幻想》、《勇者斗恶龙》(电子游戏中的两大RPG龙头,都属于SQUARE-ENIX公司,某种程度上左右着次世代游戏机战争)、《阿月历险记》、《异度传说》、《口袋妖怪》SEGA的《梦幻之星》系列、 RPG游戏《暗黑破坏神》截图(11张)《光明》系列;NAMCO的《传说》系列(包含《幻想传说》、《宿命传说》、《深渊传说》、《永恒传说》、《重生传说》、《薄暮传说》、《世界传说》、《心灵传说》、《风雨传说》);Falcom的《英雄传说》系列、《伊苏》系列、《双星物语》系列;PC 上的《暗黑破坏神》、《无冬之夜》、《上古卷轴》、《博德之门》、《魔法门》,《神鬼寓言》还有中文电脑PC平台 中的RPG经典——《仙剑奇侠传》以及《轩辕剑》、《剑侠情缘》、《幽城幻剑录》、《幻想三国志》、《新绝代双骄》、《刀剑封魔录》、《秦殇》等。 2.2 分类判断 分类判断依据: 成长要素为判断游戏类型为角色扮演的最主要依据,包括角色的等级以及队友、宠物、使魔等一系列附属角色的成长,但不包括武器的成长(因为武器既作为大部分动作游戏的基本要素,也与角色本身的成长以及修为无关)。角色扮演游戏作为极有影响力的游戏类型,在游戏分类中也处于较为优先位置。例如,通常情况下,只要存在人物成长的要素,即便是以其他方式为主要操控方式的游戏也往往被分入角色扮演的类型。例如动作角色扮演游戏中的《暗黑破坏神》系列、《泰坦之旅》;策略角色扮演的《火焰纹章》系列、《FFT》。

游戏辅助制作教程——如何使用按键精灵脚本自动间隔时间释放辅助技能

游戏辅助制作教程——如何使用按键精灵脚本自动间隔时间释放辅助技能 脚本使用说明: 1.按键精灵脚本可应用于各种网络游戏,用于自动间隔时间使用辅助技能,可自定义 三个技能和间隔时间。 2.脚本开始运行前请先在按键精灵主界面上设置自定义参数,修改后点击上方的“保 存”按钮。 3.可定义辅助技能热键:数字0~9、字母A~Z、F1~F12 ,设置技能时字母可不 分大小写。 4.如果辅助技能是F1~F12,比如技能是F12,自定义参数设置的输入格式:f12或 F12 5.输入间隔时间单位为"秒",比如间隔180秒,自定义参数的输入格式:180 6.如果在自定义设置中输入的数据错误,脚本将提示并停止运行。

>>具体脚本代码如下: UserVar jn1=a 设置技能1键位 UserVar jn2=2 设置技能2键位 UserVar jn3=F11 设置技能3键位 UserVar s1=60 设置技能1施放间隔时间 UserVar s2=90 设置技能2施放间隔时间 UserVar s3=120 设置技能3施放间隔时间 //----------------------------------------------------------------------- //---------------------------------------------------------[赋值初始变量] //----------------------------------------------------------------------- dim number(2),thetime(2),key(2),sj(2) dim a,b,c,d,jn1,jn2,jn3,s1,s2,s3,t1,t2,t3,L //声明变量 number(0)=jn1:number(1)=jn2:number(2)=jn3 thetime(0)=s1:thetime(1)=s2:thetime(2)=s3 //把自定义参数的返回值转换成数组元素 t1=now:t2=now:t3=now //返回当前系统日期时间到变量 //----------------------------------------------------------------------- //---------------------------------------------------------- [跳转子程序] //----------------------------------------------------------------------- Gosub 判断按键

游戏头发制作教程

低面模型的头发部分一直是许多游戏艺术家的很难处理的一个地方。不但要花很多时间,而且很少有人能把它做好。而对于没有头发的头部或者一个光光的后脑都很容易做出来。我话了三个月潜心研究各种不同的发型得到了一些进展。制作一个角色的头部没有什么特定的方法,所以我尽量寻找最好的方法制作出面数最少的头部,再重点制作头发纹理。我的结果可以在这里看到。我们将在这个教程中制作头发纹理保存为这个PSD文件。 首先你需要启动你的软件,设置你的工具。我会使用一些自定义的笔刷。你要自己的思路,可以到Adobe去找一些头发方面的教程。为了制作笔刷,你先粗略的定义出笔刷的大小。产生一个黑白图象,然后到编辑-》自定义笔刷。黑色的区域就是笔刷的笔毛部分,而白色的地方则是透明的。你需要降低空间间隔,并且用面板上的选项控制一下头发的不透明度。这里笔刷最好是连续的。这里是我的笔刷(注意:最后一个笔刷的大小只有一个象素,并且都是硬边缘)。每个都会显示4次以后的实际大小。你可以将这些都调入到Photoshop中去(编辑-》自定义笔刷),或者你可以下载一下我的设置。我希望你可以根据自己的需要自己完善一下设置。 第一个笔刷是用来绘制那种柔软的头发的。它可以工作在不同的大小下,而且它非常的柔软。第二个是在中心位置加强了一下锐利程度。它主要是应用在直头发上。第2个和第3个是双倍笔刷,使用水平的和垂直的,而且要是用3倍的话就显得太多了。最后一个是单个象素的笔刷,有非常硬的边缘,这个是用于高精度修饰头发。 我制作了一个完整的头,在做每种发型的时候,你都要观察这种发型的特征。而使用旧的技术而使用出新的方法是一个艺术家的最好的能力。所以我将介绍一个制作头发纹理的小例子,在制作的时候一定要找到这些头发的特征,参照物是很关键的。

脚本制作教程:按键精灵加速游戏

精心整理脚本制作教程:按键精灵加速游戏 来源:按键学院【按键精灵】植物大战僵尸这款游戏,想必大家都不陌生 讲述的是一场植物与僵尸之间刻骨铭心的撕逼大战 是一款老少皆宜和善可爱的游戏……此处省略一万字…… 『4』快和慢这两个蓝色的按钮,也是用于调整速度的,与滑块的区别在于:滑块可以一次性拉动很大的范围,而按钮是精确调整的,每一次点击增/减一个单位的速度。 『5』恢复"按钮",用于将速度归零。 变速命令 变速命令是官方新插件里的 SysEx系统插件增强版下的命令:Speed

注意:速度的倍数,范围:-256~256,保留小数点后3位,可以实现1.001、1.002倍速度。 我们要实现,拖动滑块图片,往左右移动的时候,滑块图片会跟随着鼠标移动。 步骤: 『1』当我们点住滑块这张图片时,获取当前鼠标位置。 『2』启动计时器,计时器的时间间隔设置为50毫秒。 『3』在计时器的Timer事件里再次获取当前鼠标位置,对比两次获取鼠标位置之间横坐标的差值。『4』将滑块图片的横坐标加上两次鼠标位置之间的横坐标差值。

『5』检测鼠标左键是否弹起,如果弹起则将计时器的Enabled属性设置为假。 整体代码 //调试运行事件子程序 //SubOnScriptLoad() //Form1.Show //EndSub Form1.Show EndScript //《》 当前句柄=0 CallForm1. EndEvent //《》 EventForm1. Form1. Form1.滑块 Form1. Call( EndEvent Form1. EndEvent //《》 EventForm1. Form1.滑块 IfForm1.滑块 Form1. // Call( EndEvent //《》 EventForm1.快.Click Form1.滑块.Left=Form1.滑块.Left+1 IfForm1.滑块.Left>=296ThenForm1.滑块.Left=296 Form1.速度值.Caption=Form1.滑块.Left-196&"倍数" //设置指定窗口(Hwnd)加速到100倍 Call(当前句柄,Form1.滑块.Left-196) EndEvent //《》-------------滑块变速 EventForm1.滑块.Click GetCursorPosqx,qy hx=Form1.滑块.Left EndEvent

相关文档
相关文档 最新文档