Dim-Felder
Übersicht

Gehe zu Seite Zurück 1, 2, 3 Weiter
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also entscheide Dich: Types oder Array?
@sprime: Array ist viel leichter zu verstehen. Vor allem war das auch schon Dein erster Gedanke. Das liegt Dir doch viel mehr, oder? ich werd mich jetzt darum kümmern, frag mich Löcher in den Bauch. Am Ende hast Du DEIN Bananespiel und DEINEN Editor! Stell mal den ganzen Code hier rein. Wird ja wohl nicht mehr als 200 Zeilen sein? Dann braucht der Hilfegeber nicht immer Details anfragen. Am besten stellste den Code als EDIT in den ersten Beitrag von Dir und aktualisierst ihn täglich. Dein Spielfeld nennen wir nun nicht Bananen, sondern Feld Dim Feld(38,15) Die Bananen nennen wir Banane Banane=1 Willst Du nun eine Banane bei X,y, ins Feld werfen, dann Feld(X,Y)=Banane, willst Du sie wieder entfernen, dann Feld(X,Y)=0, schon isse weg. Das Zeichnen geht so: Code: [AUSKLAPPEN] For X=0 to 38
For Y= 0 to 15 If Feld(X,Y)=Banane Then da malste! .... Die Bildschirm-Koordinaten muss man beim Zeichnen dann halt *32 nehmen Diese Zeichenroutine ist sowohl für das Spiel als auch für den Editor brauchbar, also kommst sie in eine Function Das ist fast genau das, was Du selber schon geschrieben oder gedacht hast. Schreib es mal und stell es rein. Is völlig egal ob es läuft und auch, ob es schon malt. Also los! @alle: Ihr solltet die Hilfesuchenden schon da abholen, wo Sie stehen und nicht immer gleich drei weitere Baustellen aufmachen. Hier haben wir einen typischen Fall: Der Junge macht seit 28.November da dran rum und is noch kein Stück weiter. Vor allem hat ihm noch keiner seine Eingangs gestellte Frage beantwortet. |
||
![]() |
JamaginBetreff: alles banane |
![]() Antworten mit Zitat ![]() |
---|---|---|
@midimaster
Ohne Code ist es schwierig etwas beizusteuern...! Aber du hast Recht! lg. Jamagin ![]() |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@jamagin
Ich meinte auch vorhin nicht dich, sondern die Antworten vom 28.11. Manche meinen es bestimmt lieb, aber bringen oft noch mehr Verwirrung in die Sache. Oft glaubt der Fragende, dass er mit seinem Lösungsweg dann völlig falsch lag. Dabei kann man alles so oder so machen. Laufen wird es immer. Sprime kennt sich aus mit Arrays also helfen wir ihm mit Arrays. |
||
![]() |
JamaginBetreff: dim |
![]() Antworten mit Zitat ![]() |
---|---|---|
@midimaster
danke! Jep, bin dabei!! --> Wo bleibt nun der Code? *gg* lg. Jamagin ![]() |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sein Code vom Anfang, also das hier:
Code: [AUSKLAPPEN] For x = 0 To 37
For y = 1 To 15 If banane(x,y)>=1 Then DrawImage tileset,x*32,y*32,banane(x,y) EndIf If banane((Player_pos_x +16) /32,(Player_pos_y +32) /32)>=1 Or banane((Player_pos_x +16) /32,Player_pos_y /32)>=1 Then banane(x,y) = -1 EndIf Next Next sieht schon richtig aus. Das Problem war ja, dass die Banane nicht verschwunden ist, also das Feld nicht auf -1 gesetzt wird. Jetzt wäre es ganz praktisch, wenn man soviel vom Code sehen könnte, um herauszufinden, was an der Abfrage nicht stimmt. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
JamaginBetreff: banane |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum so umständlich?? Im Grunde reicht ja eine einfache If ImagesCollide (blabla...) in dieser Function von ihm!
Tritt eine Berührung zwischen Spieler und Banane auf dann lösche Banane - fertig! lg. Jamagin ![]() |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn schon RectsCollide![]() ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
JamaginBetreff: imagescollide |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Tankbuster
ImagesCollide ist verbuggt?? Wieso das denn? Nicht wenn die Parameter richtig gesetzt sind! Ich habe nie Probleme mit Imagescollide und ImagesRectOverlap oder wie der Befehl heißt bei einer Banane? Na ich weiß nicht ob das dann gut ist, Rectsoverlap und so weiter kann man ja bei Rechteckigen Objekten sehr gut anwenden aber bei gekrümmten? Natürlich jeder wie er mag, wenn jemand Wert auf Pixelgenau legt dann schon ImageCollide... lg. Jamagin ![]() |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist so eines der ersten Themen dazu:
https://www.blitzforum.de/foru...php?t=9105 Andere find ich grad garnicht. Fakt ist auf jedenfall, dass der Befehl ziemlich oft ohne codetechnischen-Grund zum Mav führt. Sowas wie... Code: [AUSKLAPPEN] [...] While Not Keydown(1) If ImagesCollide(Schuss,x,y,0,Spieler,sx,sy,0) Then blub.. Waittimer(timer) Flip 0 Wend ...funktioniert zwar eine Zeit lang, aber irgendwann macht es Bam, und es kommt ein Mav. Bei manchen Rechnern funktioniert das garnicht. Der Grund dafür ist wahrscheinlich die Tatsache, dass moderne Treiber sowas nichtmehr sonderlich unterstützen. |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...hp?t=27025
Es liegt an den Grafikkartentreibern. Langsam aber sicher scheint die Unterstützung für DX7 und DirectDraw zu schwinden... mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Tankbuster
Ich würde sagen, ist aber nur Annahme den Waittimer(Wert) nach While und Flip 0 durch Flip ersetzen! Begründung: Ich habe es bei meinem Programm ausprobiert mit Flip 0 und da hatte ich mehr Ruckartige Bewegungen als mit Flip, denn bei Flip 0 wird das Bild sofort aktualisiert und Flip aktualisiert erst dann wenn das Bild im Backpuffer komplett gezeichnet ist, erst dann wird geflippt! Und die MAV könnte durchaus mit dem Waittimer zusammenhängen oder auch mit dem Flip 0, ersetze Flip 0 mit Flip und schreib dein Waittimer nach While, du wirst sehen, die Fehlermeldung bleibt aus. Sie kann aber auch auftreten, wenn es das Objekt gar nicht mehr gibt, vielleicht hat nur ein CLS gefehlt, d.h, das Objekt war zwar noch sichtbar, aber es wurde keine Bildschirmsäuberung durchgeführt! Was auch immer, man sollte nicht gleich ausweichen, wenn ein Befehl Probleme verursacht, sondern den Fehler suchen. Auch darin besteht programmieren...! Soll aber keine Kritik an Dich sein!! lg. Jamagin ![]() |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Sie kann aber auch auftreten, wenn es das Objekt gar nicht mehr gibt
Die Bilder existieren solange im Speicher bis sie mit FreeImage ![]() ![]() Genauso wie du RectsOverlap ![]() ![]() Es ist egal ob irgendwas auf dem Back- oder FrontBuffer gezeichnet wurde. |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man soll also Treiberfehler beseitigen... ![]() Und ich rate dir, die Beschreibung von Flip ![]() Flip ![]() Mit "noch nicht fertig gezeichnet" hat das gar nichts zu tun! Es heißt nicht, dass ImagesCollide ![]() Edit: Ich hatte mit meiner alten Grafikkarte z.B. keine Probleme gehabt. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@mpmxyz
Treiberfehler beseitigen, na ich weiß nicht ob das geht!! Warum soll ich mir Flip nochmals durchlesen, ich habe es eh beschrieben. Nur ich werde mein Programm nicht umstellen, wenn eh alles flüssig geht! Habe ja versucht eine Ausblendroutine mit Flip 0, das hat dann aber nicht schön ausgesehen, da war die Blendroutine nicht mal zu Ende und schon wurde umgeschaltet. Nee, das ist nicht fair! ![]() Und wenn einige Probleme mit MAV haben, ich kann das leider nicht beurteilen. Ich hatte eben bis jetzt keine damit und wenn eine auftritt, ja da war gestern (21.12.09) was von einem User hier, der hatte ne MAV bei Imagescollide aber auch nur, weil er es falsch angewendet hatte. Ich habe dann seinen Code komplett erneuert und es lief ohne MAV!! lg. Jamagin ![]() |
||
Bevor du etwas neues beginnst, erledige das alte |
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
[quote="Alfadur"]sprime hat Folgendes geschrieben: Wenn an der Stelle an der der Spieler ist ((Player_pos_x +16) /32,(Player_pos_y +32) /32) eine Banane ist, dann solltest du auch das Array an der Stelle an der der Spieler ist auf 0 oder -1 setzen. Und nicht an relativ zufälligen X/Y Werten. und wie mach ich das ? |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Sprime
na wie geht es voran mit dem Projekt? stell mal bitte den aktuellen Code rein, dann die aktuelle Frage, denn irgendwie ist ja nun schon "ein wenig" Zeit vergangen seit deinem letzen Mal hier... |
||
sprimeBetreff: .. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab seitdem nicht mehr programmiert, also hat sich nix verändert xD
brauch man meinen code um zu sagen wie man das umsetzt ?? weil ich denke der is sehr lang unübersichtlich für leute die den nicht geschrieben haben :S ^^ |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich denke, es geht um diese Bananengeschichte?
Hast du immer noch Probleme, dass die Bananen nicht verschwinden? |
||
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja genau.. mein problem ist ja nur, dass ich nicht weiß wie ich dem programm sage das die banane an der ich grad bin verschwunden muss.. also wie ich sage welche banane verschindet.. und halt mit dims | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast doch dein Dim. Und Du hast die Position des Spielers. aus der Spielerposition kannst Du auf die Banane schliessen.
Das ist nur ein wenig Mathe. |
||
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 |
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group