MAV bei Imagescollide

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Rongo Matane

Betreff: MAV bei Imagescollide

BeitragDo, Nov 15, 2007 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich musste gerade erschrocken feststellen, dass eine für mich unerklärliche Mav an folgender Stelle in meinem Spiel auftritt:

Code: [AUSKLAPPEN]
If ImagesCollide(motorrad,posx1,posy1,moframe1,kfzgfx(kfz\typ),lane(kfz\lane,kfz\road)+kfz\varx,kfz\posy,0) Then


erstmal vorweg, mit imagesoverlap besteht das Problem nicht.

Das komisch ist, dass es nur bei einem kfz des mit kfz\Typ=2 auftritt - bei allen anderen nicht.

kfz\lane,kfz\road,kfz\varx,kfz\posy werden für alle Autos genau gleich berechnet, von daher weiss ich nicht wo der Fehler liegt. Ich habe auch schonmal die kfzgfx vertauscht, das Problem besteht immer bei der 2.

Ich nehme mal an, dass ihr noch mehr code braucht um mir ordentlich zu helfen, aber ich wolte nich gleich 500 zeilen code schicken.

Einen fehler an dem motorrad schließe ich mal aus, da es für alle anderen autos ja funktioniert. Hier einfach mal noch die Berechnungen für das kfz zeugs, vllt bringt das ja etwas Licht in die Sache:

Die Funktion zum erstellen eines Autos

Code: [AUSKLAPPEN]
Function Addkfz(road,frontback)

typhelp=Rand(0,3)
lanehelp=Rand(5-roadextdat(roaddat(1,roadcount1),0),4)
posyhelp=1200-(frontback*2000)
erstellung=1

For kfz.kfzstat = Each kfzstat
   If kfz\lane=lanehelp Then
      If frontback=0 Then
         If (kfz\posy+Int(kfzdaten(kfz\Typ,3))+sichabst > posyhelp) And (kfz\posy-Int(kfzdaten(typhelp,3))-sichabst < posyhelp) Then erstellung=0
      EndIf
      If frontback=1 Then
         If (kfz\posy+Int(kfzdaten(kfz\Typ,3))+sichabst > posyhelp) And (kfz\posy-Int(kfzdaten(typhelp,3))-sichabst < posyhelp) Then erstellung=0
      EndIf
   EndIf
Next

If erstellung=1 Then
   kfz.kfzstat=New kfzstat
   kfz\typ=typhelp
   kfz\lane=lanehelp
   kfz\road=road
   kfz\skill=skill(Rand(0,2))
   kfz\character=Rand(0,2)
   kfz\varx=(lanesize-Int(kfzdaten(kfz\typ,2)))/2
   kfz\speed=8*character(kfz\character)
   kfz\posy=posyhelp
   kfz\id=Handle(kfz)
   kfzanz=kfzanz+1
EndIf
End Function


Ich dachte erst, dass das Problem an kfzdaten() liegen könnte, aber eigentlich kann ich das ausschließen, da die Werte aller Autos recht ähnlich sind, keine Schreibfehler vorliegen o.ä.

Hat jemand eine Idee worans liegen könnte? Wenn irh mehr Code braucht kein Problem, sagt einfach für welchen Bereich.

mfg Rongo
Aktuelles Projekt: Empresario ~ 30% [sleeping]
 

HyDr0x

BeitragDo, Nov 15, 2007 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenns bei images overlap nicht da steht würde ich behaupten es liegt am Frame ... denn das fehlt ja bei Overlap.

Ansonsten finde ich die Klammer im hinteren teil von Imagescollide sehr merkwürdig ...

Rongo Matane

BeitragDo, Nov 15, 2007 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
HyDr0x hat Folgendes geschrieben:
Wenns bei images overlap nicht da steht würde ich behaupten es liegt am Frame ... denn das fehlt ja bei Overlap.


die Überlegung hatte ich auch schon, aber jedes Auto hat nur ein Frame: 0
Und wenn man beachtet, dass es nur für einen Autotyp nicht geht, dann kann der Fehler nicht am motorradframe (moframe1) liegen, oder?

HyDr0x hat Folgendes geschrieben:
Ansonsten finde ich die Klammer im hinteren teil von Imagescollide sehr merkwürdig ...


Die Klammerung stimmt, obwohl sie zugegebenermaßen komisch aussieht.
lane ist ein 2 dimensinaler array, der so aufgebaut ist:
lane(Anfang der Fahrspur (pixel),seite der autobahn)
Aktuelles Projekt: Empresario ~ 30% [sleeping]
 

Gast

BeitragFr, Nov 16, 2007 20:44
Antworten mit Zitat
Hast du Debbuger an?

Rongo Matane

BeitragSa, Nov 17, 2007 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
flitztuete95 hat Folgendes geschrieben:
Hast du Debbuger an?


Ja, hab ich.
Ohne kommt auch eine MAV...
Aktuelles Projekt: Empresario ~ 30% [sleeping]
 

BIG BUG

BeitragSo, Nov 18, 2007 2:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Die ImagesCollide und ImageRectCollide-Befehle führen gerne mal zu sporadischen MAVs, ist ein Bug mit BB und diversen GrakaTreibern. Am Besten verzichtet man auf diese Befehle komplett.

Workaround siehe hier:
https://www.blitzforum.de/foru...hp?t=15128
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group