AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Balanced das Spiel für Starke Nerven und Starke Graphikkarte
Thema durchsuchen
Ansicht
Themen-Optionen

Balanced das Spiel für Starke Nerven und Starke Graphikkarte

Ein Thema von Corpsman · begonnen am 13. Jul 2006 · letzter Beitrag vom 21. Sep 2008
Antwort Antwort
Seite 41 von 57   « Erste     31394041 424351     Letzte »    
Hagbart

Registriert seit: 9. Dez 2006
Ort: Alsfeld
35 Beiträge
 
Delphi 7 Personal
 
#1

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Dez 2006, 20:54
Ich habe noch keine Fehler gefunden, läuft bis jetzt noch super!!
  Mit Zitat antworten Zitat
Tumm

Registriert seit: 17. Jun 2006
Ort: Celle
171 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Dez 2006, 20:55
Find ich auch
Code Gear = Kot Gier
  Mit Zitat antworten Zitat
Tumm

Registriert seit: 17. Jun 2006
Ort: Celle
171 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Dez 2006, 21:07
Hee, wenn man die Rollsounds deaktiviert kommt das nich!
Code Gear = Kot Gier
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Dez 2006, 22:38
@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:
// 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;
So hier kommt dann der Code von meinem Sound Manager.

Delphi-Quellcode:
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;
Das ganze Greift auf Bass.dll zu.

Der Constructor Lädt direct die Sound Files :
Delphi-Quellcode:
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;
Und diese Function hier startet dann die Endlosschleifen von Sound [ 16- 22 ]

Delphi-Quellcode:
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;
Irgendwo im Code ist glaubig noch die Stop Routine aufgerufen die ist hier :
Delphi-Quellcode:
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 Ganze Läuft nu wie Folgt ab.

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:
          While AccTimeSlice > 12 Do Begin
            If Assigned(NewtonWorld) Then Begin
              SoundBeginContact;
              NewtonUpdate(NewtonWorld, (12 / 1000));
              SoundEndContact;
            End;
            AccTimeSlice := AccTimeSlice - 12;
          End;
Mehr ist nich. Wo da dein TFont Error geschieht ist mir nich Klar.

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.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 27. Dez 2006, 13:10
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.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von stz
stz

Registriert seit: 8. Sep 2005
Ort: Neuendeich, Lübeck
277 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Mai 2007, 15:27
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?
Malte Schmitz
Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.

Entwickler des HTML-Editors MEdit (DP)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Mai 2007, 15:52
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 .
Miniaturansicht angehängter Grafiken
screnshot_787.jpg  
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von stz
stz

Registriert seit: 8. Sep 2005
Ort: Neuendeich, Lübeck
277 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Mai 2007, 17:33
Moin Corpsman,
uijuijui ... das sieht ja toll aus !! 4-5 Tage sind ne lange Zeit... wie soll ich das nur aushalten

Ah, die "Check for Update"-Funktion ist auch praktisch. Vielleicht sollte ich sie mal benutzen

Gruß
Malte
Malte Schmitz
Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.

Entwickler des HTML-Editors MEdit (DP)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Mai 2007, 18:21
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.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Balanced das Spiel für Starke Nerven und Starke Graphikk

  Alt 26. Mai 2007, 18:25
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^^)

  Mit Zitat antworten Zitat
Antwort Antwort
Seite 41 von 57   « Erste     31394041 424351     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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-2025 by Thomas Breitkreuz