Bestimmtes Tile auf Tilemap verschwinden lassen.
Übersicht

![]() |
GearTechDEehemals 'KillerJo96'Betreff: Bestimmtes Tile auf Tilemap verschwinden lassen. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, ich weiß, dass es einen Thread mit dem Namen schon gibt und habe ihn auch schon tausend mal durchgelesen. Jedoch hat mir das nicht wirklich weitergeholfen. Ich habe jetzt langsam verstanden wie ich mit einem Array umgehen kann. Auch weiß ich, wie Types funktionieren. Im den Thread stand drin das ich die Tiles mit einem Type zeichnen soll oder so ähnlich, wie gesagt ich hab das nicht so ganz verstanden. So hab ich das dann auch gemacht, aber sobald ich ein Tile gezeichnet habe, habe ich eine Framerate von ungefär 1 oder so. Also fängt es total an zu hängen.
Deswegen frage ich euch, ob mir hierbei jemand noch mal helfen kann, denn bei einem Array kann man ja nicht so leicht Delete Karte(x,y) oder so machen... ![]() |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht so recht, was das Problem sein soll. Wenn du ein Array hast, kannst du einen Wert darin ganz einfach auf 0 setzen. Wenn das Tileset in Frame 0 Leer ist, war's das auch schon.
Wie sieht denn dein Code aus? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du meinst, ich soll sozusagen einen Leerlauf Frame ins Tileset einbauen, welcher z.B. die Farbe 255,0,255 hat und das rausschneiden, und dann ein würde der Hintergrund gezeichnet werden weil das Tile transparent ist. Nun gut, aber wie kann man das ganze dann bei 3D lösen? | ||
Mit freundlichen Grüßen: GearTechDE |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bitte erkläre, was genau du machst, raten zu müssen macht es nicht einfacher, dir zu helfen.
Du hast keine 2D Tilemap sondern verteilst Cubes...? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte zuerst einen 2D Tilemap editor machen und dann Minecraft in 3D einfach mal den boden wobei ich mit der maus dann schon ein Cube wegmachen möchte. Bei dem map editor möchte ich mit rechter maustaste das tile entfernen | ||
Mit freundlichen Grüßen: GearTechDE |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese wage Beschreibung hilft mir nicht weiter. Befindet sich das Problem jetzt in 2D oder 3D? Wo befinden wir uns, was funktioniert nicht?
Code (ausschnittsweise) würde womöglich helfen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, sorry, ich war wohl etwas zu schnell.
Es handelt sich im Prinzip um beides (2d und 3d). jedoch will ich erstmal in 2d schaffen. Mein ansatzcode in 2D: BlitzBasic: [AUSKLAPPEN]
ich möchte also durch rechtsklick das tile löschen was gerade mit der maus überlappt wird. aber das zeichnen dauert schon sooooo ewig und das, weil das type durchgelaufen wird, ist das normal? Edit: BlitzBasic: [AUSKLAPPEN]
so funzt es jetz aber jetz arbeite ich ja nich mehr mit nem array, und das speichern wird schwerer. |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem scheint mir zu sein, dass du Arrays und Types noch nicht vollständig verstanden hast.
Du erstellst ein Array: Code: [AUSKLAPPEN] Dim karte(mapx,mapy)
Das kann integer beinhalten, aber benutzen tust du es nicht. Stattdessen erzeugst du mapx mal mapy tile-Objekte. Was du tun wolltest war vielleicht: Code: [AUSKLAPPEN] Dim karte.tile(mapx,mapy)
karte(x,y) = New tile karte(x,y)\tile = 0 karte(x,y)\x = x karte(x,y)\y = y Es ist kein Wunder, wenn die drei Schleifen ewig brauchen, rechne mal nach, wie oft da durchiteriert wird! Ist im Beginners-Corner besser aufgehoben, daher: ~VERSCHOBEN~ |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
- Zuletzt bearbeitet von Xeres am Sa, Jun 16, 2012 12:23, insgesamt einmal bearbeitet
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich wusste garnicht das man sie so miteinandern kombinieren kann. Danke für den Tipp. | ||
Mit freundlichen Grüßen: GearTechDE |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutze hier kein For...Each Type Konstrukt. Ein Array ist perfekt für eine Tilemap. Man kann die Koordinaten berechnen, um nur den Bildausschnitt zu verarbeiten und direkt jeden Eintrag bearbeiten.
Bei Types muss man ggf. alle Objekte überprüfen bevor man etwas mit ihnen anstellt, dass ist nur in Sonderfällen Wünschenswert. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Puh, zugegeben, ich bin nicht ganz in blitzbasic drinne, aber etwas lässt mich doch stutzen:
Wenn ichs richtig verstanden habe, kann man Types in BB durchlaufen, wie in blitzmax eine for-eachin schleife. Dh, mir erscheint der grund für die verschachtelung nicht ganz: For x to mapx for y to mapy for jeden-type-eintrag ? Vorher erstellst du für jedes X,Y einen type und legst einen wert in Karte ab. Also wäre es nur praktisch, wenn du ENTWEDER x,y abklapperst ODER das Type - könnte dein "aber das zeichnen dauert schon sooooo ewig" erklären ![]() Aber wie gesagt, ich bin nicht ganz auf der höhe was bb angeht. Um meinen gedankenganz vorzurechnen: mapX = 24. mapY = 16 Macht: 384 blöcke (ergo auch 384 type einträge) Dh: 384x werden 384 typeinträge durchlaufen, was einem wert von 147456 entspricht. Da ich keine ahnung habe, wie man in bb koordinaten mit typeeinträgen verknüpfen kann, rate ich einfach mal dazu, die Koordinate im Tileset mit ins Type zu legen und die verschachtelung aus der hautpschleife rauszunehmen. Dazu kommt, das ich ein strikter fan davon bin, update und zeichnen zu trennen. Da ich hier allerdings auch nicht so recht weiß, wie das gehen soll, mal eine kleine idee zur änderung: BlitzBasic: [AUSKLAPPEN]
So sollte es, von der logik her, klappen. Schöner wäre es allerdings, direkt über das Dim feld arbeiten zu können, aber da müssen die profis her. Mit dem Dim feld hättest du auch die möglichkeit, die aufrufe extrem zu veringern, wenn du mit einer größeren map arbeitest, du über die bildschirmbreiten hinausgeht. |
||
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jahh, Danke ich habe es jetzt bei mir eingebaut. Es funktioniert so wie ich es haben wollte.
Danke ![]() |
||
Mit freundlichen Grüßen: GearTechDE |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group