2 Probleme: SpriteCollision() und Soundproblem

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

2 Probleme: SpriteCollision() und Soundproblem

Beitrag 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
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: 2 Probleme: SpriteCollision() und Soundproblem

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: 2 Probleme: SpriteCollision() und Soundproblem

Beitrag 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)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag 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.
I´a dllfreak2001
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag 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
Zuletzt geändert von Mok am 22.12.2008 18:00, insgesamt 3-mal geändert.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag 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.....
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag 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
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten