Data

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2, 3, 4  Weiter

Neue Antwort erstellen

 

NtotheS

Betreff: Data

BeitragDi, Jan 12, 2010 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Tag, erstmal muss ich sagen das ich mir schon sehr viele Tutorials durchgelesen habe und sagen das muss, das die meisten in diesem Board echt tolle Arbeit leisten. Es hat mir ziemlich weit geholfen.

Nun bin ich wohl an einem Punkt angekommen, wo das logische Verständniss nicht mehr reicht. Und zwar:

Dim < Ich verstehe einfach nicht wozu man diesen Befehl braucht und wie er genau funktioniert.

Data < Nach langem hin und her, habe ich es geschaft eine Grafische Oberfläche zu kreieren und das als .bmp zu speichern. Nun steht da immer
"Image frame out of range"...Ich weiß nicht genau wie ich das beheben kann und ich glaube da drin liegt der fehler....Überhaupt frage ich mich wie man Tilemap in den Code umwandeln kann.

Vll nimmt sicht ja jemand Zeit und kann mir das mal erklären. UND BITTE nicht auf tutorials hinweisen, da ich schon so ziemlich alle geladen und durchgearbeitet habe Sad

Danke

Abenteurer036

BeitragDi, Jan 12, 2010 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte anfangs auch meine Probleme mit Dim und Data aber eigentlich ist es ganz einfach;) Auf Robs Seite gibt es ein gutes RPG Tut, da werden auch Dim und Data benuzt. Für "Image out of Range" ist warscheinlich ein Zahlfehler bei LoadAnimImage verantwortlich. Am besten du Postest den Code.

EDIT: Das mit Robs Seite nehm ich zurück xD

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

jokerman29

BeitragDi, Jan 12, 2010 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich hatte wirklich "angst" for dims und war wie ein kleines kind: NEIN!!! KEINE DIMS!! usw... aber wenn mans einmal verstanden hat, willst du garnicht mehr ohne sie Wink (ich weiß alle sagen, dass sie wichtig sind, und du wirst es verstehen) was verstehst du an dims denn genau nicht?? wie man sie macht, definiert,aufruft??
mfg
jokerman29
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!

Rechtschreibfehler sind special-effekts meiner Tastatur Wink

Abenteurer036

BeitragDi, Jan 12, 2010 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Und sende auch gleich den Code. Ich hab dir hier mal was zusammengeschrieben, ich hoffe es hilft.

Für Dim und Data:

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 (Hier könntest du auch den Fehler mit "Image out of Range" gemacht haben!)

Danach das Datafeld:
Code: [AUSKLAPPEN]
.datenblock
Data 0,0,0
Data 0,0,0
Data 0,0,0


Dann kommt For und Next

Code: [AUSKLAPPEN]
For x = 0 to 2
for y = 0 to 2

;Hier wird der Datenblock eingelesen
Read datenblock(x,y)

Next
Next


Nun zur Hauptschleife:

Code: [AUSKLAPPEN]
Repeat
Cls

For x = 0 to 2
For y = 0 to 2

Drawblock tiles,x*16,y*16,datenblock(x,y)

Next
Next
New Project [4%]
Schinken Maker [100%]
 

NtotheS

Betreff: :D

BeitragDi, Jan 12, 2010 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Also z.b. mein Code

Dim map(400,400)
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,3,3,1,1,1,1,1,4,4,1,1,1,1,1
Data 0,0,0,0,1,1,1,3,3,1,1,1,1,1,4,4,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,2,2,1,1,1,1,3,3,3,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,3,3,3,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1


Ich habe das von Robs ersten Tutorial übernommen...

Lösche ich eine Data, geht das Spiel nicht mehr...Warum? Ich habe ehrlich gesagt keine ahnung

Dim = 400 ist glaube ich auch nicht die richtige lösung.

Ich sehe den sinn in Dim einfach nicht, wozu muss man ihn überhaupt eingeben?

Was ich rausgefunden habe ist, das er wohl die map nicht mehr lesen kann wenn ichs weg mache. Und das sie die Grafik verschiebt wenn ich die 400 ändern Very Happy

Aber das größte Problem ist immer noch die Data :C Wie kriegt man aus dem Bild die zahlen raus ? Very Happy


Achja Very Happy ich bin erst seit 3 Tagen dabei Very Happy Desewegen entschuldigt die unglaubliche flut an Fragen.^^

Abenteurer036

BeitragDi, Jan 12, 2010 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Dim 400??
Aua^^ viel zu viel du hast doch nur 21*21
Also müsste es heißen Dim map(20,20)

Ich habe oben noch was hinzugefügt vielleicht hilfts.
New Project [4%]
Schinken Maker [100%]
  • Zuletzt bearbeitet von Abenteurer036 am Di, Jan 12, 2010 17:08, insgesamt einmal bearbeitet
 

NtotheS

BeitragDi, Jan 12, 2010 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.fileuploadx.de/290919

Das ist mein "Spiel"

Also die map ist bissel verzogen. Was genau ist daran noch falsch, abgesehen von 400

Danke dir Very Happy



@Abenteurer036. Der code oben hat schon paar fragen gelöst. Danke Very Happy

Abenteurer036

BeitragDi, Jan 12, 2010 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe leider kein Winrar. Aber du kannst den Code auch einfach so, hier rein Posten.
New Project [4%]
Schinken Maker [100%]
 

NtotheS

BeitragDi, Jan 12, 2010 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Graphics 500,500,0
tileset = LoadAnimImage("tileset.bmp",400,400,0,1)
char = LoadImage("char.bmp")
px = 6
py = 6
move = 1

Dim map(20,20)
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,3,3,1,1,1,1,1,4,4,1,1,1,1,1
Data 0,0,0,0,1,1,1,3,3,1,1,1,1,1,4,4,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,2,2,1,1,1,1,3,3,3,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,3,3,3,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

Read map(x,y)
For y = 0 To 20
For x = 0 To 20
Next
Next
Repeat
SetBuffer BackBuffer()
Cls
If KeyDown(1) Then End
For y = 1 To 20
For x = 0 To 20
DrawImage tileset,x*1,y*1,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






:DER CHAR
http://img5.imagebanana.com/vi...ar.bmp.png

DIE MAP
http://img5.imagebanana.com/vi...et.bmp.png


Danke Very Happy

Midimaster

BeitragDi, Jan 12, 2010 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab da ein superschnuffiges Tutorial, dass sich nur mit dem Thema DIM beschäftigt:

Kapitel V aus meinem Variablen-Tutorial:

https://www.blitzforum.de/foru...048#354048

Abenteurer036

BeitragDi, Jan 12, 2010 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Read map(x,y) muss in der for Next Schleife stehn also so:
Code: [AUSKLAPPEN]
For y = 0 To 20
For x = 0 To 20
Read map(x,y)
Next
Next


Edit:
Am besten siehst du dir aber das Tut von Midimaster an und wenn du Code Postest, verwende bitte [code ] und [/code ] <--- ohne die Leetzeichen nach "code". Ist nich böse gemeint aber es macht es leiter den Code zu lesen Wink

MfG Abenteurer036
  • Zuletzt bearbeitet von Abenteurer036 am Di, Jan 12, 2010 17:23, insgesamt einmal bearbeitet
 

NtotheS

BeitragDi, Jan 12, 2010 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut habs umgestellt Very Happy

Nun Image frame out of range.

Ich habe so das gefühl das die Map werte nicht ganz richtig sind Very Happy
 

NtotheS

BeitragDi, Jan 12, 2010 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
[quote="NtotheS"]Graphics 500,500,0
tileset = LoadAnimImage("tileset.bmp",400,400,0,1)
char = LoadImage("char.bmp")
px = 6
py = 6
move = 1

Dim map(20,20)
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,3,3,1,1,1,1,1,4,4,1,1,1,1,1
Data 0,0,0,0,1,1,1,3,3,1,1,1,1,1,4,4,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,2,2,1,1,1,1,3,3,3,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,3,3,3,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1
Data 1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

Read map(x,y)
For y = 0 To 20
For x = 0 To 20
Next
Next
Repeat
SetBuffer BackBuffer()
Cls
If KeyDown(1) Then End
For y = 1 To 20
For x = 0 To 20
DrawImage tileset,x*1,y*1,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






:DER CHAR
http://img5.imagebanana.com/vi...ar.bmp.png

DIE MAP
http://img5.imagebanana.com/vi...et.bmp.png


Danke Very Happy[/quote]

Abenteurer036

BeitragDi, Jan 12, 2010 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach "If KeyDown (1) to End" steht For y = 1 To 20. Da müsste eigentlich ne 0 anstatt die 1 hin.
New Project [4%]
Schinken Maker [100%]

jokerman29

BeitragDi, Jan 12, 2010 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
also zu deinem spiel:
wenn ich das menchen aus dem fenster beweg, und dann wieder rein, dann kommt immer:
array index out of bounds
aber dafür das du erst 3 tage progst bist du wirklich so weit gekommen, also kompliment Wink
nach 3 tagen konnt ich grad mal die befehle zum textschreiben Wink
aber auch nur auf q-basic
aber du siehst ja, es ist ausbaufähig

als tipp: benutz anstatt eine "repeat-forever" schleife eine "while not keyhit(1)" schleife
sie ist besser und kanst dir das if keyhit(1) then end weglassen Wink
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!

Rechtschreibfehler sind special-effekts meiner Tastatur Wink
 

NtotheS

BeitragDi, Jan 12, 2010 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Jokerman Very Happy ich bin mir sicher das du es auch weiterbringst Very Happy

Code: [AUSKLAPPEN]
DrawImage tileset,x*1,y*1,map(x,y)


Das Markiert er mir immer nachdem Start und dem Error : Image frame out of range

Abenteurer036

BeitragDi, Jan 12, 2010 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das ist klar du machst die Tiles 1 pixel groß. Es müsste
Code: [AUSKLAPPEN]
DrawImage tileset,x*32,y*32,map(x,y)
heißen. Hast du das mit "For y = 1 To 20" schon in ein "For y = 0 To 20" umgeschreiben?
New Project [4%]
Schinken Maker [100%]

count-doku

BeitragDi, Jan 12, 2010 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

beim Laden des Animations-Bildes ist ein Fehler:
Das Bild hat doch mehr als 1 Frame?
In deinem Data definierst du bis max. 4
also wäre ein LoadAnimImage("tileset.bmp",400,400,0,4) angebracht.
Und ist jedes Tile wirklich 400x400 Pixel groß?


Mfg,
count-doku

Abenteurer036

BeitragDi, Jan 12, 2010 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde du solltest nicht schon nach 3 Tagen mit einem RPG anfangen. Beginn es langsam mit kleineren Sachen z.B. einem Quiz oder Hallo World Programm. Später wenn du die Grundlagen kannst, könntest du dich an ein RPG ranwagen. Ist glaub ich eine bessere Lösung als ein Scheiterprojekt. Ich sprech aus eigener Erfarung Wink
New Project [4%]
Schinken Maker [100%]
 

NtotheS

BeitragDi, Jan 12, 2010 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
So, nach extrem fiesen und langen Internet-Problemen, bin ich wieder da ;D Ich hoffef ihr habt euch nicht aufgelöst Laughing

Wie der Abenteurer schon sagte ist es echt besser mit was einfachem anzufangen, aber ich möchte wenigstens eine MAP + ne Figur die sich animiert bewegt schafen. Weil ich habe echt n Willen das zu schafen, deswegen poste ich auch erst nach dem 3 Tag weil ich es soweit alleine schafen wollte wie ich konnte Very Happy

Naja ich hab eben grad Urlaub und deswegen unmenge an Zeit und werde nicht aufgeben Very Happy

Count-Doku hat ja die 4 gesehen, aber ich muss ja sagen das diese DATA nicht zu MEINEM teilmap gehört....weil ich nicht weiß wie man aus ner teilmap data macht Smile

Gehe zu Seite 1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group