前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GameMakerStudio2初体验【1】

GameMakerStudio2初体验【1】

原创
作者头像
轻吻晴雯
修改2019-09-02 11:54:41
2.1K0
修改2019-09-02 11:54:41
举报
文章被收录于专栏:杂文共赏杂文共赏

GM2入门介绍

主要相比Unity3D,GM2适合单人新人进行开发,但GM2需要购买(248),国内社区不活跃,资料少。

主界面
主界面

这是一个国外友人制作的类星露谷游戏。

可以在这里找到一些免费的贴图https://opengameart.org/。

Sprites就是代表一个贴图,Objects是贴图的功能(包括控制贴图的行为等)。把objects拖入room,那么就实例化了它,可以按F5运行游戏看到结果。

object0:Step指的就是对象每一帧都去判断,我们写下代码判断按键实现Sprites移动。

在Options的Main中可以设置游戏帧数,一般默认为60就可以了。

如果有些函数你不知道如何调用,在函数上按下鼠标中键(有的鼠标没这个键),可以看到帮助文档。

GM2移动与碰撞

代码语言:javascript
复制
spd = 2
if(keyboard_check(vk_left)){
	x = x - spd
}
if(keyboard_check(vk_right)){
	x = x + spd
}
if(keyboard_check(vk_up)){
	y = y - spd
}
if(keyboard_check(vk_down)){
	y = y + spd
}

你可以将速度设为一个变量,这样就不用每一项都进行修改了。

代码语言:javascript
复制
/// @description Insert description here
// You can write your code in this editor
spd = 2
input_left = keyboard_check(vk_left)
input_right = keyboard_check(vk_right)
input_up = keyboard_check(vk_up)
input_down = keyboard_check(vk_down)

if(input_left){
	x = x - spd
}
if(input_right){
	x = x + spd
}
if(input_up){
	y = y - spd
}
if(input_down){
	y = y + spd
}
if(input_left or input_right){

}else{

}

这样更方便在后面少些一些代码,但这不是必须的。其实这里有个问题,如果你同时按下2个键,那将不是你想要的效果,你可以试试。

那么碰撞如何检测呢?简单的思想就是如果移动后物体的XY和另一物体的XY接触了,那么就不移动。

代码语言:javascript
复制
moveX = 2;
moveY = 2;
if(place_meeting(x + moveX,y,object1)){
	moveX = 0;
}

if(place_meeting(x,y + moveY,object1)){
	moveY = 0;
}

x+=moveX;
y+=moveY;

object1是你要检测的碰撞目标。

改变Object的名字也很重要,一个好的系统你需要好的命名规则。

这样的碰撞检测有一个问题,就是如果移动速度过快,在接触碰撞时有一个大的间隙。

那么怎么办?可以把直接移动x个单位改成移动x次1个单位。

代码语言:javascript
复制
moveX = 2;
moveY = 2;
if(place_meeting(x + moveX,y,object1)){
	repeat(abs(moveX)){
		if(!place_meeting(x+sign(moveX),y,object1)){
			x+=sign(moveX);
		}else{
			break;
		}
	}
	moveX = 0;
}


x+=moveX;

精灵(sprites)和资源(assets)

大家可以看到,在2D游戏中,一个移动的NPC其实就是NPC移动方向的图片连续展示,在肉眼看来就是在连续移动。

通过这里导入。https://github.com/makrohn/Universal-LPC-spritesheet

视角和摄像机

视角就是实际用户实际显示的画面,可能要比实际的地图小。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GM2入门介绍
  • GM2移动与碰撞
  • 精灵(sprites)和资源(assets)
  • 视角和摄像机
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档