BOXCOLL - fehlerhaft?

Previous topic - Next topic

blastar

mir ist eine abweichung bei dem befehl BOXCOLL aufgefallen, die function stimmt nicht mit der beschreibung überein:

" Überprüft, ob sich 2 Rechtecke überlappen... "

allerdings gibt der befehl auch TRUE zurück wenn sie die Rechteckte nur berühren.

start:
   IF BOXCOLL( 0,0, 16, 16, 16, 16, 16, 16)
       PRINT "collide!", 100, 100
   ENDIF
   SHOWSCREEN
GOTO start

ich wollte ein objeckt an einer "wand" entlang gleiten lassen was damit allerdings nichtböglich ist! :-( der workaround für mich ist es eines der objecte als "x +1, y+2, 14, 14 " zu deklrarieren anstatt "x, y, 16, 16"!

bug oder muss das so sein?





Schranz0r

kein Bug , funktioniert normal! :



Code (glbasic) Select
WHILE TRUE
MOUSESTATE mx, my, ba, bb

DRAWRECT 100,100,16,16, RGB(0x80, 0xff, 0x00)
DRAWRECT mx,my,16,16, RGB(0xff, 0x00, 0x00)

IF BOXCOLL( mx, my, 16, 16, 100, 100, 16, 16)
    PRINT "!!! COLLISION !!!", 100, 150
ENDIF

SHOWSCREEN
WEND
END
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kosta

#2
hmm,

es haben beide Recht  :nana:

im Prinzip sagst du bei Boxcoll, wieviele weitere Pixel er kontrollieren soll (d.h. wenn du 10 Pixel kontrollieren willst, gibst du hier eine 9 ein!)  -> siehe untere Beispiele: wenn du 0,0 sagst, kontrolliert er es Pixelgenau (d.h. er kontrolliert das eine Pixel)

Hier Pixelgenau (nur auf 100/100 meldet das Teil Kolision)
(Mann sieht, ich gebe der Boxcoll 0,0 Pixel mit)
Code (glbasic) Select

WHILE TRUE
MOUSESTATE mx, my, ba, bb

DRAWRECT 100,100,1,1, RGB(0x80, 0xff, 0x00)
DRAWRECT mx,my,1,1, RGB(0xff, 0x00, 0x00)
PRINT mx+" "+my,100,170
IF BOXCOLL( mx, my, 0, 0, 100, 100, 0, 0)
    PRINT "!!! COLLISION !!!", 100, 150
ENDIF

SHOWSCREEN
WEND
END


Wenn ich beim mx-Boxcoll 1,1 Pixel mitgebe, checkt er die mx-Koordinaten + 1 Pixel nach rechts und unten (dadurch entstehen deine Kontakte (also letztendlich 2 Pixel)
Code (glbasic) Select

WHILE TRUE
MOUSESTATE mx, my, ba, bb
DRAWRECT 100,100,1,1, RGB(0x80, 0xff, 0x00)
DRAWRECT mx,my,1,1, RGB(0xff, 0x00, 0x00)
PRINT mx+" "+my,100,170
IF BOXCOLL( mx, my, 1, 1, 100, 100, 0, 0)
    PRINT "!!! COLLISION !!!", 100, 150
ENDIF
SHOWSCREEN
WEND
END


Wenn ich statt beim mx, beim 100/100-Rechteck bei Boxcoll 1,1 eingebe, checkt er zusaetzlich zu dem Rechteck noch 1 Pixel (rechts/unten) mit (also letzendlich 2 Pixel)

Code (glbasic) Select
WHILE TRUE
MOUSESTATE mx, my, ba, bb
DRAWRECT 100,100,1,1, RGB(0x80, 0xff, 0x00)
DRAWRECT mx,my,1,1, RGB(0xff, 0x00, 0x00)
PRINT mx+" "+my,100,170
IF BOXCOLL( mx, my, 0, 0, 100, 100, 1, 1)
    PRINT "!!! COLLISION !!!", 100, 150
ENDIF
SHOWSCREEN
WEND
END


Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

Kitty Hello

Code (glbasic) Select

   IF BOXCOLL( 0,0, 16, 16, 16, 16, 16, 16)
       PRINT "collide!", 100, 100
   SHOWSCREEN
END
   ENDIF


BUG! Gaaaahhhh!

Schranz0r

Ist aber schon immer so :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Ich mach mal'n Update für V6, OK?

blastar

spitze... daaaaaaaaaaaanke... wann kommst das update? morgen???  :'(

Kitty Hello

muss noch überlegen, weil ich einen anderen Compiler für WIZ verwende. Ich neige fast dazu zu sagen: "Mach Dir solange eine Wrapper-Funktion".
Sorry, aber ich hab' noch einen Fehler im Compiler entdeckt und warte noch auf eine Antwort aus Korea. Ist halt beta :/

blastar

ist schon ok... so schwierig ist es ja nicht das problem zu umgehen... hoffe die neue v6 kommt pünklich und es wäre super wenn die von anfang an stabil ist.. also lasse dir zeit... aber spätestens wenn der wiz in den versand geht brauche ich das ding auf meiner platte! :-)

Kitty Hello

Deal!
Ich bin gerade dabei auf OpenGL|ES umzuschalten - scheint ein Problem mit meinem WIZ zu geben - wir sehen bald weiter.

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard