Bestimmtes Tile auf Tilemap verschwinden lassen?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Belion

Betreff: Bestimmtes Tile auf Tilemap verschwinden lassen?

BeitragSo, Nov 28, 2010 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu, wie kann ich denn ein bestimmtes Tile in meinem Tileset verschwinden lassen?

So in die Richtung von Boulderdash.. wenn der Spieler auf zbs Tile 1 kommt soll dieses entfernt werden.

-- Code entfernt --

Nun ich hab bereits überlegt sowie probiert, wie ich das ganze anstellen soll, aber ganz klar ist es mir nicht... mag mir jemand Klarheit bringen?

Und nein, ich bin nicht schreibfaul und will mir den ganzen code vorschreiben lassen und mich bequem zurücklegen..... Rolling Eyes

Danke falls mir da jemand helfen kann Wink
  • Zuletzt bearbeitet von Belion am Mo, Nov 29, 2010 15:43, insgesamt einmal bearbeitet

DaysShadow

BeitragSo, Nov 28, 2010 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würd wahrscheinlich ein Type TTile anlegen wenn ich sowas machen würde, aber bei würde wohl auch erstmal ein Array von Breite*Höhe an Ints reichen in denen gespeichert ist ob das Tile gezeichnet werden soll.

Eine Abfrage vor deinem DrawImage tile...usw. würde dann reichen.

BlitzMax: [AUSKLAPPEN]
    ;Map zeichnen 
For y=0 To map_height
For x=0 To map_width
If( drawTile[ x, y ] ) DrawImage tileset,x*32-map_scroll_x,y*32-map_scroll_y,map(x,y)
Next
Next


So in etwa...

BladeRunner

Moderator

BeitragSo, Nov 28, 2010 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.

ist augenscheinlich BB, daher verschoben.
Wenn Du 1er entfernen willst musst Du auf 1er prüfen. Falls Du den restlichen, hübsch kommentierten Code hier selbst geschrieben hast solltest Du wissen wie man prüft ob an der aktuellen Spielerposition die Map 1 ist und wie man diese Position mit einer 0 oder sonstwas überschreibt, denn der Code den Du hier postest ist wesentlich 'komplexer' als das was Du machen willst.
Daher riecht das hier nach copy&paste ohne Verständnis des Inhalts.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Belion

BeitragMo, Nov 29, 2010 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Nundenn, das ganze wurde gemeistert Wink.
Danke soweit.

Und wenns dir nach Copy & Paste riecht, nehm ich zack einfach mal den Code raus und es riecht genauso wie vorher... Rolling Eyes das man auf einer Seite direkt angeflamet wird ist schon blöd an diesem Forum...

Nunja,.. fallende Steine daran setz ich mich jetzt.. wenn ichs denn hinbekommen sollt Wink.

BladeRunner

Moderator

BeitragMo, Nov 29, 2010 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist kein flame, es ist das äussern von offensichtlichem.
Es hat niemand was dagegen dass Du fragst wenn Du etwas nicht weisst. Aber mal im Ernst: Du fragst etwas was im Schwierigkeitsbereich 'sehr einfach' liegt (was ja auch in Ordnung geht, ist hier ja der Beginners (auch wenn e ein wenig traurig ist das ich es erstmal in den passenden Ecken verschieben muss, das sollte beim Fragen auch mit drinne sein).) Dazu passt allerdings der Code nicht den Du mitgibst - sauber kommentiert, mit Anmerkungen wie der Code zu handhaben ist. Dieses Stück Code war deutlich schwieriger zu erstellen. Verständnis dieses Codes vorausgesetzt würde sich deine Ursprungsfrage in Luft auflösen. Den Code gibst Du mit nachdem ich Dich in einem anderen Thread drum gebeten habe erst selbst zu probieren und zu arbeiten und dann erst zu fragen, denn nur durch eigenes Erarbeiten wirst Du auch was lernen.
Ergo: Du setzt mir den Code von jemand anderem als 'Beweis' für deine Versuche vor und fragst dann etwas was Du nicht fragen müsstest wenn Du den Code verstehen würdest den Du mitgibst.
Und da werd ich echt traurig, denn das vergeudet die Zeit der Leute hier. Wir haben keinen Ich-muß-helfen-Eid geleistet und sind hier alle freiwillig tätig. Ich helfe gern, aber ich erwarte auch das der Hilfesuchende selbst seinen Teil beisteuert. Und grade das vermisse ich bei Dir. Wenn Du nicht selbst nach Lösungen suchen kannst oder willst wäre ein anderes Hobby vielleicht angenehmer für Dich, denn das ist es was programmieren zu einem guten Teil ausmacht.
Dazu gehört auch selber zu probieren bis der Arzt kommt, Fehler zu machen und seine Programme mal langsam im Debugger durchlaufen zu lassen um ihre Arbeitsweise nachzuvollziehen. Das kostet auch Zeit, ebenso wie die Beschaffung der nötigen Informationen.
Und ich (und viele andere hier) werden nicht deine Suchfunktion sein.

Aber egal, ich hab mir hier genug den Mund fusslig geredet.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Belion

BeitragMo, Nov 29, 2010 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin ganz ehrlich, stehe dazu, du hast dich wahrhaft fusselig geschrieben.

Niemand ist verpflichtet mir zu helfen.
Und wenn er es tut - dann nehme ich das Dankend an, wo ist das Problem?

Und wenn jemand nicht zurecht kommt, wie ich um Hilfe bitte, oder gar worum/womit, der sollte sich lieber fernhalten und andere mit ihren Ratschlägen beglücken.

Mei nwort dazu.

Leuchtet's ein?

Ich will nicht weiter vom thema abschweifen,.. wobei.. deine Sache, ob du Diskussieren magst oder nicht, stehe gerne dafür offen.

BladeRunner

Moderator

BeitragMo, Nov 29, 2010 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wirst nur auf Dauer mit dieser Art Hilfe zu erbitten und auch dieser Methode an dein Hobby heranzutreten mit deinem Hobby nicht viel Freude haben.
Ich schreib dir den ganzen Sermon nicht um dich herunterzumachen. Ich will Dir auch damit helfen. Deine Sache was Du draus machst, für mich ist das Thema erledigt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Belion

BeitragMo, Nov 29, 2010 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ob ich an Hilfe komme, oder nicht, das seh ich ja am Ende.
Noch sehe ich selbst keine Probleme an meiner Art.
Nundenn, ich will jetzt nicht noch weiter vom Thema abschweifen.
Freude?, hab ich genug.
Danke der Nachfrage.

BladeRunner

Moderator

BeitragMo, Nov 29, 2010 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut. ich werte das als keine Hilfestellungen mehr benötigt. So sei es.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Belion

BeitragMo, Nov 29, 2010 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Von dir oder der Allgemeinheit Wink?.

Dass ich keine mehr benötige ist nicht gesagt, zumindest vorraussichtlich.

Belion

BeitragMo, Nov 29, 2010 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, die Vorraussicht ist dennoch eingetreten, uned evtl. wäre jemand bereit mir zu helfen.
Ich möchte in meinem Code, ein Tile nach unten setzen, wenn unter ihm nichts gezeichnet ist.
Ergo, Stein fällt.

Meine Versuche bisher:

Code: [AUSKLAPPEN]
       If map(player_x,player_y) = 1
                For X=0 To 26
                        For Y=0 To 24
                                If map(x,y) = 0
                                        map(player_x,player_y) = 1
                                End If
                        Next
                Next
        End If
       
        For X=0 To 26
                For Y=0 To 24
                        If map(x,y) = 1
                                If map(x,y-1) =5
                                        map(x,y-1) = 1
                                        map(x,y) = 5
                                End If
                        End If
                Next
        Next


Wäre mir jemand behilflich, mir mein Fehler zu erklären? bekomme ein Array index out of bounds

Xeres

Moderator

BeitragMo, Nov 29, 2010 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Du versuchst auf einen Index zu zu greifen, der nicht existiert
Code: [AUSKLAPPEN]
y-1
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Raiden93

BeitragMo, Nov 29, 2010 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
den code habe ich geschrieben und bei mir gehts !

Belion

BeitragMo, Nov 29, 2010 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
So siehts aus, aber irgendwie haben wir ein Problem im gesamten.

Xeres

Moderator

BeitragMo, Nov 29, 2010 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hängt davon ab, ob du im Debug oder Release Modus kompilierst.
Code: [AUSKLAPPEN]
Dim test(1)
Print test(-1)
WaitKey
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Raiden93

BeitragMo, Nov 29, 2010 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
das -1 ist ein target! es wählt den stein über dem tile5!

EDIT:
Code: [AUSKLAPPEN]
       If map(player_x,player_y) = 1
                For X=0 To 26
                        For Y=0 To 24
                                If map(x,y) = 1
                                        map(player_x,player_y) = 4
                                End If
                        Next
                Next
        End If
       
        For X=0 To 26
                For Y=0 To 24
                        If map(x,y) = 4
                                If map(x,y-1) =3
                                        map(x,y-1) = 4
                                        map(x,y) = 3
                                End If
                        End If
                Next
        Next




;SO MÜSSTE ES GEHEN ALSO wenn es so geordnet ist:
;Tile 0 = Wand
;Tile 1 = Erde ;Auf der erde läufst du biste drauf wird es zu luft
;Tile 2 = Diamant
;Tile 3 = Stein;Fällt wenn unter dem stein luft ist
;Tile 4 = Luft ;Entsteht wen du auf erde kommst

 

undefined

BeitragMo, Nov 29, 2010 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Und sobald in Deiner ersten Reihe ein "Luft" Tile auftaucht, kackt Dir Dein Programm ab, weil Du mit Deiner Prüfung in der ersten Reihe beginnst (y = 0) und dann nachguckst, ob darüber (y = -1) ein "Stein" liegt. Echt sauber. Rolling Eyes

Raiden93

BeitragMo, Nov 29, 2010 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
nein es kakt dann nicht ab bin ich der einzige der den Code checkt 0o? und bei Belion geht es jetzt auch also wer hat noch was an meinem Code aus zu setzen?

BladeRunner

Moderator

BeitragMo, Nov 29, 2010 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Nana, wer wird denn hier unhöflich werden? Und wenn es bei euch beiden ja geht: perfekt, dann ist ja allen geholfen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Raiden93

BeitragMo, Nov 29, 2010 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ja und BéLioN frag schön weiter.Du hast ja genug Sesamstraße gesehen Razz
Wer nicht Fragt bleibt dumm! Very Happy

DaysShadow:
Belion hat was bei dir falsch verstanden oder so er hat ein Nichts(Schwarzes Loch erschaffen) Razz

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group