ShattenReyze - Forum
 
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Yarrr, revolution!
 
Pages: [1] 2 3 ... 5
  Print  
Author Topic: Der Guitar-Hero Code-Thread  (Read 30857 times)
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« on: June 11, 2010, 05:27:21 pm »

Ich hab mir gedacht, ich mach da mal einen neuen Thread auf weil ich ein paar Fragen habe.

1)RhythmGame::initSong
Code:
SetGameSpeed(40);
  RGConf.gamespeed = GetGameSpeed();
  // Warum 25 ?
  RGConf.gamespeed = FloatToInt((1.0 / IntToFloat(RGConf.gamespeed))*1000.0,eRoundNearest);

2)RhythmGame::setSprites
Warum werden die Parameter nicht verwendet?
Logged
abstauber
Administrator
Hero Member
*
Posts: 973



View Profile Email
« Reply #1 on: June 12, 2010, 01:38:06 pm »

Schön, dass du etwas Zeit gefunden hast, dir das mal anzusehen.

Ich hab mir gedacht, ich mach da mal einen neuen Thread auf weil ich ein paar Fragen habe.

1)RhythmGame::initSong
Code:
SetGameSpeed(40);
  RGConf.gamespeed = GetGameSpeed();
  // Warum 25 ?
  RGConf.gamespeed = FloatToInt((1.0 / IntToFloat(RGConf.gamespeed))*1000.0,eRoundNearest);
Hier muss ich gleich zurückfragen: welche 25?  Die 40 lege für den Fall fest, dass man im Hauptspiel (also wenn, das mal als Modul läuft) die Spielgeschwindigkeit verändert. Zum berechnen des Timings brauchte ich eine konstante Geschwindigkeit.

Die ganzen Werte sind also für Gamespeed=40 geraten. Falls du das berechnen kannst, muss natürlich nicht 40 sein. Wink

2)RhythmGame::setSprites
Warum werden die Parameter nicht verwendet?

Das ist noch ein Rudiment aus der ersten Version, als ich noch mit Sprites gearbeitet habe. Allerdings ist die Performance ohne Sprites wesentlich höher, so dass ich auf die internen Zeichenfunktionen umgestiegen bin.

Die Spriteslots können also weg, hab ich nur übersehen.
Logged
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« Reply #2 on: June 13, 2010, 07:42:14 am »

Ad 1)

Ich habe das so verstanden, dass die Geschwindigkeit auf 40 gesetzt wird. Dann wird die aktuelle Geschwindigkeit (die ja jetzt 40 sein sollte) in RGConf.gamespeed gespeichert. Und dann wird RGConf.gamespeed wieder überschrieben und zwar mit 1/40*1000, was auf meinem Taschenrechner 25 ist.
Logged
abstauber
Administrator
Hero Member
*
Posts: 973



View Profile Email
« Reply #3 on: June 14, 2010, 07:07:45 am »

Ah okay... das sind ja auch 25   Lips sealed

Das ist mein Versuch, einen Midi-Tick zu berechnen, aber ich glaube auch, dass da eine gewisse Portion Raterei mit am Werk gewesen ist.

Jedenfalls hatte ich folgende Formeln dabei im Auge:

TEMPO = 60.000.000/BPM
MSEC = TICKS/PPQN x TEMPO/1000

Das ganze steht in dem Pdf "Midi-Prog.pdf" ab Seite 69  (bzw. 73 im Acrobat).
Logged
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« Reply #4 on: June 14, 2010, 09:31:00 am »

Ah, danke. Ich sag fürs erste mal dass es Magie ist und gut so  Wink Nein, im ernst, ich werds mir in den nächsten Tagen ansehen.
Logged
abstauber
Administrator
Hero Member
*
Posts: 973



View Profile Email
« Reply #5 on: June 14, 2010, 09:34:00 am »

Juchuu Grin
Logged
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« Reply #6 on: June 16, 2010, 07:58:08 am »

Ich hab mir das gestern angeschaut, ich versteh jetzt glaub ich ungefähr, wie prinzipiell das MIDI Tempo usw. funktioniert. Den Code hab ich noch nicht ganz verstanden, aber ich muss da einfach noch mehr Zeit investieren. Die nächsten zwei Wochen bin ich allerdings auf Urlaub.
Logged
abstauber
Administrator
Hero Member
*
Posts: 973



View Profile Email
« Reply #7 on: June 16, 2010, 09:01:00 am »

Prima. Der Code ist stellenweise tatsächlich sehr verworren.

Ich fange immer ziemlich strukturiert an, dann funktioniert irgendwas nicht und ich hacke solange auf den Code ein, bis es dann doch geht. Die Zeit zum Refactoring habe ich mir hier leider nicht genommen.

Viel Spaß im Urlaub!
Logged
abstauber
Administrator
Hero Member
*
Posts: 973



View Profile Email
« Reply #8 on: October 05, 2010, 09:46:58 am »

Ich hab noch ein wenig gegoogelt:

http://home.roadrunner.com/~jgglatt/tech/midifile/ppqn.htm
http://web.physik.rwth-aachen.de/~harm/aixphysik/sound/midi/pages/miditmcn.html

http://midi.mathewvp.com/aboutMidi.htm

Arbeitest du da eigentlich noch dran?
« Last Edit: October 05, 2010, 10:09:38 am by abstauber » Logged
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« Reply #9 on: October 05, 2010, 12:08:17 pm »

Im Moment tu ich lieber zeichnen als programmieren (mach das eh den ganzen Tag in der Arbeit), aber ich werde sicherlich mal wieder daran weiterarbeiten. Was soll man sonst an verregneten Novemberwochenenden tun  Wink
Logged
abstauber
Administrator
Hero Member
*
Posts: 973



View Profile Email
« Reply #10 on: October 07, 2010, 08:57:47 am »

Stimmt wohl. Wenn man den DirectSound Hardware Mixer einstellt, läufts auch synchron. Wäre also hauptsächlich das Mysterium der Fallgeschwindigkeit der Noten zu lösen.

Gesucht: Pixel pro Sekunde
Gegeben: Chaos Cheesy
Logged
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« Reply #11 on: October 07, 2010, 01:10:01 pm »

 Huh worauf hat sich jetzt dein letzter Post bezogen?
Logged
abstauber
Administrator
Hero Member
*
Posts: 973



View Profile Email
« Reply #12 on: October 08, 2010, 07:17:40 am »

Die erste Zeile: AGS Setup

Die letzten 2 Zeilen
Auf meinen Programmcode und dem Raten von Zahlen, wann wie die Notenbalken fliegen.

Keine Anfeindungen oder Sticheleien Smiley

Logged
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« Reply #13 on: October 08, 2010, 01:04:49 pm »

Habs nicht böse aufgefasst, nur nicht verstanden  Wink

Durch das "Stimmt wohl" dachte ich, es bezieht sich auf mein Post, aber das hat dann nicht zusammengepasst
Logged
cat
Dev Team
Sr. Member
*
Posts: 302


View Profile
« Reply #14 on: January 08, 2011, 07:27:16 pm »

Wenn das ganze jetzt Schlagzeug ist und nicht mehr Gitarre - wie wird das dann? Das Enter=Anschlag Ding macht so wohl keinen Sinn mehr, oder? Also Zifferntaste drücken entspricht aufs Schlagzeug hauen? Dann wär das ganze vllt auch einfacher.
Logged
Pages: [1] 2 3 ... 5
  Print  
 
Jump to: