Seite 1 von 3

2 Probleme: SpriteCollision() und Soundproblem

Verfasst: 21.12.2008 23:44
von Mok
Servus!
Ich hab 2 Probleme, eines behandelt die Kollision 2er Sprites das andere ein Problem mit einem Sound

1. Problem
Kann es sein dass zwischen SpriteCollision() und SpritePixelCollision() keinen Unterschied gibt? In der Doku steht zwar, dass SpritePixelCollision() im Gegensatz zu SpriteCollision() nicht anschlägt, wenn sich transparente Pixel 2er Sprites überlappen. Tja, bei mir funzt das anscheinen nicht so ganz, da der Ausdruck einer Ifabfrage trotzdem passiert, auch wenn sich zwei oder mehrere transparente Pixel gleichzeitig überlappen :|

2. Problem
Muss ein WAV-Sound eine bestimmte Frequenz haben, damit er abgespielt werden kann? In meinem Programm lade ich den Sound "data\sfx\appl.wav" (so ein Applaus-Spund) auf Speicherstelle Nr. 056. Wenn ich nachher im Prorgamm den Sound abspielen mag, stoppt der Compiler und der Debugger meint [ERROR] The spectified #Sound is not initialized - warum? Der Pfad stimmt, der Filename stimmt, die ID stimmt, alles stimmt... aber irgendwie doch nicht :?:

MfG und thx² im vorraus, Mok

Re: 2 Probleme: SpriteCollision() und Soundproblem

Verfasst: 22.12.2008 00:22
von Kaeru Gaman
1.

da musst du irgendwas verdaddelt haben.
grundsätzlich funktioniert SpritePixelCollision wie es soll, auch in 4.3
hab extra noch nen test gemacht.

2.

der sound wird offensichtlich nicht geladen.
prüf mal die rückgabe des LoadSound().
tippe mal auf ein Sub-Format, das von PB nicht unterstützt wird.

Re: 2 Probleme: SpriteCollision() und Soundproblem

Verfasst: 22.12.2008 09:56
von Mok
Kaeru Gaman hat geschrieben: da musst du irgendwas verdaddelt haben.
Ohne dich nerven zu wollen, oder deine Zeit verschwenden zu wollen, aber ich glaube, da komme ich nicht umhin dir nochmal ein Sourcecode-Archiv zu schicken (ab einem gewissen Grad möchte ich meine unfertigen Programme inkl. Ressourcen nur noch an vertraute Personen weitergeben => Kaeru Gaman :mrgreen: )
Kaeru Gaman hat geschrieben:tippe mal auf ein Sub-Format, das von PB nicht unterstützt wird.
Well, ich hab's als WAV geladen (ich glaube von www.findsounds.com oder so), kanns per Mediaplayer (ok, eigentlich benutze ich WinAmp, aber mit dem Microschrott Mediaplayer geht's auch) abspielen, und wenn's der kann, dann mag das was heißen (und zwar, dass das PB auch können sollte)

Verfasst: 22.12.2008 11:47
von dllfreak2001
Ich glaub mit 8bit mag es PB nicht oder so.
Konvertier mal die Wav in 16bit mono 44kHz.
Außerdem muss es unkomprimiert sein.

Nutze für sowas lieber ogg, ist kleiner kann auch von der Soundlib geladen werden und habe damit selten probleme.

Verfasst: 22.12.2008 12:33
von Kaeru Gaman
... so langsam muss ich wohl anfangen, dir Honorar in Rechnung zu stellen ... :mrgreen:

also, hier mal ein winziges S-P-Coll Beispiel, alles wesentliche drin,
vielleicht fällt dir anhand dessen auf, wo du was verhaun hast.

Code: Alles auswählen

InitSprite()
InitKeyboard()
InitMouse()

OpenScreen(1024,768,32,"test")

CreateSprite( 0, 128,128 )
  StartDrawing( SpriteOutput(0) )
    Box( 0,0, 128,128, $FF00FF )
    For n=7 To 0 Step -1
      Line(  n,   0  , 128,  128, RGB( 0, 255-n, 0 ) )
      Line(  0,   n  , 128,  128, RGB( 0, 255-n, 0 ) )
      Line(  n, 128  , 128, -128, RGB( 0, 255-n, 0 ) )
      Line(  0, 128-n, 128, -128, RGB( 0, 255-n, 0 ) )
    Next
  StopDrawing()
TransparentSpriteColor( 0, $FF00FF )

Repeat
  ExamineMouse()
  ExamineKeyboard()

  MX = MouseX()
  MY = MouseY()

  coll = SpritePixelCollision( 0, MX, MY, 0, 448, 320)

  ClearScreen( $100804 )

  DisplayTransparentSprite(0, 448, 320)
  DisplayTransparentSprite(0, MX, MY )

  StartDrawing(ScreenOutput())
    DrawText(0,0,Str(coll))
  StopDrawing()

  FlipBuffers()

Until KeyboardPushed(#PB_Key_Escape)

Verfasst: 22.12.2008 17:48
von Mok
WTF?
PureBasic Debugger hat geschrieben: Das mit dem Debugger gestartete Executable reagierte für 5 Sekunden auf keine Kommunikation mehr. Unterbreche es.
Jetz ist der Debugger ganz im A...Eimer

EDIT
Na hör mal!
Bild

Verfasst: 22.12.2008 17:55
von Kaeru Gaman
och jungchen, was hast du denn angestellt... you screwed it.

installier dir doch mal PB in ein Jungfräuliches Verzeichnis,
und benutz auch ab und zu nen Virenscanner...

vielleicht hast du aber auch tatsächlich "nur" völligen disruptor in deinem kot... code... kaut.... kraut... plumpaquatsch

Verfasst: 22.12.2008 17:57
von cxAlex
Es könnte aber auch an dem liegen:
PB 4.3 Releasenotes hat geschrieben: - Verbessert: Vollständige Neuprogrammierung des Debuggers zwecks Unterstützung der neuen Plattformen
"Vollständige Neuprogrammierung" kann problematisch sein.....

Verfasst: 22.12.2008 18:00
von Mok
Jetz nach nem Neustart funzt PB wieder. Aber bei dir funzt's mit dem SpritePixelCollision() bei mir nicht :cry:

@ober mir: noch ein Österreicher? :D

Verfasst: 22.12.2008 18:03
von Kaeru Gaman
Mok hat geschrieben:Aber bei dir funzt's mit dem SpritePixelCollision() bei mir nicht :cry:
du meinst, mein code geht, deiner nicht?

na supi, dann liegt der Bug bei dir, also kannst du ihn auch beheben.