Tomorrow - 地形生成(1)
原理很简单,请不要喷。
效果展示
种子输入框
种子为12345的地形
种子为23456的地形
代码展示
globalvar map
random_set_seed(real(get_string("Seed: ","")))//获取种子
for(i=0;i<=room_width/32;i+=1)
{
for(j=0;j<=room_height/32;j+=1)
{
map[i,j]=0;//初始化数组
}
}
for(i=0;i<=room_width/32;i+=1)
{
for(j=0;j<=room_height/32;j+=1)
{
if(random_range(0,100)>=65) map[i,j]=1;//按概率填充房间
}
}
for(n=1;n<=room_height/32;n+=1)
{
for(i=0;i<=room_width/32;i+=1)
{
for(j=0;j<=room_height/32-1;j+=1)
{
if(map[i,j+1]==0&&map[i,j]==1)
{
map[i,j+1]=map[i,j];
map[i,j]=0;//方块重力处理
}
}
}
}
for(i=0;i<=room_width/32;i+=1)
{
for(j=0;j<=room_height/32;j+=1)
{
if(map[i,j]==1) instance_create(i*32,j*32,obj_block)//在房间中按地图创建物体
}
}
代码讲解
使用的坐标系
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... |
|---|---|---|---|---|---|---|---|---|---|
| 2 | |||||||||
| 3 | |||||||||
| 4 | |||||||||
| 5 | |||||||||
| 6 | |||||||||
| 7 | |||||||||
| 8 | |||||||||
| 9 | |||||||||
| ... | ... |
随机数
random_set_seed():置随机数种子random_range:生产随机数
方块重力处理
map[i,j]==1是确保正在处理的位置有方块map[i,j+1]==0是确保正在处理的位置下面一格没有方块
如果符合条件的话
map[i,j+1]=map[i,j]//清空当前格
map[i,j]=0;//填充下面格
(即当前方块下落)
注意一下,这里没有用map[i,j+1]=1,让日后二次开发有更多方块。
放置方块
其实它的本质就是创建对象。
instance_create(x,y,obj)的用法自己看F1.
结语
这是我做的第一个记录,希望我的沙盒游戏也能坚持做下去!
说明
本文原作者Tesla,首发于Tesla-173的个人博客。
Tesla本人转载至Gamemaker开发者之家。
未经授权禁止转载。
如需转载请联系2230229670@qq.com。
Tomorrow - 地形生成(1)的更多相关文章
- 【BZOJ3193】[JLOI2013]地形生成(动态规划)
[BZOJ3193][JLOI2013]地形生成(动态规划) 题面 BZOJ 洛谷 题解 第一问不难,首先按照山的高度从大往小排序,这样子只需要抉择前面有几座山就好了.然而有高度相同的山.其实也不麻烦 ...
- 【BZOJ3193】 [JLOI2013]地形生成
BZOJ3193 [JLOI2013]地形生成 Solution 第一问不是很简单吗? 直接计数就好了. 第二问思考无果看了看hyj神仙的代码,发现可以dp求解. 具体可以看代码(其实主要是我说不清楚 ...
- 【BZOJ3193】[JLOI2013]地形生成 DP
[BZOJ3193][JLOI2013]地形生成 Description 最近IK正在做关于地形建模的工作.其中一个工作阶段就是把一些山排列成一行.每座山都有各不相同的标号和高度.为了遵从一些设计上的 ...
- [Bzoj3193][JLOI2013]地形生成 (排列组合 + DP)
3193: [JLOI2013]地形生成 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 459 Solved: 223[Submit][Status ...
- [bzoj3193][JLOI2013]地形生成_排列组合_贪心
[JLOI2013]地形生成 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3193 题解: 这种求总排列的题,一种常规做法就是所有的元素 ...
- Day3:关于地形生成
---恢复内容开始--- 今天桃子好像还是没什么动静,不过媳妇倒是有一点见红~ 希望这是马上要出来的前兆了~ 桃子都已经晃点我俩好多回了~ 已经都快习惯来她这个狼来了的征兆了~ ----------- ...
- Minecraft类游戏地形生成机制
目录 前言 生成地形高度 生成生物群落 模拟雨水侵蚀.生成河流(未完) 生成洞穴.裂谷 生成植被 放置树木(Bezier曲线) 生成建筑 生成发展域(元胞自动机模型) 放置建筑(DFS) 连接道路(A ...
- 初试PyOpenGL二 (Python+OpenGL)基本地形生成与高度检测
在上文中,讲述了PyOpenGL的基本配置,以及网格,球形的生成,以及基本的漫游.现在利用上一篇的内容,来利用高程图实现一个基本的地形,并且,利用上文中的第三人称漫游,以小球为视角,来在地形上前后左右 ...
- [JLOI2013]地形生成
JLOI2013过了好长时间,才写第四题.. 第一问比较好想. 第二问我想到了n^3次方的做法,但是数据....于是没敢写,然后上网查了一下题解,居然是O(n^3)过的,数据这么弱... /* * P ...
随机推荐
- 推荐三款好用的JSON格式化工具——JSON-handle & HiJson & JSTool
工具一:JSON-handle JSON-Handle是一款谷歌浏览器插件. 1.访问http://jsonhandle.sinaapp.com/下载 2.打开Chrome浏览器的扩展程序(访问chr ...
- ASP.NET Core去掉HTTPS配置和SSL证书
如果你的项目一不小心配置了https 右击项目=>属性=>调试=>启用SSL=>选择去掉 测试
- [Dynamic Programming]动态规划之背包问题
动态规划之背包问题 例题 现有4样物品n = ['a', 'b', 'c', 'd'],重量分别为w = [2, 4, 5, 3],价值分别为v = [5, 4, 6, 2].背包最大承重c = 9. ...
- Java基础语法(2)-变量
title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...
- Java第十三周实验作业
实验十三 图形界面事件处理技术 实验时间 2018-11-22 1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: 事件源:能够产生事件的对象都可以成为事件源,如文本框.按钮等,一个事 ...
- js数据类型及方法
数据类型及方法 数据类型 number 不区分整数和浮点数 string 字符串 boolean true / false 布尔 object null 数组 function 函数 undefine ...
- 【动态规划】最佳加法表达式(百练oj4152)
总时间限制: 1000ms 内存限制: 65536kB 描述 给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值.例如,在1234中摆放 ...
- Java多线程问题40个
1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然 ...
- ASP.NET Core单文件和多文件上传并保存到服务端
前言: 在我们日常开发中,关于图片,视频,音频,文档等相关文件上传并保存到服务端中是非常常见的一个功能,今天主要是把自己在开发中常用的两种方式记录下来方便一下直接使用,并且希望能够帮助到有需要的同学! ...
- Java刷题知识点总结
1,方法的重写(override)两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限. ...