Wie könnte ich am besten anfangen..??
Übersicht

x_toBetreff: Wie könnte ich am besten anfangen..?? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo erstmal..ich hoffe ich kann bei euch hier etwas hilfe finden...![]() also: ich würde gern ein programm schreiben das folgende möglichkeiten bietet: 1. eine datei mit maptiles laden, wobei jedes tile exakt hinter dem anderem liegt...-> bitmaplänge = anzahl maptiles*tilebreite/bitmaphöhe = maptilehöhe 2. danach sollte das programm eine datei lesen, worin wahlweise byte- als auch wordweise die werte ausgelesen werden sollten 3. danach den maptiles jeweils den gerade ausgelesen byte/word wert auf dem bildschirm zuordnen.... d.h.: datei(1.byte) = 95 ----> maptile nr.95 auf dem bildschirm bringen das ist eine art levelmap, die aber nicht von mir stammt... 4. sollte die datei erfolgreich auf den bildschirm gebracht sein, dann soll wahlweise die möglichkeit bestehen den maximalen x wert zu verändern...dann eben das ganze spiel von vorn... ich hab da auch schon was angefangen: BlitzBasic: [AUSKLAPPEN]
ist wie gesagt erst nur ein kleines bißchen, aber was sollte ich als nächstes tun..??? wofür ich das brauch könnte ich auch erklären, wenn es denn jemanden interessieren würde... ![]() ich danke euch schon mal... ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
map = OpenFile ("levelmap") -> Das wird nirgends gebraucht? Überbleibsel vielleicht? ![]() BlitzBasic: [AUSKLAPPEN] For y=0 To 40Ob Du dabei die Werte als Byte oder Short speicherst hängt von der vorraussichtlichen max. Anzahl Tiles ab, bzw. die Größe der Nummern mit denen Du arbeiten willst (wenn ich das so lese glaub ich selbst nicht das man diesen Satz verstehen kann ![]() ![]() For y=0 To 40Am besten wäre es noch nur immer den Teil zu malen den man auch wirklich sieht (wenn scrolling eingebaut wird), aber da darfst Du selbst ran ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hier mal ein lösungsweg von mir. kannst du nat. noch erweitern,
zb. mehrere layers etc. BlitzBasic: [AUSKLAPPEN]
und das "tileset" ![]() ![]() |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich danke euch erstmal und werde das alles probieren...wenns nicht klappen sollte, melde ich mich gerne wieder hier..![]() |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, danke für all die mühe, aber leider waren die listings nicht ganz das, was ich suchte...
lag wohl daran, daß ich das alles etwas falsch erklärt habe... ich versuchs mal besser: erstmal hintergrund der ganzen geschichte..: ich bräuchte solch ein tool um gamemaps von längst vergangener spiele zu erstellen..um genau zu sein von amiga spielen... vielleicht errinnert ihr euch noch an perlen wie turrican, giana sisters (gibts übrigends mittlerweile als javagame für handys)... und genau von diesen spielen würde ich gamemaps rippen wollen. schon damals wurde ja die "kastentechnik" auf dem amiga angewandt, folglich sollte es ein leichtes sein (dachte ich erst) von kompletten memorydumps und den dazugehörigen maptiles solch eine gamemap zu erstellen. für die maptiles existiert mittlerweile solch ein tool, womit es möglich ist aus diesen memorydumps die tiles zu rippen... nun kam mir die idee eben gamemaps zu erstellen... da dachte ich an folgende vorgehensweise: 1. man muß wissen wieviele maptiles vorhanden sind um zu wissen ob die dazugehörigen adressen byteweise (max. $FF => 255) oder wordweise (max. $FFFF => 65535) zugeordnet werden. longwords wurden mit sicherheit nie verwendet 2. wir wissen nun, daß z.B. byteweise alle tileadressen abgelegt wurden 3. der memorydump wird byteweise gelesen und der entsprechend gelesen wert wird durch das maptile graphisch dargestellt...d.h. alle zahlen werden durch grafiken ersetzt.. ![]() 4. da solch eine gamemap mit höchster wahrscheinlichkeit größer wie der bildschirm sein wird sollte scrolling vorhanden sein. 5. anfangs ist es auch noch nicht möglich wieviele tiles auf der x achse und wieviele auf der y achse sind, d.h. ein arrayerstellen würde nix bringen, es sei denn es ist in der größe variabel.. 6. dazu dachte ich daß wenn man z.B. den right arrow key drückt das array um eine tilebreite vergrößert wir und in diesem tile das erste aus der 2. reihe dorthin gezeichnet wird... 7. simultan dazu sollte es sowohl in y richtung als auch in umgekehrter reihenfolge(verkleinern) klappen ok,das alles scheint momentan sehr kompliziert zu sein, aber ihr seid doch alle fähige männer die das hinkriegen würden... ich könnte noch vieles über die technik des amiga erzählen, aber das bringt hier wohl auch nicht viel weiter, und ja ich weiß auch daß die ganze sache sehr rechenintensiv wird... aber ich denk blitzbasic sollte in der lage sein sowas zu bewältigen.. ![]() wäre nett wenn ich etwas hilfe bekommen würde...[img][/img] |
||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
"wir wissen nun, daß z.B. byteweise alle tileadressen abgelegt wurden "
z.b.?? wir müssen es nicht nur vielleicht wissen, das ist eigentlich das einzige was du wissen mußt. wenn du weißt wie das level aufgebaut ist dann ist der rest einfach. aber wieviel layer hat so ein level, wie wirds gespeichert? schätzungsweise ist level und tileset in zwei verschiedenen files gespeichert... |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das tileset ist ja als bmp datei verfügbar und wenn es weniger wie 255 tiles sind, dann sind sie byteweise abgelegt...
das tool sollte in erster linie dazu dienen grafisch zu ermitteln wie hoch und wie breit das level ist...und wenns möglich wäre auch an welcher position im speicher... ![]() layer gibts beim miga übrigends nicht.. ![]() höchstens playfields und die betragen max. 2... ![]() das tileset wurde vorher übrigends schon aus dem speicher gerippt.. ![]() |
||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich schätze nicht das du höhe ohne länge und die länge ohne höhe rauskriegen wirst. wenn das byteweise gespeichert wird, ist ja die größe der datei die anzahl der dargestellten tiles. was aber sicher nicht hinkommt, weil irgendwo ja auch die gegner etc gespeichert werden, und die powerups und was es nicht noch alles gibt ...
also wird das auch schon nicht stimmen. was du machsten könntest, denk ich mir, schau dir die tiles an, schau dir das level an und dann schreib mal die nummern der ersten tiles aneinander und such dann einfach nach der bytefolge... könnte vielleicht gehen ... |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab mit bb ein bißchen weiter geübt und das mittlerweile erstellt...
ich würde nur gern jetzt das bild in alle richtungen scrollen... BlitzBasic: [AUSKLAPPEN]
|
||
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Uff...also dazu müssten man erstmal wissen, wie dein mapfile aussieht. Also...zeichnest du jedesmal die ganze map, die eventuell grösser als 800x600 ist ? bzw. wie gross ist deine map überhaupt ? | ||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, das hinmalen scheint ja schon zu funktionieren... wenn du scrollen willst mußt du nur zum x und y noch ein offset dazurechnen ... und das dann bei tastendruck veringern oder vergrößern... | ||
A Cray is the only computer that runs an endless loop in less than four hours. |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, abgesehen von den oben misslungenen versuchen hab ich fast von vorn wieder angefangen..und es beginnt langsam spass zu machen... ![]() allerdings hab ich jetzt das problem daß ich kein screenshot (nicht bildschirm, sondern die ganze karte) erstellen kann...siehe subroutine mapsave BlitzBasic: [AUSKLAPPEN] levelbreite = 2048 das teil funktioniert so: erst wird ein tilemap geladen, worin alle tiles in einer reihe liegen dann wird eine binärdatei geladen jedes byte wird gelesen und durch "bytewert*tilebreite" ein tile zugewiesen.. anschließend wird das auf den bildschirm gebracht... das alles passiert in echtzeit und die levelbreite ist per arrowkeys jederzeit änderbar... nur mit dem screenshot der ganzen datei hab ich probleme....d.h. ich weiß nicht ob der imagebuffer wirklich richtig angesprochen wurde... ![]() hier die dazugehörigen dateien: http://xto.funpic.de |
||
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
auch ein saveimage statt savebuffer funktioniert nicht...
ich nutze blitz 2D 1.10 ist das noch ein bug..?? |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm, update es erstmal, 1.10 ist eine sehr alte Version! | ||
between angels and insects |
x_to |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
momentan arbeite ich nur mit der demoversion von blitz2d...bestellt ist blitzplus aber mittlerweile...
ich wüßte gern ob es in nachfolgenden versionen funktioniert oder nicht... ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group