Tilesets in 61x61 wieso geht das nicht

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Johnny

Betreff: Tilesets in 61x61 wieso geht das nicht

BeitragDo, Dez 22, 2005 0:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Tilesets in 61x61 wieso geht das nicht, das ist doch egal wie groß die tilesets sind.
wieso ist sowas nicht möglich ?

Bitte um schnelle antwort !!

Danke

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Dez 22, 2005 1:34
Antworten mit Zitat
Benutzer-Profile anzeigen
/EDIT
Häää?!? Warum soll das denn nicht möglich sein? Ist bestimmt nur ein kleiner Fehler im Code... Zeig mal, dann kann dir auch geholfen werden. Habe mal ein Beweisbeispiel mit 61er Tiles per Rect geproggt, und es funzte wunderbar! Ausserdem: Wie kommt man auch eine solche 'ungünstige' Zahl von 61 für Ziles?
 

Johnny

Betreff: Das ist das erste tutorial

BeitragDo, Dez 22, 2005 1:56
Antworten mit Zitat
Benutzer-Profile anzeigen
;CODE ZUM ERSTELLEN EINER TILEMAP
;--------------------------------

;Mit diesem code solltet ihr ruhig ein bischen rumexperimentieren,
;damit ihr ihn versteht.


;das sollte eigendlich jeder wissen!
Graphics 1024,768,16,1

;läd das tileset, wobei jedes tile 32*32 pixel groß ist und das höchst tile ist nr.4,
;obwohl dort (,5) heißt das nur die anzahl der tiles von 0 an
tileset = LoadAnimImage("tileset2.bmp",61,61,0,5)


;diese function legt eine array mit zwei Werten an, also können in dieser array 2 variablen
;mit dem maximalwert 20 gespeichert werden.
Dim map(20,20)

;diese function ist ein ganz alter hut, einfach die map in ein datenfeld speichern,
;das ist leider sehr mühsam, wenn man karten mit den maßen 200*32 tiles anlegen möchte

;Legende:
; 0 = wiese
; 1 = wasser
; 2 = feuer
; 3 = erde
; 4 = feld

;ihr könnt die karte natürlich nach belieben verändern

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


;diese function ist ganz einfach, in den for-next-schleifen wird die größe
;der map angegeben
For y = 0 To 20
For x = 0 To 20
;Read liest das datenfeld ein und speichert es in der array map(20=y,20=x)
Read map(x,y)
Next
Next

;die hauptschleife und die vorbereitungen werden getrofen, ich benutze immer diesen anfang
Repeat
;Den Backbuffer setzen
SetBuffer BackBuffer()
;Wird in den nächsten lektionen nicht mehr nötig sein
Cls
;ESC-Taste zum Beenden
If KeyDown(1) Then End

;diese function malt die karte wieder in einer for-next-schleife
;aber diesmal ist die karte ja schon eingelesen also müssen wir sie ausgeben,
;wir wollen sie ja schließlich sichtbar machen.
;das *32 heißt, dass die tiles in den abständen von 32*32 pixel gesetzt werden.
For y = 0 To 20
For x = 0 To 20
DrawImage tileset,x*61,y*61,map(x,y)
Next
Next
;flippen und zum anfang zurück
Flip
 

Johnny

BeitragDo, Dez 22, 2005 2:02
Antworten mit Zitat
Benutzer-Profile anzeigen
er sagt bei mir "not enoigh Frames in bitmap"

soll das sowas heissen wie das sind keine Bilder ???
habe das nicht mit ein tileset maker gemacht!
macht das was ?

D2006

Administrator

BeitragDo, Dez 22, 2005 2:15
Antworten mit Zitat
Benutzer-Profile anzeigen
zeig mal das Bild. Ich schätze da sind keine 5 Bilder drin.

Zum Überprüfen:
Die Höhe mal die Breite des Bildes in zB Paint muss mindestens 18.605 Pixel betragen!!!

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Johnny

BeitragDo, Dez 22, 2005 2:19
Antworten mit Zitat
Benutzer-Profile anzeigen
die masse das bild datei ist 244 x 61
 

Johnny

BeitragDo, Dez 22, 2005 2:21
Antworten mit Zitat
Benutzer-Profile anzeigen
juhu gabe die größer erhöt wie wird das berechnet ?
da die vorige bilddatei sogar kleiner war !
 

Johnny

BeitragDo, Dez 22, 2005 2:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ok mehr muss ich nicht wissen thx

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Dez 22, 2005 2:48
Antworten mit Zitat
Benutzer-Profile anzeigen
...@Johnny...
Falls die Komentare in diesem Code von dir sein sollten, dann solltest du dir nochmal die Funktionsweise eines Dim-Arrays anschauen. Dim map(20,20) kann NICHT zwei Variablen mit den Maximalwert von 20 speichern, sondern 441 Variablen in folgendem Wertebereich von -2147483648 bis +2147483647 !!!

Dim map(20,20) legt also ein zweidimensionales Array an von jeweils 0-20 Integerwerten (Kann durch folgendes auch geändert werden: #-Fließkomma, %-Integer 'Standard', $-String). Also wie ein Matheheft mit 5*5mm Quadraten wo in jedem eine Zahle eingetragen werden kann. Daher sollte das Anlegen von mehrdimensionalen oder großen Array Abstand gehalten werden, da die Speicherbereiche schnell sehr groß werden können. (20,20) ist allerdings nicht erwähnenswert.
 

Omenaton_2

BeitragDo, Dez 22, 2005 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist empfehlenswert stat 61 lieber 64 Pixel als Tile Größe zu nehmen. Diese Größe läßt sich gut teilen für verschiedene Berechnungen und wenn es um Texturen geht ist es unter Umständen auch günstiger.

Hummelpups

BeitragDo, Dez 22, 2005 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin Fan von 32x32 oder gar 16x16 tiles.
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Surat

BeitragDo, Dez 22, 2005 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
@hectic
ne,ne die kommentare sind nicht von ihm, sondern
wohl eher vom blitzmaster-tut
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

sunny

BeitragDo, Dez 22, 2005 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm mal 20 * 61 und vergleiche das Ergebnis dann mit der Breite der gewählten Auflösung (hier 1024)
Dann weißt du schon mal, warum es auf keinen Fall klappen kann

Les mdir am besten das Tutorial von dem du den Code verändert hast ein paar mal durch, denn du bist nicht der einzige der mehrere Anläufe braucht.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group