![]() |
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Ich habe noch keine Fehler gefunden, läuft bis jetzt noch super!!
|
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Find ich auch
|
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Hee, wenn man die Rollsounds deaktiviert kommt das nich!
|
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
@tumm,
Verstehe ich das Richtig. Du Aktivierst Sound, und Deaktivierst Rollsounds. Und dann gehts ? was eigentlich überhaupt keinen Sinn macht. Erst Recht dann nicht wenn dann diese Fehlermeldung sein soll. Ich Poste euch mal den Gesamten Code der Mit den Rollsounds dazu gekommen ist.
Delphi-Quellcode:
So hier kommt dann der Code von meinem Sound Manager.
// Das ist die Procedure die Aktiv wird wenn die Kugel Fliegt.
// hat eigentlich nichts direkt mit dem fehler zu tun. Aber ihr seid bestimmt neugierig wie ich das alles mache ;) Var ocolls: boolean = False; Colls: Boolean = False; Colltime: Dword; Const Colltimefact = 50; Procedure SoundBeginContact; Begin ocolls := Colls; colls := false; End; Procedure SoundEndContact; Begin If Ocolls And Not Colls Then Begin // Negative Flanke !! Colltime := GetTickCount; End; // Messen der Zeit seit Negativer Flanke !! If (Not Ocolls) And (Not Colls) Then Begin If Gettickcount - Colltime > Colltimefact Then Soundmanager.stop; End; End;
Delphi-Quellcode:
Das ganze Greift auf Bass.dll zu.
Type
TSoundmanager = Class private Finitialized: Boolean; Sounds: Array Of HStream; Playing: Array Of boolean; fsoundpath: String; Procedure Playchannel(Value: Integer); public Procedure Play(Playermaterial, Bottommaterial: integer; Waited: Boolean); Procedure Stop; Constructor create(SoundPath: String; h_Wnd: Hwnd); Destructor destroy; override; End; Der Constructor Lädt direct die Sound Files :
Delphi-Quellcode:
Und diese Function hier startet dann die Endlosschleifen von Sound [ 16- 22 ]
Constructor TSoundmanager.create(SoundPath: String; h_Wnd: Hwnd);
Var i: integer; Begin Inherited create; // Bass.dll initialisieren Finitialized := BASS_Init(-1, 44100, 0, h_Wnd, Nil); If Not Finitialized Then MessageBox(0, 'Could not load Bass.dll', 'Error', MB_ICONWARNING Or MB_OK); // Laden der Sound Files If Finitialized Then Begin fsoundpath := Soundpath; setlength(Sounds, 23); Sounds[0] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Hit_Paper.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[1] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Hit_Wood_Wood.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[2] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Hit_Wood_Stone.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[3] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Hit_Wood_Metal.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[4] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Hit_Stone_Wood.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[5] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Hit_Stone_Stone.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[6] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Hit_Stone_Metal.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[7] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Misc_Fall.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[8] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Misc_Checkpoint.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[9] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Music_Final.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[10] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Misc_extraball.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[11] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Extra_Start.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[12] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Misc_Enlargeball.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[13] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Misc_shrinkball.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[14] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Misc_die.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[15] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Menu_click.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[16] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Roll_Paper.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[17] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Roll_Stone_Metal.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[18] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Roll_Stone_Stone.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[19] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Roll_Stone_Wood.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[20] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Roll_Wood_Metal.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[21] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Roll_Wood_Stone.wav'), 0, 0, BASS_SAMPLE_FX); Sounds[22] := BASS_StreamCreateFile(False, PChar(Soundpath + 'Roll_Wood_Wood.wav'), 0, 0, BASS_SAMPLE_FX); setlength(Playing, High(sounds) + 1); For i := 0 To High(playing) Do Playing[i] := false; End; End;
Delphi-Quellcode:
Irgendwo im Code ist glaubig noch die Stop Routine aufgerufen die ist hier :
Procedure Tsoundmanager.Playchannel(value: Integer);
Var info: BASS_CHANNELINFO; AChannel: HStream; i: integer; Begin If UseRollsounds Then Begin // Beenden der Anderen Channels For i := 0 To High(Playing) Do Begin If (i <> value) And PLaying[i] Then Begin BASS_ChannelStop(Sounds[i]); Playing[i] := false; End; End; If Not Playing[value] Then Begin // Starten des Channels aChannel := Sounds[value]; BASS_ChannelGetInfo(aChannel, Info); // Loop setzen / nicht setzen If ((Not (Info.Flags = BASS_SAMPLE_LOOP)) And (True)) Or (Info.Flags = BASS_SAMPLE_LOOP) And (Not true) Then BASS_ChannelSetFlags(aChannel, BASS_SAMPLE_LOOP); // Abspielen BASS_ChannelPlay(aChannel, true); Playing[value] := true; End; End; End;
Delphi-Quellcode:
Das Ganze Läuft nu wie Folgt ab.
Procedure TSoundmanager.Stop;
Var i: Integer; Begin For i := 0 To High(playing) Do Begin If Playing[i] Then BASS_ChannelStop(Sounds[i]); Playing[i] := false; End; End; Das Programm Ruft Render auf. dann wird die szene Gerendert. dann wird mit folgendem Code die Physik und damit dann auch die Audio Aktualisiert.
Delphi-Quellcode:
Mehr ist nich. Wo da dein TFont Error geschieht ist mir nich Klar.
While AccTimeSlice > 12 Do Begin
If Assigned(NewtonWorld) Then Begin SoundBeginContact; NewtonUpdate(NewtonWorld, (12 / 1000)); SoundEndContact; End; AccTimeSlice := AccTimeSlice - 12; End; Die "MS Sans Serif" Font wird über TopenGlSimple Font geladen. die entsprechende Unit gibts auf meiner HP. Die kannst du Gerne mal runterladen und versuchen ob die bei dir Läuft. |
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Also der Fehler bei Tumm ist endlich auch gefunden.
Das Problem lag im Dateiformat der User.cfg Da das ein Extra Thema ist werde ich aber nen neuen Thread damit aufmachen. |
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Moin Corpsman,
da ist doch tatsächlich schon lange eine neue Version mit Rollsound erschienen und ich hab's nicht gemerkt... Klasse!! So macht's noch mehr Spaß. Zwei Dinge sind mir beim Spielen eingefallen, die man noch einbauen könnte: - Nach der Eingabe des Namens für die Highscore, kommt die Highscore, so dass man sich ansehen kann, wo man gelandet ist. Man muss sich allerdings die erspielten Punkte merken, und in der Highscore wieder suchen. Wie wäre es, den neu hinzugekommenen Eintrag irgendwie zu markieren, sodass man sofort sieht, wo man gelandet ist? - Eine Anzeige der aktuellen Geschwindigkeit in einer beliebigen Einheit. Wenn man lange Strecken bergauf oder bergab geradeaus rollt kann man die Geschwindigkeit manchmal nicht mehr so gut abschätzen. Eine Anzeige würde mir helfen. Gruß Malte PS: Gibt es auch schon neue Level? :angel: |
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Liste der Anhänge anzeigen (Anzahl: 1)
hi stz,
Deine Idee mit der Farblichen Markierung ist gut, ich schau das ich es einbau. Was die anderen Wünsche angeht so nehme ich sie in die Todo Liste auf. Ich kann das leider grad net machen weil ( aber verrats noch keinem ) ich bau grade den Schatten ein. Seit 2 Tagen ist es mir gelungen einen Schatten unter die Kugel zu bekommen ;) . Nu arbeite ich mich gerade Polygonweise durchs gesammte Spiel auf das man den Schatten auch sehen kann. Wies ungefähr wird kannst im Screenshot sehen. Leider wird es aber noch gut 4 - 5 Tage Dauern bis es soweit ist. Die "Check for Update" funktion im Launcher wird dir aber sagen wann genau die neue Ver online ist ;). |
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Moin Corpsman,
uijuijui ... das sieht ja toll aus :cyclops: !! 4-5 Tage sind ne lange Zeit... wie soll ich das nur aushalten :gruebel: Ah, die "Check for Update"-Funktion ist auch praktisch. Vielleicht sollte ich sie mal benutzen :wink: Gruß Malte |
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
Hmm wenn du mich ganz nett Bittest kann ich ja Extra und nur hier für die DP User eine Pre Release Version online Stellen.
Denn wie man auf dem Screenshot sehen kann tut der Schatten ja bereits, nur eben nicht bei allen Elementen. |
Re: Balanced das Spiel für Starke Nerven und Starke Graphikk
ich hatte das Spiel ja schon beinahe vergessen, aber habe eben wieder den thread gesehen und mir gleich mal die neueste version geholt. Fin das Spiel nach wie vor klasse!
Eine Sache ist mir allerdings aufgefallen: Wenn man ein Level gespielt hat, werden alle anderen grün angezeigt, obwohl man sie noch nicht spielen kann. sonst werden sie rot angezeigt. Ist ja nix gravierendes wollte nur mal drauf hinweisen, falls nicht schon darauf hingewiesen wurde. Ich bin auch schon ganz gespannt auf die nächste version (wegen dem schatten des Balls^^) :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz