有关字符BGA制作时的小(大)问题(音游与编程大佬请进)
  • 板块灌水区
  • 楼主ggggbbbbbb
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/4/5 23:20
  • 上次更新2023/10/28 04:29:11
查看原帖
有关字符BGA制作时的小(大)问题(音游与编程大佬请进)
277800
ggggbbbbbb楼主2022/4/5 23:20

原版视频のB站链接:https://www.bilibili.com/video/BV1Ex411m7R6?spm_id_from=333.337.search-card.all.click

emmm,平时比较喜欢打音游,在看到LeaF的单曲Aleph-0的BGA(可近似理解为MV吧)时突发奇想,用C++程序驱动做一个同样带劲的BGA会如何呢。

所以我用FL顺利获取了有关Aleph-0的部分节奏点。

6790开始

9340曲名

11650第一公式

13500第二公式

15400第三公式

17350第四公式

18340崩坏1

19400第五公式

21210第六公式

23210第七公式

25060第八公式

27100数字表 (前面的数字是歌曲开始的时间,这个比较简单,就是有点费命)

开始制作!

节奏问题我一开始使用clock()函数;程序开始运行时读一下时间,到特定点读一下时间,相减得t;当t到某个值时播放下一帧。

啊然后问题就来了:我要每时每刻都算一下当前程序的运行时间。所以我放弃了这个不好的方法,用Sleep等下一帧播放。大道至简

我想做的效果如下: 一个10*40的矩阵作为屏幕,一个数字1从屏幕顶端缓缓落下,在音乐大幅振动时干扰几下变成0的字样,那一整行从0向两边延伸出#########,再从两边收回,显示出Aleph-0.

搞到第一步就出事了。

源代码:

#include<bits/stdc++.h>
#include<conio.h>
#include<iostream>
#include<windows.h> 
#include<mmsystem.h> 
#include<time.h> 
using namespace std;
long long mt,t,st;
int i;
int main()
{char sc[10][40]={0};//screen
	for(int i=0;i<=9;i++)
		for(int j=0;j<=40;j++)
			sc[i][j]=' ';//定义
			sc[0][28]='1';
			for(i=0;i<=9;i++)
		{puts(sc[i]);}//打印
	Sleep(1700);//等一会
		system("cls");
	sc[0][28]=' ';
	sc[1][28]='1';//重新绘制
	for(i=0;i<=9;i++)
		{puts(sc[i]);}//打印
	Sleep(1700);
	
}

按道理讲,第一行,第29的位置应该出现1,持续1.7秒后清屏,在同一列下一行出现1才对。

however! 失败了,具体情况我嘴笨,说不好,如果有兴趣的话可以复制试试。 第一个问题就是解决如上未知bug.

第二个就是还原BGA中的公式,希望哪个大佬能提供较为独立的,相当高级的,能用键盘打出来放进程序的代码或公式。如果有兴趣或者有很强的创意的也可以来讨论一下。

原版视频のB站链接:https://www.bilibili.com/video/BV1Ex411m7R6?spm_id_from=333.337.search-card.all.click

谢谢!【合十】

2022/4/5 23:20
加载中...