problem mit "data"

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Yankee

Betreff: problem mit "data"

BeitragSo, Jul 16, 2006 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich hab mal wieder ein problem mit data.
Im programm handelt es sich einfach um ein tileset (mit LoadAnimImage) und um die map, die mit "data" und so gespeichert wird.

Nur habe ich mein altes Programm leider verloren/verschmissen/sonstihrgendwas und weis nun nicht mehr weiter.

jedes animierte teil ist 30*30 groß.
(fals es euch hilft die nummern:
tileset nummer: 1 = gerade (oben-unten)
2 = gerade (links-rechts)
3 = Kreuzung(oben-links-unten-rechts)
4 = Kurve (links-unten)
5 = Kurve (oben-rechts)
6 = Kurve (links-oben)
7 = Kurve (rechts-unten)
8 = Gras
-.- .....)

hier der code:
Code: [AUSKLAPPEN]

Graphics 640,480,16,2

strasse = LoadAnimImage("ray_tileset.bmp",30,30,1,8)

Restore strassenkarte
For x = 0 To 20
   For y = 0 To 15
      Read ......
      DrawImage strasse,x*29,y*29, (hier dann die Anim nummer)
   Next
Next

WaitKey()

End   

.strassenkarte
Data 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
Data 8,7,2,2,2,2,4,8,8,8,7,2,2,2,2,2,2,2,4,8,8
Data 8,1,8,8,8,8,1,8,8,8,1,8,8,8,8,8,8,8,1,8,8
Data 8,1,8,8,8,8,1,8,8,8,1,8,8,8,8,8,8,8,1,8,8
Data 8,5,2,2,2,2,3,1,1,1,6,8,8,8,8,8,8,8,1,8,8
Data 8,8,8,8,8,8,1,8,8,8,7,2,2,2,2,2,2,2,6,8,8
Data 8,8,8,8,8,8,1,8,8,8,1,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,1,8,8,8,1,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,1,8,8,7,6,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,1,8,8,1,8,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,1,8,8,1,8,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,5,2,2,6,8,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
Data 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8


hoffe ihr könnt mir helfen.

mfg
Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

SpionAtom

BeitragSo, Jul 16, 2006 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Denke du musst bei

Code: [AUSKLAPPEN]

      Read ......
      DrawImage strasse,x*29,y*29, (hier dann die Anim nummer)


folgendes machen:

Code: [AUSKLAPPEN]


      Read num
      DrawImage strasse,x*29,y*29, num


Und ich glaube du musst x und y der For-Schleifen vertauschen.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

kreisman

BeitragSo, Jul 16, 2006 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis nicht so ganz wo dein Problem liegt? Ich denke mal ,dass da ein Fehler im Code is:

Code: [AUSKLAPPEN]
DrawImage strasse,x*29,y*29, (hier dann die Anim nummer)

Hier fällt mir sofort auf,dass du die Teiles mit 29 multiplizierst.Müssten diese nicht mit 30 multipliziert werden,da deine Tiles 30 Pixel groß sind?

Yankee

BeitragMo, Jul 17, 2006 13:44
Antworten mit Zitat
Benutzer-Profile anzeigen
so äh jetzt kommt "not enought frames in bitmap"
Aber eigtnlich dürfte ich da bei LoadAnimImage alles richtig gemacht haben...
Weis jmd das Problem?
ich hab "strasse = LoadAnimImage("ray_tileset.bmp",30,30,1,8)" und bild ist 120*60 groß

mfg
Yankee

(gelöst)
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Yankee

BeitragMo, Jul 17, 2006 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
da es sich eigentlich fast um das selbe programm handelt, wollte ich mal fragen wie ich am besten einen map-editor mache.

Also wenn ich auf tile-1 klicke, dann ist tile-1 true und ich kann aussuchen, wohin ich den tile hintue. nur wollte ich jetzt mal fragen, wie ich des mache.
Mit:
Code: [AUSKLAPPEN]

Read num
num = ausgewaehlter_tile

so ungefähr, oder habt ihr ne andere Idee

mfg
Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

ChaosCoder

BeitragMo, Jul 17, 2006 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, dachte mal, ich meld mich auch mal zu Wort, Map-Editoren progg ich nämlich ganz gerne!
Also erstmal würde ich dir vorschlagen, ein Array zu erstellen. Noch ne kleine Variable dazu. Also
Code: [AUSKLAPPEN]
Dim map(20,15)
global aust

Dann die Felder einlesen:

Code: [AUSKLAPPEN]
Restore strassenkarte
For y = 0 To 15
   For x = 0 To 20
      map[x,y]=Read
   Next
Next


In der Schleife dann erstmal alles darstellen.
Code: [AUSKLAPPEN]
while not keyhit(1)

   For x = 0 to 20
      For y = 0 to 15
         drawimage strasse,x*30,y*30,map[x,y]
      Next
   Next

   flip
   cls

wend


So, dann aknnste durch einen Button oder durch eine auswahl ein Tile, das du auf die map haben möchtest auswählen, du lässt aust einfach dann zu dem gewünschten frame werden, also aust=3 wär jetzt ne kreuzung. Dafür brauchste jetzt denk ich ma keinen Code. Dann, bei Linksklick auf die Map wird dann das Feld beim Mauszeiger zu der Kreuzng, wie hier im Beispiel)
Code: [AUSKLAPPEN]
map[MouseX()/30,MouseY()/30)=aust


Und fertig ist der Mapeditor, natürlich nicht wirklich intelligent, da du die tiles wie kurve und so selbst auswählen musst und gucken musst ob das funktioniert, aba egal.

PS: ACHTUNG! PSEUDOCODE! NICHT GETESTET!
Hoffe ich konnte dir helfen!
Projekte: Geolaria | aNemy
Webseite: chaosspace.de
  • Zuletzt bearbeitet von ChaosCoder am Mo, Jul 17, 2006 18:41, insgesamt 2-mal bearbeitet

kreisman

BeitragMo, Jul 17, 2006 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Probiers mal so

Code: [AUSKLAPPEN]

Dim Map(20,15)

Read....

ausgewaehltesTile%=5;Hier ist der Frame auf den das Tile geändert wird

If MausHit(1) then
  x = MouseX() /30 ;koordinaten durch 30 teilen, da deine Tiles 30 Pixel groß sind   
 y = MouseY()/30               
  Map(x,y) = ausgewaehltesTile%

End If

For x = 0 To 20
   For y = 0 To 15
      DrawImage strasse,x*30,y*30,map(x,y)
   Next
Next
  • Zuletzt bearbeitet von kreisman am Mo, Jul 17, 2006 19:33, insgesamt einmal bearbeitet

StepTiger

BeitragMo, Jul 17, 2006 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Yankee hat Folgendes geschrieben:
so äh jetzt kommt "not enought frames in bitmap"
Aber eigtnlich dürfte ich da bei LoadAnimImage alles richtig gemacht haben...
Weis jmd das Problem?
ich hab "strasse = LoadAnimImage("ray_tileset.bmp",30,30,1,8)" und bild ist 120*60 groß

mfg
Yankee

(gelöst)


weil 8 frames * 30 pixel = 240 Pixel sind und nicht 120
ich glaub, man kann das nur nach rechts machen, kann aber sein, dass ich mich total irre
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

ChaosCoder

BeitragMo, Jul 17, 2006 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
weil 8 frames * 30 pixel = 240 Pixel sind und nicht 120
ich glaub, man kann das nur nach rechts machen, kann aber sein, dass ich mich total irre


Öhm, rate mal warum er in seinem Post folgendes geschrieben hat:
Zitat:
(gelöst)

Laughing Laughing Laughing
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

StepTiger

BeitragMi, Jul 19, 2006 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
huch sorry
nicht gesehen ^^
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group