联系我们

金枪哥喷剂官网

9958874

羊了个羊是不是骗局?

发布者:金枪哥官网发布时间:2022-11-23访问量:46
󦘖

添加微信送喷剂

9958874

添加微信

不是,这种游戏能火起来,我就觉得很匪夷所思。

做一个这种游戏,比做一个俄罗斯方块还简单,我花了晚上两个钟,自己写了一个咖波了个咖波(咖波作者原谅我,咖波太可爱了,侵删)

这种游戏逻辑写起来不要太简单好么

而且官方还否认了,羊了个羊不是抄袭(不能说很像,只能说完全一致)

3tile

嘿嘿,既然如此我也不客气了,我这就把咖波了个咖波开个源,大家可以在assets中自己替换成自己喜欢的贴图哈

比如可以狗了个狗

奥特曼了个奥特曼

蛇了个蛇

另外敲黑板,划重点了哈,游戏特色:

1.我没有做游戏胜利界面哈,因为大概率不需要过不了关哈,只有0.001%的人能通关哈

2.游戏失败界面当然是做了的

3.我摊牌哈,牌子全是随机生成的,不保证能全消哈

害,居然忘记做了游戏最重要的功能,看广告,死罪死罪

PS:另外说一句广告要看99999秒哈,毕竟看广告才是这个游戏的玩法

我编译成了webassembly,激情游戏,在线试玩

https://www.painterengine.com/main/instances/instance2022092001/index.html

​www.painterengine.com/main/instances/instance2022092001/index.html

备用链接

https://www.painterengine.cn/main/instances/instance2022092001/index.html

​www.painterengine.cn/main/instances/instance2022092001/index.html

源码下载:

https://www.painterengine.com/example.html

​www.painterengine.com/example.html

备用链接:

https://www.painterengine.cn/example.html

​www.painterengine.cn/example.html

依赖引擎库

PainterEngine 一个由C语言编写的完整开源的跨平台图形应用框架

​www.painterengine.com/index.html

备用链接:

PainterEngine 一个由C语言编写的完整开源的跨平台图形应用框架

​www.painterengine.cn/index.html

PPS:有人问我广告打开了,不想看完消格子了,要怎么退出啊,这个问题问的好!!来都来了你还想跑?

PPPS:我怕真有人把99999s的广告看完了,提前预告一下,广告时间有负数的哈

下面的内容是写给DIY玩家看的

==============================================

本来只是随便写的用来嘲讽一下羊了个羊这个韭菜游戏的回答,没想到大家那么热情,居然想真的上手还要通关.

我坦白,我连胜利过关界面都没做,前面的意思呢,是0.001%的人能(用非正常手段)通关,但事情沦落到这个地部,不得不开放一下教程,把通关庆祝做了,顺便让有些真正想玩这游戏的上手DIY一下.

关于换皮肤这一点,仍然是打开assets文件夹,替换对应png文件哈

注意一下,png图片的大小一定是48*48的png彩色图片,尺寸不一样不能成功,另外png decoder也是我自己搓的轮子,所以一些灰度之类的非常见png也无法加载,大部分时候应该是没有问题的,那个广告ad2.png也可以换,不过图片大小没有额外要求.

之后是生成布局,因为大多数人不会编译,所以捏,我使用了PainterEngine内部集成的编译型脚本引擎PainterScript,不要慌,很简单的,请用记事本或者Visual studio code之类的文本编辑器打开script.c,就是下面这个

里面的默认的无法通关的搞笑代码如下:

name "main"

//创建标签函数,x,y表示其左上角坐标,每个标签必定是48x48大小的,z表示深度,越大则放置的越底下,在标签被上层遮盖时将不能被点击

//id就是你png文件对应的数字,最大支持31个标签,id的范围是1-31,如果没有对应png图片,会创建失败,png图片格式必定是(1.png,2.png,3.png.....31.png)

host void CreateNote(float x,float y,float z,int id);

//取随机数,min为最小值,max为最大值

host int rand(int min,int max);

//在这个函数里创建标签,surface_width为画布宽度,surface_height为画布高度,note_type_count为标签类型个数(和你放了几个png文件有关)

export int main(int surface_width,int surface_height,int note_type_count)

{

int x,y,z;//x,y索引,z表示层数,值越大则放在越底下,

for (z = 0;z < 5; z++ )//一共5层

{

for (y = 0; y < 8-z; y++)//最上层8*8,逐层递减

{

for (x = 0; x < 8-z; x++)

{

float objx = surface_width / 2 - 48 * 4 + 24 * z;//计算标签左上角x坐标

float objy = 32+24*z;//计算左上角y坐标

CreateNote(objx + 48 * x, objy + 48 * y, z+1, rand(1,note_type_count));//随机创建一个标签

}

}

}

}

在main函数里呢,生成的就是对应的布局,上面呢我把注释都打好了,默认布局代码如上,你可能会说,好复杂我不会编程看不懂啊,咋办,小问题:

我们重点关注

host void CreateNote(float x,float y,float z,int id);

这个函数是创建标签用的,x,y表示要创建标签左上角坐标,每个标签必定是48x48大小的,z表示深度,越大则放置的越底下,在标签被上层遮盖时将不能被点击,id就是你png文件对应的数字,最大支持31个标签,id的范围是1-31,如果没有对应png图片,会创建失败,png图片格式必定是(1.png,2.png,3.png.....),当然你放的png越多,这个游戏就越难.

我举个例子,首先窗口左上角为原点坐标,y轴向下,x轴向右,我现在创建3个标签

name "main"

host void CreateNote(float x,float y,float z,int id);

host int rand(int min,int max);

export int main(int surface_width,int surface_height,int note_type_count)

{

CreateNote(200,200,1,2);

CreateNote(300,200,1,2);

CreateNote(400,200,1,2);

}

那么,运行结果就是这样的

或者代码如果是这样的:

name "main"

host void CreateNote(float x,float y,float z,int id);

host int rand(int min,int max);

export int main(int surface_width,int surface_height,int note_type_count)

{

int i;

for (i = 1; i < 24; i++)

{

CreateNote(200+i*12,200,i,rand(1,8));

}

}

那运行结果就是这样

当然,你也可以学习默认的代码,用代码手段去生成布局,PainterScript是我自己做自己用的一门语言,但用法和C基本很像,大家自行揣摩哈.

微信号复制成功

打开微信,点击右上角"+"号,添加朋友,粘贴微信号,搜索即可!