Skip to content

Commit

Permalink
doing stuff + language data added
Browse files Browse the repository at this point in the history
  • Loading branch information
Joalor64GH authored Jul 27, 2024
1 parent 549ac03 commit 19c53c5
Show file tree
Hide file tree
Showing 9 changed files with 172 additions and 30 deletions.
3 changes: 3 additions & 0 deletions assets/data/highScores.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"test": 0
}
31 changes: 30 additions & 1 deletion assets/languages/en.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
{
"greeting": "Hello, world!"
"memTxt": "Memory: ",
"pressEnter": "Press ENTER to Start!",

"opFPS": "FPS Counter",
"opFlScrn": "Fullscreen",
"opAnti": "Antialiasing",
"opFrm": "Framerate",
"opLang": "Language",
"opCtrls": "Controls",

"descFPS": "Toggles the FPS Display. Set to: ",
"descFlScrn": "Toggles fullscreen. Set to: ",
"descAnti": "Toggles global antialiasing. Set to: ",
"descFrm": "Use LEFT/RIGHT to change the framerate (Max 240). Set to: ",
"descLang": "Changes the language. Set to: ",
"descCtrls": "Edit your controls.",

"scoreTxt": "Score: ",
"missTxt": "Misses: ",
"pauseTxt": "PAUSED?",
"pauseCtrls": "ENTER - Resume / R - Restart / ESCAPE - Menu",

"timeTxt": "Time: ",
"secTxt": "Section: ",
"bpmTxt": "BPM: ",
"curSTxt": "CurStep: ",
"curBTxt": "CurBeat: ",
"snapTxt": "Note Snap: ",
"disTxt": "DISABLED",
"ctrlArrTxt": "CONTROL + ARROWS"
}
31 changes: 30 additions & 1 deletion assets/languages/es.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
{
"greeting": "Hola mundo!"
"memTxt": "Memory: ",
"pressEnter": "Press ENTER to Start!",

"opFPS": "FPS Counter",
"opFlScrn": "Fullscreen",
"opAnti": "Antialiasing",
"opFrm": "Framerate",
"opLang": "Language",
"opCtrls": "Controls",

"descFPS": "Toggles the FPS Display. Set to: ",
"descFlScrn": "Toggles fullscreen. Set to: ",
"descAnti": "Toggles global antialiasing. Set to: ",
"descFrm": "Use LEFT/RIGHT to change the framerate (Max 240). Set to: ",
"descLang": "Changes the language. Set to: ",
"descCtrls": "Edit your controls.",

"scoreTxt": "Score: ",
"missTxt": "Misses: ",
"pauseTxt": "PAUSED?",
"pauseCtrls": "ENTER - Resume / R - Restart / ESCAPE - Menu",

"timeTxt": "Time: ",
"secTxt": "Section: ",
"bpmTxt": "BPM: ",
"curSTxt": "CurStep: ",
"curBTxt": "CurBeat: ",
"snapTxt": "Note Snap: ",
"disTxt": "DISABLED",
"ctrlArrTxt": "CONTROL + ARROWS"
}
2 changes: 1 addition & 1 deletion source/game/Checker.hx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class Checker extends GameSprite {
this.checked = checked;

loadGraphic(Paths.image('options/checker'), true, 400, 400);
scale.set(0.2, 0.2);
scale.set(0.15, 0.15);

animation.add("check", [0], 1);
animation.add("uncheck", [1], 1);
Expand Down
52 changes: 31 additions & 21 deletions source/game/HighScore.hx
Original file line number Diff line number Diff line change
@@ -1,33 +1,43 @@
package game;

typedef HighScoreData = {
var songName:String;
var score:Int;
};

class HighScore {
public static var highScores:Array<HighScoreData> = [];
public static var songScores:Map<String, Int> = new Map();

public static function loadHighScores():Void {
var fileName:String = Paths.json("highScores");
if (FileSystem.exists(fileName)) {
var fileContent:String = File.getContent(fileName);
highScores = Json.parse(fileContent);
}
public static function saveScore(song:String, score:Int = 0):Void {
var formattedSong:String = formatSong(song);
if (songScores.exists(formattedSong)) {
if (songScores.get(formattedSong) < score) {
setScore(formattedSong, score);
}
} else
setScore(formattedSong, score);
}

static function setScore(song:String, score:Int):Void {
songScores.set(song, score);
saveScoresToFile();
}

public static function saveHighScores():Void {
var fileName:String = Paths.json("highScores");
var serializedData:String = Json.stringify(highScores);
File.saveContent(fileName, serializedData);
public static function formatSong(song:String):String {
return song.toLowerCase().replace(" ", "_");
}

public static function addHighScore(songName:String, score:Int):Void {
highScores.push({songName: songName, score: score});
saveHighScores();
public static function getScore(song:String):Int {
var formattedSong:String = formatSong(song);
if (!songScores.exists(formattedSong))
setScore(formattedSong, 0);
return songScores.get(formattedSong);
}

public static function load():Void {
if (FileSystem.exists(Paths.json("highScores"))) {
var loadedScores:Map<String, Int> = Json.parse(File.getContent(Paths.json("highScores")));
songScores = loadedScores;
}
}

public static function getHighScores():Array<HighScore> {
return highScores;
public static function saveScoresToFile():Void {
var serializedData:String = Json.stringify(songScores);
File.saveContent(Paths.json("highScores"), serializedData);
}
}
2 changes: 1 addition & 1 deletion source/states/InitialState.hx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class InitialState extends ExtendableState {
default_language: "en"
});

// HighScore.loadHighScores();
// HighScore.load();

trace('current platform: ${PlatformUtil.getPlatform()}');

Expand Down
20 changes: 17 additions & 3 deletions source/states/OptionsState.hx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class OptionsState extends ExtendableState {

if (i < 3) {
var checked:Bool = getOptionState(i);
var checker:Checker = new Checker(optionTxt.x + optionTxt.width + 20, optionTxt.y, checked);
var checker:Checker = new Checker(optionTxt.x + 20, optionTxt.y, checked);
checkers.add(checker);
}
}
Expand Down Expand Up @@ -71,18 +71,32 @@ class OptionsState extends ExtendableState {
Main.fpsDisplay.visible = SaveData.settings.fpsCounter;
case "Antialiasing":
SaveData.settings.antialiasing = !SaveData.settings.antialiasing;
/*
case "Controls":
ExtendableState.switchState(new ControlsState());
*/
case "Language":
openSubState(new LanguageSubState());
}

updateCheckers();
updateText();
}

if (options[curSelected] == "Framerate") {
if (Input.is('right') || Input.is('left')) {
FlxG.sound.play(Paths.sound('scroll'));
if (!Input.is('left')) SaveData.settings.framerate += (SaveData.settings.framerate == 240) ? 0 : 10;
else SaveData.settings.framerate -= (SaveData.settings.framerate == 60) ? 0 : 10;

Main.updateFramerate(SaveData.settings.framerate);
}
}
}

private function changeSelection(change:Int = 0) {
FlxG.sound.play(Paths.sound('scroll'));

curSelected = FlxMath.wrap(curSelected + change, 0, options.length - 1);

grpOptions.forEach(function(txt:FlxText) {
txt.alpha = (txt.ID == curSelected) ? 1 : 0.6;
});
Expand Down
7 changes: 5 additions & 2 deletions source/states/PlayState.hx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class PlayState extends ExtendableState {

resetSongPos();

var tempBG:FlxSprite = FlxGridOverlay.create(720, 720);
var tempBG:FlxSprite = FlxGridOverlay.create(50, 50);
tempBG.screenCenter(XY);
add(tempBG);

Expand Down Expand Up @@ -90,7 +90,8 @@ class PlayState extends ExtendableState {
ratingDisplay.alpha = 0;
add(ratingDisplay);

FlxG.sound.playMusic(Paths.song(song.song.toLowerCase()));
if (!paused)
FlxG.sound.playMusic(Paths.song(song.song.toLowerCase()), 1, false);
FlxG.sound.music.onComplete = () -> endSong;

generateNotes();
Expand Down Expand Up @@ -261,6 +262,8 @@ class PlayState extends ExtendableState {
function endSong() {
ExtendableState.switchState(new MenuState());
// FlxG.sound.playMusic(Paths.music('Rhythmic_Odyssey'));
// HighScore.saveScore(song, score);
// HighScore.saveScoresToFile();
}

function generateNotes() {
Expand Down
54 changes: 54 additions & 0 deletions source/substates/LanguageSubState.hx
Original file line number Diff line number Diff line change
@@ -1,11 +1,65 @@
package substates;

class LanguageSubState extends ExtendableSubState {
var languages:Array<String> = ["English (US)", "Español (España)"];
var group:FlxTypedGroup<FlxText>;
var curSelected:Int = 0;

public function new() {
super();

var bg:FlxSprite = new FlxSprite().makeGraphic(1280, 720, FlxColor.BLACK);
bg.alpha = 0.6;
add(bg);

var title:FlxText = new FlxText(0, 0, 0, 'SELECT A LANGUAGE', 12);
title.setFormat(Paths.font('vcr.ttf'), 70, FlxColor.WHITE, LEFT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
title.screenCenter(X);
add(title);

group = new FlxTypedGroup<FlxText>();
add(group);

for (i in 0...languages.length) {
var text:FlxText = new FlxText(0, 20 + (i * 70), 0, languages[i], 32);
text.setFormat(Paths.font('vcr.ttf'), 80, FlxColor.WHITE, FlxTextAlign.CENTER, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
text.screenCenter(X);
text.ID = i;
grpOptions.add(text);
}

changeSelection();
}

override function update(elapsed:Float) {
super.update(elapsed);

if (Input.is('up') || Input.is('down'))
changeSelection(Input.is('up') ? -1 : 1);

if (Input.is('exit')) {
FlxG.sound.play(Paths.sound("cancel"));
close();
}

if (Input.is('accept')) {
switch (curSelected) {
case 0:
SaveData.settings.lang = 'en';
case 1:
SaveData.settings.lang = 'es';
}
Localization.switchLanguage(SaveData.settings.lang);
SaveData.saveSettings();
ExtendableState.resetState();
}
}

private function changeSelection(change:Int = 0) {
FlxG.sound.play(Paths.sound('scroll'));
curSelected = FlxMath.wrap(curSelected + change, 0, languages.length - 1);
grpOptions.forEach(function(txt:FlxText) {
txt.color = (txt.ID == curSelected) ? FlxColor.LIME : FlxColor.WHITE;
});
}
}

0 comments on commit 19c53c5

Please sign in to comment.