BlitzMax-Kollision
Übersicht

![]() |
faggieBetreff: BlitzMax-Kollision |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Gibt es eine Funktion, die eine Kollision von einem Bild (pixelgenau) und einem pixel, bzw einem Rechtseck überprüft? Danke für jede Hilfe! |
||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
collideimage bild, x,y,frame,0, writemask,object
a=collidrect x,y,w,h,readmask) if a.length<>0 then print "collision" vllt musst readmask und writemask und null beim ersten vertauschen, sowie im zweiten 0, readmask machen, aba da hilft bestimmt die onlinehilfe |
||
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst du mir bitte den Code erklären? Ich verstehe ihn nicht! | ||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich werds versuchen
blitzmax stellt ein neues kollisionssystem zur verfügung, welches in etwa so funktioniert: es existieren verschiedene layer, di mit einem image zu vergleichen sind, folgener maßen numeriert: 1,2,4,8 usw. auf diesen layer schreibt man mit dem befehl collideimage(bild, x,y frame,0, writemask,"1") das bild bild, und versieht es mit dem string "1", writemask könnte zum beispiel 2 sein, siehe obem dannach willst du überprüfen, ob dein rechteck kollidiert, indem du mit a:object[]=colliderect(x,y,1,1,writemask) überprüfst, ob auf dem layer schon was steht. wenn da was steht, steht im array a vom typ object in diesem fall jetzt der string "1" drin also: if a.length<>0 then print String(a[0]) statt dem string könntest du auch ein typeobject player oder bullet oder bot erstellen, dann könntest du zum beispiel: print Player(a[0]).x machen, das ist das praktische am kollisionssystem, so brauchste keine verschachtelten for eachin schleifen gibt auch ein kollisionstutorial auf englisch, oda auch übersetzt ins deutsche: http://max2dcollision.simongeisseler.ch/ |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es hat ganz oben in diesem Forum so nen Thread den ich vor langer Zeit Mal Sticky gemacht hab.
Öffne ihn, besuch Assaris tutorials und dort die 3 Kollisionstutorials. Das sollte dir sehr helfen im Umgang mit dem neuen Kollisionssystem von BM. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schade, dass es nicht einfacher geht, so wie in BlitzBasic. Ich werde wohl die Image-Image-Kollision und somit meinen "Pixel" einfach als Bild darstellen. Ist in meinen Augen viel einfacher.
Danke euch! |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
???
Lies die Hilfe und die Erklärungen Dann weisst du das es mehr als einen Weg gibt. Es hat wenig sinn wenn du fröhlich drauf los hackst und "rumbastelst" wenn es bereits ne standardmässige lösung dafür gibt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora hat Folgendes geschrieben: ???
Lies die Hilfe und die Erklärungen Dann weisst du das es mehr als einen Weg gibt. Es hat wenig sinn wenn du fröhlich drauf los hackst und "rumbastelst" wenn es bereits ne standardmässige lösung dafür gibt. Tut mir leid, aber ich habe weder die Zeit noch die Lust das alles durchzulesen. Ich habe es nur überflogen und keine bessere Lösung gefunden. Und da es anscheinend nicht sowas wie "ImageRectCollide" gibt, werde ich die Methode nehmen, die ich im letzten Post verdeutlicht habe. Klar weiß ich, dass das wahrscheinlich die schlechteste Methode von allen ist, aber ich kann es eben nicht besser und ich will auch nichts Neues dazulernen. |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn Du weder Zeit noch Lust hast Dich mit der Dokumentation zu beschäftigen, dann denke ich sollten wir auch keine Zeit oder Lust haben Dir derart triviale Dinge zu erklären. Vielleicht solltest Du lieber U-Botte sammeln oder alte Frauen schänden? | ||
Farbfinsternis.tv |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann solltest du zu den alten Blitz Sprachen wechseln.
BM geht davon aus, dass man immerhin die Hilfe benutzt denn es ist definitiv umfangreicher und komplexer. Und nein das ist keine blöde Anmache, aber wenn man selbst mit den recht guten Erklärung hier und dem kompletten Befehl von Goodjee aufgeschrieben nicht damit klar kommt, wäre es wohl sinnvoller das Basic für Einsteiger zu nehmen anstatt das Basic für Fortgeschrittene die auch die entsprechende Einstellung mitbringen müssen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was seid ihr denn so angepisst? ![]() Ich verstehe es eben nicht und damit ist das Thema durch! Sowas unfreundliches aber auch... ![]() |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pfeife: Wer hier Fertiglösungen will bei denen man nicht nachdenken muss, der ist hier falsch. Du willst nicht denken und nicht lernen, somit bist Du hier falsch.
Gehe Legosteine bauen, hier hast Du nichts zu suchen. |
||
Farbfinsternis.tv |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht vergessen: Das hier ist der Beginner-Bereich.
Zwar ist das natürlich kein Freifahrtsschein, dass jeder nach fertigen Lösungen fragen soll. Aber euch beiden wäre es doch sicher viel einfacher gewesen in einen kleinen Hinweis zu geben, wie er den "standardisierten" Lösungsweg in der Hilfe findet, statt ihn "Pfeife" zu nennen. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wurde ihm leider genannt D, mehr als Assaris 3 Kollisions Tutorials in den Sticky zu packen und explizit darauf hinzuweisen kann man nicht machen.
Ist zwar Beginners Corner, aber der von BM, nicht von BlitzBasic. Von Usern des fortgeschrittenen BlitzDialekts darf man immerhin erwarten, dass sie bereit sind die Hilfe zu lesen recht simple Tutorials (Assari) zu lesen, wenn man sie schon explizit darauf aufmerksam macht. Wenn nicht, finde ich haben sie die falsche Sprache gewählt, denn BM verlangt definitiv bedeutend mehr Einsatz und Eigeninitiative als BlitzPlus und Blitz3D. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Farbfinsternis: Ich kann deine Reaktion überhaupt nicht nachvollziehen. Ich weiß zwar nicht wie es bei dir aussieht, aber ich programmiere ausschließlich aus Spaß!
Ich weiß, dass ihr meint, dass ich die falsche Programmiersprache gewählt habe, aber ich habe mich für BMax aus folgenden Gründen entschieden: - Ich lege viel Wert auf Plattformunabhängigkeit - Ich will eine Sprache mit sicherer Zukunft - Ich will eine schnelle, leistungsfähige Sprache Ich hoffe ihr habt Verständnis dafür! |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Gründe die du nennst sind die, die die meisten von uns zu BM geführt haben (neben OOP)
Allerdings zerstörst du dir mit dem "mangelnden Einsatz" leider mindestens deinen eigenen Punkt 3: Zitat: - Ich will eine schnelle, leistungsfähige Sprache denn mit Nutzung der "einfachen" Lösung erhälst du auch eine beträchtlich langsamer Lösung (da für jeden Test der Kollisionslayer beschrieben und danach wieder gelöscht wird) Das kommt so in einem kleinen Testszenario nicht zum tragen, wird aber später ein Problem wenn du 200 Objekte hast. Dann müsstest du dir eine SceneGraph Struktur implementieren die deine Objekte handhabt, damit du weisst womit es überhaupt nen Sinn macht auf Kollision zu prüfen. Viele hier geben die Tipps und Erklärungen nicht, um damit "cool" dazustehen, sondern weil einige davon die Wand an der man später recht schmerzhaft aufschlägt schon kennen und dir das ersparen wollen soferns mit einfachen Erklärungen möglich ist. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group