Forums » Themes » I'm looking for a new way to create difficulty display

1
Hmm............First I changed my nick name!~Better than CrzP I think.

I'm a CRAZY Project DIVA fun,so I want to add something like Project DIVA Arcade in my theme.
As you know,stepmania's difficulty list displays difficulty as a "list".It can be scrolled and only displays playable difficulties.

But I don't want to use it now.I want something new!0w0
DIVA
there is a full list of all maps.And I'm trying to do this:
1.Five Icons with difficulty+meter display when selecting music.When Edit playable,it becomes six.
2.When a step is not palyable,it will become dark.(e.g.No beginner,then beginner Icon become dark)
3.Highlight when It is being selected(e.g.selecting medium,then medium is shining.)
4.They won't change it's place.XD

I made an example,and it worked.
	Def.Quad{

InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_TOP+90;diffuse,color("#00FFFF");zoomto,SCREEN_WIDTH,30;fadetop,0.2;fadebottom,0.2);
OnCommand=cmd(diffusealpha,0.6;playcommand,"Set");
CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
SetCommand=function(self)
local song = GAMESTATE:GetCurrentSong();
local style = GAMESTATE:GetCurrentStyle():GetStepsType()
if song:HasStepsTypeAndDifficulty(style,'Difficulty_Beginner') then
self:diffusealpha(0.6)
else
self:diffusealpha(0)
end;
end;
OffCommand=cmd(accelerate,0.2;diffusealpha,1;decelerate,0.4;zoomy,0;diffusealpha,0);
};


Now I'm looking for an important thing......meter display.
I don't know params at all.Can I grab them from params?.....And how to do it?
Or......How to use GetMeter( )?
Welcome,Thememaniaians./来吧,主题狂们。
Contact me!QQ:1030110910/欢迎与我联系,QQ:1030110910
Reply
Yes, you want to use GetMeter(). GetMeter() is a member of the Steps class, so you need an instance of Steps to use it. So you want to use Song:GetOneSteps() to get the Steps for the difficulty, then call GetMeter on that Steps.
So...

local song= GAMESTATE:GetCurrentSong();
local style= GAMESTATE:GetCurrentSTyle():GetStepsType()
local steps= song:GetOneSteps(style, "Difficulty_Beginner")
if steps then
local meter= steps:GetMeter()
self:diffusealpha(0.6)
else
self:diffusealpha(0)
end


If you know how, life will be easier for you if you set up one thing that uses a loop to iterate through the difficulties and set the actors for each one appropriately.
< cybik> til Kyzentun fixes bugs for breakfast
--
< maxvg1> shakesoda: then why do i still play lol
<@shakesoda> because you're an ITG player. And thus, a masochist
--
<@shakesoda> Kyzentun: I think you might need to put down the meshes for a bit
Reply
Thanks~I'll try this later.
Welcome,Thememaniaians./来吧,主题狂们。
Contact me!QQ:1030110910/欢迎与我联系,QQ:1030110910
Reply