Data

Übersicht BlitzBasic Allgemein

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen

Midimaster

BeitragMi, Jan 13, 2010 0:47
Antworten mit Zitat
Benutzer-Profile anzeigen
kannst du mir das aktuelle DATA-Feld posten?
 

NtotheS

BeitragMi, Jan 13, 2010 0:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 3, 4, 5, 6, 7, 8, 0, 0
Data 0, 0, 10,11,12,13,14, 15, 0, 0, 0, 0, 0, 0
Data 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 14, 15, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

Midimaster

BeitragMi, Jan 13, 2010 1:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, du hast recht, hinter dem 10.Element jeder Zeile steht ja jetzt kein Komma mehr. Ich hatte noch das Beispiel mit 14 Elementen auf einer Zeile.

Dehalb jetzt diese Änderung in der innneren For-Schleife der Funktion:

BlitzBasic: [AUSKLAPPEN]
         For x = 0 To 9
da = Instr(Zeile, ",")
;-------------neu ab hier -------
If da>0 Then
Teil = Trim(Left(Zeile,da-1))
Zeile = Mid(Zeile, da+1,-1)
Else
Teil= Zeile
EndIf
; -----------ende der Änderung
Map(x,y)=Teil
Next
 

NtotheS

Betreff: :D

BeitragMi, Jan 13, 2010 2:42
Antworten mit Zitat
Benutzer-Profile anzeigen
So, geschlagene Stunden später, habe ich die Kollisionsabfrage, n char + steuerung und noch mehr häuser einfügen können Very Happy und sogar alles verstanden Very Happy

Das einzige wo ich noch ein problem habe (zur zeit) ist es den Char, langsamer zu kriegen...er rast nämlich über die oberfläche wie ein irrer :D77




JETZT REICHTS:

Der scheiß pc ist abgestürtzt...alles wieder weg....


Code: [AUSKLAPPEN]
Graphics 350,350,16,2
SetBuffer BackBuffer()

Global tileset=LoadAnimImage("tileset.bmp",32,32,0,40)
Global char = LoadAnimImage("char.bmp", 32, 32, 0, 1)


Global ppx = 4*32  ;X-Position des Charackters
Global ppy = 7*32  ;Y-Position des Charackters
Global py = 7      ;Kollisions X-Position des Charackters
Global px = 10     ;Kollisions Y-Position des Charackters
Global scrolly     ;Die Variable für die ScrollY-Position
Global scrollx


 






Dim map(15,15)

Data 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
Data 1, 0, 3, 4, 5, 6, 0, 0, 0, 0
Data 1, 0, 10,11,12,13,0, 0, 0, 0, 0, 0, 0, 0
Data 1, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 1, 0, 14, 15, 0, 0, 0, 0, 0, 0
Data 1, 0, 14, 15, 0, 0, 0, 0, 0, 0
Data 1, 0, 14, 15, 0, 0, 0, 0, 0, 0
Data 1, 0, 14, 15, 0, 0, 0, 0, 0, 0
Data 1, 0, 14, 15, 0, 0, 0, 0, 0, 0
Data 1, 0, 21, 22, 0, 0, 0, 0, 0, 0
Data 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0
Data 1, 0, 0, 0, 0, 0, 0, 0, 0, 1
Data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data 2, 2, 2, 2, 2, 2, 2, 2, 2, 2

For y = 0 To 10
For x = 0 To 10

Read map(x,y)

Next
Next


Repeat
LiesFeldNeuEin()
Cls
If KeyDown(1) Then End

For y = 0 To 50
For x = 0 To 50
DrawImage tileset,x*8,y*5,map(x,y)
Next
Next

If KeyDown(208) Then
If map(px,py+1) < 2 Then
py = py + 1
move = 1
End If
End If

If KeyDown(200) Then
If map(px,py-1) < 2 Then
py = py - 1
move = 1
End If
End If

If KeyDown(203) Then
If map(px-1,py) < 2 Then
px = px - 1
move = 1
End If
End If

If KeyDown(205) Then
If map(px+1,py) < 2 Then
px = px + 1
move = 1
End If
End If



If move = 1 Then x = px * 32: y = py * 32:DrawImage char,x,y


Flip
Forever



Function LiesFeldNeuEin()
If MouseHit(1)
Local Datei%, Zeile$, Da%, Teil$
Datei=ReadFile("Map.bb")
For y = 0 To 10
Zeile=ReadLine(Datei)
Zeile = Mid(Zeile,6,-1)
For x = 0 To 12
da = Instr(Zeile, ",")
If da>0 Then
Teil = Trim(Left(Zeile,da-1))
Zeile = Mid(Zeile, da+1,-1)
Else
Teil= Zeile
EndIf
Map(x,y)=Teil
Next
Next
EndIf
End Function



Nun kommt schon wieder de gleiche müll: Er kann schon wieder das fenster nicht anzeigen....


DrawImage tileset,x*8,y*5,map(x,y)


Darauf weißt er mich hin....ich habe bis 100 alle zahlen durch....und es geht einfach nicht :C



EDIT: So es ist nun 5 Uhr, ich kann einfach nicht aufhören nach den fehlern zu suchen Very Happy
Inszwischen habe ich es behoben und auch endlich verstehen können. Very Happy
 

da_poller

BeitragMi, Jan 13, 2010 11:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Abenteurer036 hat Folgendes geschrieben:

...Zuerst definierst du ein Dimfeld:
Code: [AUSKLAPPEN]
Dim variable(2,2)

Dabei ist völlig egal wie du die Variable nennst. Wichtig: es wird immer von 0 abgezählt also mit 2 definierst du praktisch drei Felder ---> 0,1,2
wenn du ihm die dim schon so ausführlich erklärst, dann richtig. Dim(2,2) erstellt in jeder dimension 2 und nicht 3 felder(0,1). Daraus lese ich im weiteren verlauf des threads einige folge fehler. Schau das mal durch...

Midimaster

BeitragMi, Jan 13, 2010 11:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, Abenteurer036 wollte unbedingt das Feld so korrekt wie möglich definieren und hat deshalb NtotheS ganz schön durcheinandergebracht.

Er hat ja recht, es gibt bei Arrays auch immer das 0-Feld. Aber muss ich das einem Anfänger erzählen? Die sind echt froh, wenn sie das mit dem 1-ten Element verstanden haben. Aber ein 0-tes Element überfordert sie dann noch. Also, zunächst nur die halbe Wahrheit verkünden! Ich plädiere immer dafür, den Anfängern zu erzählen:

1.
Mach dein DIM-Feld 1 größer als du es brauchst:
BlitzBasic: [AUSKLAPPEN]
Dim Feld(6,6)


2.
Nutze die Felder zunächst so:
BlitzBasic: [AUSKLAPPEN]
For I=1 To 5
For J=1 To 5
Print Feld(i,j)
Next
Next


Da bringt man ihm nichts wirklich "Falsches" bei und bei einem Wechsel zu BMax stimmt's auch noch.

Anmerkung BB und B3D erlauben wirklich nach einen...
BlitzBasic: [AUSKLAPPEN]
Dim Feld(2,2)
...ein..BlitzBasic: [AUSKLAPPEN]
Print Feld(2,2)


Mach mit: "System der halben Wahrheiten" für Anfänger!
 

da_poller

BeitragMi, Jan 13, 2010 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Midimaster: dein engagement hier steht außer frage, nur finde ich dass anfänger von anfang an die dinge richtig lernen sollten und auch verstehen. Ich finde es wahnsinn Wie du den anfängern hier hilfst und schritt für schritt alles zeigst. Aber ich bin der meinung, wer alles vorgekaut bekommt lernt nur wenig dabei. Wenn ich etwas lernen wollte, hab ich versucht was zu finden und mir daraus was zu basteln. Wenn dass nicht klappte dann kann man fragen. Nur wenn ich mir den thread hier zb mal durchlese.. Da frag ich mich schon ob du ihm hilfst, oder ob er der designer ist und du seine dinge umsetzt bzw ihm korrigierst Wie einen aufsatz. Versteh das bitte nicht als krittik, sondern als frage bzw denkanstoß. Wer sich infos für programmier sachen nicht zum großen teil selbst erarbeiten kann ist meiner meinung beim falschen hobby gelandet oder einfach noch zu jung für. So. Sorry für den ot.

Midimaster

BeitragMi, Jan 13, 2010 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
@da_poller,

ich hab mich eigentlich die ganze Zeit aus dem Thread hier rausgehalten und nur einmal gemeldet mit dem Hinweis, er soll das Array-Tutorial von mir durcharbeiten. Was meinst Du? Meinst Du vielleicht "Abenteurer036"?

Mein zweiter Post von heute Nacht, sollte eigentlich nur ein kleines Geschenk sein, weil er geschrieben hatte, dass er jetzt schon endlos mit dem Erstellen eines ersten Levels beschäftigt ist. Und da ich da sowieso ein Tutorial-Kapitel darüber schreiben wollte, hab ich's gleich an ihm ausprobiert.

Zum Rest der Kommunikation (3 Posts) kam es eigentlich nur deshalb, weil ich einfach zu blöd war, diese Funktion gleich fehlerfrei zu schreiben. Da hat aber eher er mit geholfen....

Deine Meinung über die Art, wie Anfänger zu Erkenntnissen kommen, teile ich nicht! Das reine Aulisten der Befehle erklärt nicht, was in Kombinationen aus diesen Befehlen möglich ist. Und es zeigt auch nicht auf wie ein bestimmtes Problem gelöst werden kann.


Ich arbeite mich gerade in Blender ein, und ich sag Dir ganz erhrlich, alle Bücher darüber sind so ein Bockmist....Da wird auch immer jeder Befehl bis ins kleinste Detail durcherklärt ohne konkreten Bezug zu einer Aufgabe. Da werden Menüpunkte bis ins letzte Detail vorgestellt, Parameter erklärt von denen ich noch nicht einmal verstehe, wozu sie gut sind, auch wenn er gerade darüber schreibt. Erst Tutorials a la "So machst Du eine Cola-Dose" zeigen mir, dem Anfänger, wozu jeder Befehl zu gebrauchen ist.

Hier im Forum schildern Anfänger immer wieder die gleichen Probleme. Warum dann nicht mal ein Tutorial anbieten, das dieses Problem in seiner Breite aufzeigt und "durchdekliniert"?

Bist Du wirklich der Meinung, man hilft, wenn man jemandem schreibt: "Es hätte Wert#" statt "Wert" heißen müssen. Float!!!"

Bekommt er nur diesen Satz, ändert er es und nickt es ab, aber versteht nicht warum!

Sorry, aber dieser Fragende braucht jetzt auch einen Text, der genau auf die Unterschiede der VariablenTypen hinweist und Einsatzgebiete aufzeigt. Und genau da zielen meine Tutorials drauf ab. Ich will einfach nicht immer wieder in Posts in wenigen Sätzen etwas erläutern (Zu viel Arbeit für mich und doch zu wenig Wissen für ihn) Hier will ich dann auf das Tutorial verweisen, wo er genau das in aller Tiefe nachlesen kann. Erkenntnis!

Wenn Du nicht von den Tutorials überzeugt bist, brauchst Du sie ja einfach nicht zu empfehlen. Ich jedenfalls plane, Links zu ihnen bei Fragenden öfter einzusetzen, wenn das Tutorial zufällig wie die Faust aufs Auge passt.


ps.

Kritik ist übrigens weiterhin gerne und jederzeit erwünscht! Man muss mich auch nicht mit Wattebäuschchen attackieren. Es gibt sogar einen eigenen Kritik-Thread über mich: https://www.blitzforum.de/foru...highlight= Dort ist jede Kritik immer besser aufgehoben als in den Thread eines Fragenden.
  • Zuletzt bearbeitet von Midimaster am Mi, Jan 13, 2010 14:32, insgesamt einmal bearbeitet

Abenteurer036

BeitragMi, Jan 13, 2010 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde auch das man es den Anfängern lieber ausführlich erklären sollte anstatt ihnen ein paar Begriffe an den Kopf zu werfen mit denen sie nichts anfangen können.

@Midimaster: Die Bücher sind sicherlich Bockmist aber mir hat da ein gewisses Videotraining sehr geholfen Wink *Klick*
New Project [4%]
Schinken Maker [100%]

BladeRunner

Moderator

BeitragMi, Jan 13, 2010 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke ihm geht es mehr drum dass Du Arrays ohne das NullFeld erklärst, was eben nicht korrekt ist.
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
 

NtotheS

BeitragMi, Jan 13, 2010 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Morgen euch allen, ich freu mich zu sehen das ihr immer weiter am Ball bleibt, so stehe ich dann bei Ernsthaften Problemen nicht alleine da.

Es sieht vielleicht von außen so aus, als ob ich immer 1zu1 die Codes hier raus koppiert habe, aber ich habe darauß auch was gelernt. Ich hab den Tag mich durch die Codes gesucht und bin von Tutorial zu tutorial gesprungen. Und Nachts habe ich dann alles wieder verloren, was aber wohl das beste war was mir passieren konnte....den ich habe: Dim verstanden, verstanden wo der fehler beim Anzeigen des Bildes war, richtig kappiert was Data eigentlich wirklich ist, ohne auch nur einmal hier hin zu schauen Very Happy Selbst den Code von Midimaster, habe ich alleine hingekriegt, weil ich ja ein ansatz hatte Very Happy Es stimmt wohl, wenn man jemanden hat...der es einem wirklich gut erklärt...dann schaft man es.

Z.b. robs tutorials über rpg, in dem 2,3,4...läuft die figur sehr schnell...ab den 5 läuft sie langsamer...WARUM? Hat er nicht erklärt und ich kann mir den Salat nur leider zu hälfte denken... Deswegen gibt es (für mich) keine tuts die wirklich jede frage beseitigen .D


Nun bin ich dabei die Animierte Figur reinzubringen, auch da gibt es ein Tut von rob, er zeigt es aber nicht richtig an...dennoch werde ich weiter probieren bis mein logisches denken irgendwann mal an die Grenze stößt ;D
Den eigentlich ist das selber rausfinden ja immer noch das beste Very Happy

Midimaster

BeitragMi, Jan 13, 2010 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Arrays ohne Null-Feld zu erklären ist erlaubt. Muss erlaubt sein. Autolenken zu erklären, ohne auf die Pleuelstange einzugehen ist auch sinnvoll.

Verboten wäre, zu behaupten, mit 0-Arrays wäre irgendetwas nicht in Ordnung oder zu behaupten es gäbe sie nicht. Zu bitten, sie wegzulassen oder ähnliches, alle verboten!

Aber nix davon zu erzählen....
Klein-Hansi erfährt doch auch davon, ein neues Brüderchen zu bekommen, ohne gleich jedes Detail erklären zu bekommn.... Kapiert er noch früh genug! Laughing

So isses mit dem Lernen immer! Alles zu seiner Zeit.

(vorsicht: Satire)
Seht Ihr irgendwelche Probleme, wenn man ein Array nur zwischen 1 und x verwendet? In VB gabs Arrays, die standen von 34 bis 68 zur Verfügung, na und? Seht Ihr wirklich ein Problem 1 Element mehr zu definieren als nötig? Na und? Vor 30 Jahrne haben wir gegeizt mit dem Speicher - aber heute? In Zeiten, wo Image-Dateien 1MB groß sind, wollt ihr bei einem Integer-Array mit 100 Elementen ernsthaft 42 Bytes sparen? Und dafür den Anfänger in eine Schaffenskrise stürzen? Null-Element ist jetzt nicht ungbedingt irgnedwas, was es im Laden zu kaufen gibt. Der soll man seine Liste mit 10 Einträgen machen und sich das alles vom 1. bis zum 10. Eintrag ansehen. Das ist dann wie im wahren Leben!

darth

BeitragMi, Jan 13, 2010 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Der Ursprung des Null-Elements des Arrays lässt sich (wahrscheinlich?) am einfachsten in der C/C++ Struktur eines Arrays erklären. Ein Array ist eigentlich "nichts", man hat eine Anfangsadresse und eine Schrittweite. Ich erkläre kurz anhand des folgenden Codes:

Code: [AUSKLAPPEN]
Local A#[10]

A[i]=35


A zeigt auf eine bestimmte Speicherstelle (man kann sich den Speicher am einfachsten als ein Hochhaus vorstellen mit Stockwerken die besetzt oder leer sind. Jedes Stockwerk hat eine Etagennummer, aka Adresse.) ab da sind dann 10 Floatgrössen (32bit) reserviert.
Will man nun auf ein Element zugreifen, dann bedient man sich einfach der ersten Adresse, zählt i mal die Schrittweite (hier Float, also 32bit) dazu und ist bei der gesuchten Adresse, kann den Wert auslesen und damit arbeiten.
Will man das erste Element haben, dann muss man 0 mal die Schrittweite dazurechnen, weil man die Kopfadresse will -> und daraus entsteht der Arrayeintrag A[0].

Aus diesem Grund (und weil Arrays eigentlich grundsätzlich so aufgebaut sind) bin ich der Meinung, dass man Arrays mit dem 0 Element erklären sollte - es macht im Prinzip nichts komplizierter als vorher, aber es macht den Umstieg zum Verständnis der Speicherverwaltung enorm einfacher. Aber das ist nur meine Meinung.

Ich kann auch Midimasters Standpunkt verstehen (auch wenn ich seine Analogie nicht verstehe :/ ), als ich angefangen habe zu programmieren war das Null Element des Arrays immer nervig, weil ich ja 10 Objekte wollte, also von 1 bis 10, nicht von 0 bis 9 (exakt das gleiche, andere Denkweise). Es gibt auch Sprachen, die so agieren, als Beispiel sei hier Matlab aufgeführt.

Aber dennoch ist der allgemein gängige Standard wohl 0 bis Länge-1, und aufgrund der Arraystruktur sollte man (wie oben schon einmal erwähnt) direkt damit anfangen. Wenn man wirklich programmieren will, dann wird man das später nie alleine machen sondern meist in einem Team, und dort ist es wichtig gewisse Standarte einzuhalten, weil sonst die Zusammenarbeit unmöglich wird.
Man gewöhnt sich solche Dinge (den Array bei 1 anzufangen) schnell an, und die Abgewöhnung ist relativ mühsam, deshalb sollte man von Anfang an richtig anfangen, damit man nachher nichtmehr umstellen muss.

Aber das sind mal wieder nur meien 2Cts,
ich wünsche weiterhin eine schöne Diskussion,

MfG,
Darth
 

NtotheS

BeitragMi, Jan 13, 2010 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 400,400,16
tileset = LoadAnimImage("tileset.bmp",32,32,0,13)
char = LoadImage("char.bmp")

Dim map(8,15)
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1





For y = 0 To 15
For x = 0 To 8
Read map(x,y)
Next
Next

Repeat
SetBuffer BackBuffer()
Cls
If KeyDown(1) Then End
For y = 0 To 15
For x = 0 To 8
DrawImage tileset,x*32,y*32,map(x,y)
Next
Next
Forever



z.b. mein jetziger code. Ich hab denke ich mal die 0 richtig berücktsichtig, dennoch zeigt er mir bei Starten, die grafik IMMER an irgendeiner anderen stelle Very Happy

Abenteurer036

BeitragMi, Jan 13, 2010 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie andere stelle? Du zeichnest doch immer die gleiche Grafik.

Edit: Du musst bei Graphics 4 stellen setzten GANZ WICHTIG!!

Code: [AUSKLAPPEN]
Graphics 400,400,24,2


Die erste stelle ist die Breite, die zweite die Höhe, die dritte die Bittiefe und die letzte der Modus. Am besten du klickst auf -------> Graphics und siehst es dir an.

MfG Abenteurer036
New Project [4%]
Schinken Maker [100%]
 

NtotheS

BeitragMi, Jan 13, 2010 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Das dachte ich auch abenteurer

1 MAL AUF START:

http://img5.imagebanana.com/view/uxrh0nkt/1.jpg

2 MAL AUF START:

http://img5.imagebanana.com/view/4y0kdmwh/2.jpg

3 MAL AUF START:

http://img5.imagebanana.com/view/meybbo6l/3.jpg

usw :C

Abenteurer036

BeitragMi, Jan 13, 2010 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du SetBuffer und BackBuffer setzt musst du sie auch flippen.

Code: [AUSKLAPPEN]
...
Next
Next

Flip    ;<-----------hier kommt noch ein Flip rein.
Forever


Hast du schon bei Graphics 4 Stellen gesetzt? Ich habs oben nochmal hinzugefügt.
New Project [4%]
Schinken Maker [100%]
 

NtotheS

BeitragMi, Jan 13, 2010 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Verdammt, ich habe vergessen zu Flipen, da ja Set Buffer gesetzt wurde :C

Sorry für die Frage....ich muss einfach mehr auf das ganze aufpassen...war nämlich sehr mit dem DIM und Data beschäftig Very Happy
 

NtotheS

BeitragMi, Jan 13, 2010 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
So ich hab nun eine Action eingabaut...meiner meinung nach ist es aber irgendwie nicht die sauberste lösung.

Der Code:

Code: [AUSKLAPPEN]
Graphics 400,400,16,2
tileset = LoadAnimImage("tileset.bmp",32,32,0,17)
char = LoadImage("char.bmp")
px = 6
py = 6
move = 1

Dim map(13,13)
Data 2,2,2,2,2,2,2,2,2,2,2,2,1
Data 1,3,4,5,6,0,0,0,0,0,0,0,1
Data 1,10,11,12,13,16,0,0,0,0,0,0,1
Data 1,7,8,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,14,15,0,0,0,0,0,0,0,0,0,1
Data 1,2,2,2,2,2,2,2,2,2,2,2,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,1





For y = 0 To 12
For x = 0 To 12
Read map(x,y)
Next
Next

Repeat
SetBuffer BackBuffer()
Cls
If KeyDown(1) Then End
For y = 0 To 12
For x = 0 To 12
DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y)
Next
Next

If KeyDown(208) Then
If map(px,py+1) < 2 Then
py = py + 1
move = 1
End If
End If

If KeyDown(200) Then
If map(px,py-1) < 2 Then
py = py - 1
move = 1
End If
End If

If KeyDown(203) Then
If map(px,px+1) < 2 Then
px = px - 1
move = 1
End If
End If


If KeyDown(205) Then
If map(py,px+1.5) < 2 Then
px = px + 1
move = 1
End If
End If

;Blumen-Actionen
If KeyHit(57) Then
If map(px,py) = 16 Then
For y = 0 To 12
For x = 0 To 12
If map(x,y) = (0) Then
map(x,y) = 16
End If
Next
Next
End If
End If



If move = 1 Then x = px * 32: y = py * 32:DrawImage char,x,y Delay 100
Flip
Forever


Das "Spiel"
http://www.fileuploadx.de/318958


Vor dem Start der Aktion:
http://img5.imagebanana.com/view/64rlwj84/Vor.jpg

Nach dem Start:
http://img5.imagebanana.com/view/tqdaia/Nach.jpg



Um in die Blumen reinzukommen muss man von RECHTS rein und dann auf Leertaste....von vorne geht es leider nicht...
 

CO2

ehemals "SirMO"

BeitragSa, Jan 30, 2010 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab da ma ne Frage (vielleicht habe ich es übersehen oder so):

Wie wird es definiert das z.B.: ein Baum da steht, wo im Quelltext eine 1 steht?

Weil soweit wie ich das verstanden habe wird die map dann mit den 0, 1, 2, usw 'zusammenngebaut'.

vielen dank schonmal im vorraus
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group