重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
假如你创建了一个新的世界,想要把这个图分享给自己的朋友
创新互联是一家集网站建设,东源企业网站建设,东源品牌网站建设,网站定制,东源网站建设报价,网络营销,网络优化,东源网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
假如你想要创建一个特定地貌的世界
OK,请接下去看:
众所周知,MC的世界是随机生成的,生成的原理是基于Seed,我们可以称之为“种子”。
首先来解释一下什么是种子(Seed):
在选择创建一个新的世界之后,会随机生成一段代码,之后所有世界内地形的生成都会基于这段代码,而这段代码就是种子(Seed)。
Beta1.3版之后,作者在地图创建时增加了自定义种子代码的输入框,使我们能通过输入特定种子代码来生成特定的世界环境,见下图:
这段种子代码可以由字母、数字、符号组成。当然,这段代码并不能被人类的语言所识别,而是计算机语言。
即使我们输入Mountain、Hill、River、Pond,也不能保证一定生成高山湖泊,所输入的一切字符都将被转成计算机语言而失去原有的含义。
既然不能生成我们想要的地形,那种子还有什么意义呢?
这么说吧,一旦世界生成之后,种子就固定下来了,只要我们能获知种子代码,那我们就可以利用这段代码近乎完美的复制出原来的世界。
之后找到Minecraft目录内的Saves目录,选择后按Open Minecraft Saves Folder
将框内的种子代码复制下来之后,就可以和你的朋友分享自己的世界了。
下面分享几个国外论坛上比较流行的代码
沙漠
-3783495550425123442
Chuck Norris
Bombastic
deadmau5
山地
-9028489474908844496
-1784338777788894343
AMERICA
冰雪世界
N64
Opium
LOTS OF LAVA
平原
-6233942100435987048
海岛
CHICKENS!!!!!!!!
其他推荐:
Glacier
5425496042675343811
3dm
注:由于出生点仍然会略有不同,因此你想要的地形并不一定就会在出生点附近,所以请多走几步或重新生成一次已确保特征地形不会离你的出生点太远。
for(int i=0; i2; i++) {
for(int j=0; j3; j++) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(20+100*j, 40+150*i, 75, 122);
[btn setTitle:[NSString stringWithFormat:@"%d",(3*i+j)+1] forState:0];
btn.tag = 3*i+j;
[self.view addSubview:btn];
}
}
设置tag,主要是为了添加点击事件时可以正确的知道是那个按钮触发的。
[img]本文我们来分享在ios开发中如何通过自定义按钮并跳转到另外一个视图的学习实例,这种场景在ios开发中很常用。刚学iOS不久,虽然视图切换能直接用stroryboard创建,拖根线就完事了!但不知道为嘛,还是感觉iOS开发中代码控制视图灵活方便。不多说了,开始今天的笔记:新建工程,不多说啦!我喜欢用Empty Application,创建完成后,新建两个UIViewController类,假设A和B吧!!哈哈这儿将appDelegate中的代码就省了!!哈哈。相信能看到这儿的人,也懂得如何设置root视图了我们要实现的是,从A点击一个按钮,弹出来B窗口,然后点击B窗口的一个按钮,返回到A窗口。直接开始代码:A:- (void)viewDidLoad{[super viewDidLoad];//设置视图背景颜色self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];//添加弹出模态视图按钮UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];//设置按钮位置和大小[button setFrame:CGRectMake(120, 220, 80, 40)];//设置按钮文字及状态[button setTitle:@"模态视图" forState:UIControlStateNormal];//添加动作绑定[button addTarget:self action:@selector(modelViewGO) forControlEvents:UIControlEventTouchUpInside];//添加进视图[self.view addSubview:button];}-(void) modelViewGO{BViewController * modalView = [[BViewController alloc]init];modalView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;[self presentViewController:modalView animated:YES completion:nil];// [modalView release];}然后在B视图中,添加返回按钮及相关代码:B:- (void)viewDidLoad{//和A视图差不多的东西,不解释啦!![super viewDidLoad];self.view.backgroundColor = [UIColor purpleColor];UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button setFrame:CGRectMake(130, 50, 60, 20)];[button setTitle:@"返回" forState:UIControlStateNormal];[button addTarget:self action:@selector(back ) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:button];}-(void)back{//下面这行代码作用就是将弹出的模态视图移除,第一个yes表示移除的时候有动画效果,第二参数是设置一个回调,当模态视图移除消失后,会回到这里,可以在这里随便写句话打个断点,试一下就知道确实会回调到这个方法// [self dismissViewControllerAnimated:YES completion:nil]; 或带有回调的如下方法[self dismissViewControllerAnimated:YES completion:^{NSLog(@"back");//这里打个断点,点击按钮模态视图移除后会回到这里//ios 5.0以上可以用该方法}];}程序默认的动画效果是从下往上弹出,可以改modalTransitionStyle换成其他效果modalView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {UIModalTransitionStyleCoverVertical = 0,//默认垂直向上UIModalTransitionStyleFlipHorizontal, 翻转效果UIModalTransitionStyleCrossDissolve,淡入淡出#if __IPHONE_OS_VERSION_MAX_ALLOWED = __IPHONE_3_2UIModalTransitionStylePartialCurl,翻页效果#endif};需要注意的地方 :1.在弹出的模态视图上点击返回按钮后,该视图对象彻底被释放了,记得要将添加到该视图上的一些对象都写在dealloc方法中
在ios开发中,可以使用GDataXML生成xml
GDataXML只有两个文件GDataXMLNode.h和GDataXMLNode.m。使用方法如下:
将文件包含进工程后,添加libxml2.dylib:
之后添加路径${SDK_ROOT}/usr/include/libxml2:
现在可以编写代码了:
#import "GDataXMLNode.h"
// 创建一个根标签
GDataXMLElement *rootElement = [GDataXMLNode elementWithName:@"root"];
// 创建一个属性
GDataXMLElement *attribute = [GDataXMLNode attributeWithName:@"a" stringValue:@"b"];
// 创建一个标签元素
GDataXMLElement *element = [GDataXMLNode elementWithName:@"user" stringValue:@"HelloWorld"];
// 把标签与属性添加到根标签中
[rootElement addAttribute:attribute];
[rootElement addChild:element];
// 生成xml文件内容
GDataXMLDocument *xmlDoc = [[GDataXMLDocument alloc] initWithRootElement:rootElement];
NSData *data1 = [xmlDoc XMLData];
NSString *xmlString = [[NSString alloc] initWithData:data1 encoding:NSWindowsCP1253StringEncoding];
NSLog(@"xmlString %@", xmlString);
结果:
?xml version="1.0"?
root a="b"userHelloWorld/user/root
在做iOS开发的过程中,你会发现有些代码在项目中需要反复使用,在XCode里面我们可以通过Code Snippet将常用的代码创建成代码片段,并定义好快捷方式,我们在需要输入这块代码的时候,只需要输入几个字母,就能迅速生成这块常用的代码,这样会大大提高我们的编程效率。
XCode里面默认定义了一些比较常用的代码片段,比如我们想要写一个for in的循环,我们只需要输入forin这几个字母,然后按下回车键,XCode里面就会自动生成一个for in的代码块。
那么XCode里面的Code Snippet是在哪定义呢,在XCode右侧的导航栏下面,切换到第二个Tab,可以看到XCode自带的默认的Code
Snippet。
那么我们怎么定义自己的代码片段呢,操作很简单。首先选中将要定义的代码片段,然后将其拖放到右侧的Code
Snippet中。
可
以看到Code
Snippet自动为我们生成了一个My Code
Snippet的代码片段,点击Edit按钮,我们可以设置一下这个代码片段的一些属性。主要有两个属性需要我们设置一下,修改Title的默认描述,定
义Completion
Shortcut快捷输入方式,这里面我创建的是一个Lable,我简单设置为cl,点击Done按钮,就完了这个代码片段的定义了。
现在在Xcode的代码编辑器中只需要输入快捷方式(cl),就能将上面的代码快添加到代码中去了。
上面定义的代码块,字体大小和颜色都是设置成固定的,但是在实际的使用过程中,我们一般都要去修改这个Label的字体大小和颜色,我们可以将这两个值设置为占位符,这样我们在修改的时候可以使用Tab键,快速定位到要修改的地方了。在Code
Snippet里面可以将要动态变化的参数放在# #之间,比如我们上面定义的代码块可以修改成下面这样:
[objc] view plain copy
UILabel *label = [UILabel new];
label.font = [UIFont systemFontOfSize:#fontSize#];
label.textColor = [UIColor #textColor#];
label.backgroundColor = [UIColor clearColor];
[self addSubview:label];
现在我们在代码编辑里面输入cl再试一下,发现设置字体大小和颜色的地方,已经变成占位符了,我们可以通过Tab键切换去修改对应的值了,这感觉比在Xib里面去设置控件的属性更方便,有木有~
上面创建的控件的名字都叫lable,在实际的开发过程中,我们肯定需要去修改这个控件的名字,但是在上面定义的代码块里面,我并没有将控件的名字通过#
#定义为占位符,是因为XCode里面提供了一种修改同一个变量名的快捷方式,选中变量名,然后同时按下control+command+E,就可一次将变量的名字修改好了,如果用占位符的话,还得一个个去填写变量的名字。
Code
Snippet特别对于用代码布局UI的时候,很有帮助,由于代码布局需要自己手动一个个去创建控件,如果一个个去写很费时间,通过Code Snippet将创建控件的代码封装成代码块,在需要使用的地方,直接使用快捷键就能生成创建控件的代码了。