mapeditor

Übersicht BlitzBasic Allgemein

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

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

BladeRunner

Moderator

BeitragSa, Sep 11, 2004 10:46
Antworten mit Zitat
Benutzer-Profile anzeigen
biegl hat Folgendes geschrieben:
wie oft denn noch
ich hab das project ertmal eingefroren.


Sorry, aber sooft wie nötig. Du hast dich von deinem ersten Post hier an als der große Könner dargestellt, obwohl du (wie man aus deinen Fragen unschwer erkennt) von Tuten und Blasen wenig bis keine Ahnung hast.
Ok, der Übermut der Jugend, kann vorkommen. allerdings hätte dir mittlerweile auch auffallen müssen dass
a) Wir das bemerkt haben und
b) es nicht gut finden.
Hättest du dich ein wenig zurückgenommen wär das kein Problem, aber du machst genauso weiter ("DIE ONLINEHILFE HAB ICH DURCH"). Deine Fragen (ich hasse den Folgenden Satz, ich hab ihn schon x-mal geschrieben) gehören zu den Basics (den Grundlagen) des Programmierens und sind mit simpler, kalter Logik und einem kleinen bisschen Nachdenken zu beantworten. Wenn es daran schon scheitert solltest Du darüber nachdenken dir ein anderes Hobby als Programmieren zuzulegen.
entweder du schaffst diesen ersten Schritt alleine (in dem du dich auf deinen Hosenboden setzt und nachdenkst) oder es wird nie was werden, denn die vorgekauten Stücke anderer lassen dich nicht zu einem besseren Programmierer werden.
Ansonsten gilt ab jetzt für dich:
[ignore=on]
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
 

biegl

BeitragSa, Sep 11, 2004 10:53
Antworten mit Zitat
Benutzer-Profile anzeigen
na ja also ich kann jetzt schon mal laden und speichern und malen aber er speichert mir irgendwie das falsche er malt nämlich immer nur ein bestimmtes tile auf die map wieso?

Code: [AUSKLAPPEN]

Function save()
karte = WriteFile("map.txt")
For x = 1 To 20
For y = 1 To 20
WriteByte karte,tile
Next
Next
CloseFile(karte)
End Function


ich glaube es liegt daran

Code: [AUSKLAPPEN]

WriteByte karte,tile


er speichert ja nur die variable tile weil in der variable karte
gibt es ja nock kein wert.
wei kann ich jetzt speichern das er mir dann auch das speicher was ich gemalt hab?

,ein ganzer code sieht jetzt so aus:
Code: [AUSKLAPPEN]

Dim map (20,20)

Graphics 600,400,16
Global maus
;load tielset
tileset = LoadAnimImage("tileset.bmp",32,32,0,2)

Global x,y,mx,my,mapx,mapy
Global tile

Repeat
SetBuffer BackBuffer()

If KeyDown(1) Then End
For x = 1 To 20
For y = 1 To 20

If map(x,y) > 0 Then
DrawImage tileset,x*32,y*32,map(x,y)-1
End If

Next
Next

If KeyDown (2) Then tile = 0
If KeyDown (3) Then tile = 1

mx = MouseX()/32
my = MouseY()/32

If MouseDown(1) Then
scroll()
map(mapx,mapy) = tile +1
End If

If MouseDown(2) Then
scroll()
map(mapx,mapy) = 0
End If


If KeyHit(31) Then save()
If KeyHit(38)  Then load()






Flip
Forever

Function scroll()
mapx = (mx)
mapy = (my)
End Function

Function save()
karte = WriteFile("map.txt")
For x = 1 To 20
For y = 1 To 20
WriteByte karte,tile
Next
Next
CloseFile(karte)
End Function

Function load()
karte = ReadFile("map.txt")
For x = 1 To 20
For y = 1 To 20
tile = ReadByte(karte)
map(x,y) = ReadByte(karte)
Next
Next
CloseFile(karte)
End Function

Bms

BeitragSa, Sep 11, 2004 11:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ja. das musst du so machen

Code: [AUSKLAPPEN]

Function save()
karte = WriteFile("map.txt")
For x = 1 To 20
For y = 1 To 20
WriteByte karte,map(x,y)  ;<<<<<- hier!!
Next
Next
CloseFile(karte)
End Function

das müsste eigentlich dein fehler sein.

[edit]hat noch nen tippfehler ausgemärzt. jetzt funktionierts.
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download
  • Zuletzt bearbeitet von Bms am Sa, Sep 11, 2004 12:43, insgesamt einmal bearbeitet
 

biegl

BeitragSa, Sep 11, 2004 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ne geht auch nicht..
also ich weis auch nicht mehr weiter....

kann mir einer helfen?
 

biegl

BeitragSa, Sep 11, 2004 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weis jetz echt nimma weiter wo mein fehler liegt... hallo?
 

getlose

BeitragSa, Sep 11, 2004 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
dieses Thema gabs auch schon min 1000 mal...

Code: [AUSKLAPPEN]

Global mapw ;Breite der Map
Global maph ;Höhe der Map

Dim map(0,0)


Function SaveMap(path$)
file=WriteFile (path$)
WriteShort file,mapw
WriteShort file,maph
For x=0 To mapw
   For y=0 To maph
      WriteByte file,map(x,y)
   Next
Next
CloseFile file
End Function

Function LoadMap(path$)
file=ReadFile (path$)
mapw=ReadShort (file)
maph=ReadShort (file)
For x=0 To mapw
   For y=0 To maph
      map(x,y)=ReadByte (file)
   Next
Next
CloseFile file
End Function
 

biegl

BeitragSa, Sep 11, 2004 13:09
Antworten mit Zitat
Benutzer-Profile anzeigen
wo wird denn da der name der datei angegeben?

also bitte helft mir ich komm echt nimma weiter

verändert doch ma einer meinen code so das er passt...
dann seh ich endlich wo die fehler liegn..

Code: [AUSKLAPPEN]

Dim map (20,20)

Graphics 600,400,16
Global maus
;load tielset
tileset = LoadAnimImage("tileset.bmp",32,32,0,2)

Global x,y,mx,my,mapx,mapy
Global tile

Repeat
SetBuffer BackBuffer()

If KeyDown(1) Then End
For x = 1 To 20
For y = 1 To 20

If map(x,y) > 0 Then
DrawImage tileset,x*32,y*32,map(x,y)-1
End If

Next
Next

If KeyDown (2) Then tile = 0
If KeyDown (3) Then tile = 1

mx = MouseX()/32
my = MouseY()/32

If MouseDown(1) Then
scroll()
map(mapx,mapy) = tile +1
End If

If MouseDown(2) Then
scroll()
map(mapx,mapy) = 0
End If


If KeyHit(31) Then save()
If KeyHit(38)  Then load()






Flip
Forever

Function scroll()
mapx = (mx)
mapy = (my)
End Function

Function Save()
file=WriteFile ("map.txt")
WriteShort file,mapx
WriteShort file,mapy
For x= 0 To mapx
For y= 0 To mapy
WriteByte file,map(x,y)
Next
Next


Function load()
file = ReadFile("map.txt")
mapx=ReadShort (file)
mapy=ReadShort (file)
For x=0 To mapx
For y=0 To mapy
map(x,y)=ReadByte (file)
Next
Next
CloseFile file
End Function

Bms

BeitragSa, Sep 11, 2004 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
so:

Code: [AUSKLAPPEN]

Graphics 600,400,16,2
Global maus
;load tielset
tileset = LoadAnimImage("teile.bmp",32,32,0,2)

Global x,y,mx,my,mapx,mapy
Global tile
SetBuffer BackBuffer()

Repeat

If KeyDown(1) Then End
For x = 1 To 20
For y = 1 To 20

If map(x,y) > 0 Then
DrawImage tileset,x*32,y*32,map(x,y)-1
End If

Next
Next

If KeyDown (2) Then tile = 0
If KeyDown (3) Then tile = 1

mx = MouseX()/32
my = MouseY()/32

If MouseDown(1) Then
scroll()
map(mapx,mapy) = tile +1
End If

If MouseDown(2) Then
scroll()
map(mapx,mapy) = 0
End If


If KeyHit(31) Then save()
If KeyHit(38) Then load()






Flip
Forever


Function scroll()
mapx = (mx)
mapy = (my)
End Function

Function Save()
file=WriteFile ("map.txt")
WriteShort file,mapx
WriteShort file,mapy
For x= 0 To mapx
For y= 0 To mapy
WriteByte file,map(x,y)
Next
Next
End Function

Function load()
file = ReadFile("map.txt")
mapx=ReadShort (file)
mapy=ReadShort (file)
For x=0 To mapx
For y=0 To mapy
map(x,y)=ReadByte (file)
Next
Next
CloseFile file
End Function
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download
 

biegl

BeitragSa, Sep 11, 2004 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
er speichert aber immer nur teile
 

David

BeitragSa, Sep 11, 2004 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Code: [AUSKLAPPEN]

Function Save()
file=WriteFile ("map.txt")
WriteShort file,mapx
WriteShort file,mapy
For x= 0 To mapx
For y= 0 To mapy
WriteByte file,map(x,y)
Next
Next
End Function

Function load()
file = ReadFile("map.txt")
mapx=ReadShort (file)
mapy=ReadShort (file)
For x=0 To mapx
For y=0 To mapy
map(x,y)=ReadByte (file)
Next
Next
CloseFile file
End Function


Was soll das denn sein?
Die Variablen "mapx" und "mapy" stellen doch nicht die maximalen Dimensionen der Map dar sondern enthalten die Position des zuletzt gesetzten Tiles, oder?
In dem Fall wird immer zu wenig gespeichert...

Mein Tip, schau dir mal Types an und verwende diese, dann wird vieles sehr viel leichter werden!

EDIT:

Bisschen Pseudocode:
Code: [AUSKLAPPEN]

Type TileObj
  xPos, yPos
  TileIndex
end type

const MAP_WIDTH xxx
const MAP_HEIGHT xxx

Save()
  WriteShort MAP_WIDTH
  WriteShort MAP_HEIGHT

  for x = 0 => MAP_WIDTH, y = 0 => MAP_HEIGHT
    Write( Tile( x, y ).xPos )
    Write( Tile( x, y ).yPos )
    Write( Tile( x, y ).TileIndex )
  next
end save

Load()
  width = Read MAP_WIDTH
  height = Read MAP_HEIGHT

  SetMapDimension( width, height )

  for x = 0 => MAP_WIDTH, y = 0 => MAP_HEIGHT
    Tile = new TileObj
    Tile.xPos = Read( Tile( x, y ).xPos )
    Tile.yPos = Read( Tile( x, y ).yPos )
    Tile.TileIndex = Read( Tile( x, y ).TileIndex )

    Map( x, y ) = Tile
  next
end Load()

Draw()
  for each Tile in Map
    DrawImage( Tile.xPos, Tile.yPos, Tile.TileIndex )
  next
end Draw()


grüße
http://bl4ckd0g.funpic.de
 

biegl

BeitragSo, Sep 12, 2004 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kapier des noch net so gant wozu man ünerhaupt types braucht (hab mir aber schon ide ausführlich oblinehilfe dazu durchgelesen)
ich weiß zwar wie sie funcionieren aber ich weis nicht wozu man sie wirklich braucht.

ps:
Zitat:

Die Variablen "mapx" und "mapy" stellen doch nicht die maximalen Dimensionen der Map dar sondern enthalten die Position des zuletzt gesetzten Tiles, oder?


wie meinst du das kannst du mir das genauer erklären?

Hubsi

BeitragSo, Sep 12, 2004 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Denkst Du nicht auch langsam das diese Thematik noch etwas zu hoch für Dich ist? Versuch halt was einfacheres, sonst sehe ich schon die nächsten Probleme kommen: Kollisionserkennung, Pathfinding, KI, usw.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

DA

BeitragSo, Sep 12, 2004 11:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Types sind einfach nur Geil.
Wen du zum beispiel einen Spaceshouter machst, dann brauchst du ja gegner. Du könntest jetzt natürlich für jeden Gegner eine variable nehmen. Oder halt types, den die können ganz viele variablen Speichern.
Aber mal ehrlich, ich glaube nicht dat du dass mit den Types verstanden hast, sonst wüsstes du auch wofür die Gut sind.

Thx
DarkAngel
Deutscher Blitz Basic Chat
 

David

BeitragSo, Sep 12, 2004 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Zitat:

wie meinst du das kannst du mir das genauer erklären?


Code: [AUSKLAPPEN]

Function scroll()
mapx = (mx)
mapy = (my)
End Function


Viel genauer gehts auch nich oder? Zumindest dachte ich das du deinen eigenen Code verstanden hast...

Ich würd dir auch raten ein anderes, leicheres Projekt zu bekinnen, bis du die Thematik richtig drauf hast!
Sonst hat das alles keinen Sinn.

grüße
http://bl4ckd0g.funpic.de
 

biegl

BeitragSo, Sep 12, 2004 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
@hubsi
dann schlag mir doch mal was vor ..
was is den einfach?
ich hab gestern noch ein kleines billigspiel geschiieben

http://biegl.homeftp.net/PvP.rar

is wirklich billig.

ich weiß das man mit types mehere variablen speichern kann und eigenschaften.
 

David

BeitragSo, Sep 12, 2004 12:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Vorschläge:

PacMan
Breakout
Snake
Kongrun
Meteors
Space Invaders

Das is alles noch recht einfach...

grüße
http://bl4ckd0g.funpic.de
 

biegl

BeitragSo, Sep 12, 2004 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
da brauch ich aber trotzdem ne anleitung

z.B für snake
 

Jaramia

BeitragSo, Sep 12, 2004 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
biegl, ich dachte du bist sonen pro ôÔ
alu.art-FX.org
 

David

BeitragSo, Sep 12, 2004 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Dann ist das auch zu schwehr!
Fang mit was noch leichterem an.
Ein Textadventure? Versuch mal Grafiken zu laden und über den Bildschirm zu bewegen.
Versuch einen Mauscursor zu programmieren. Mach ein paar (text) Beispiele, im zusammenhang mit Types usw...

Wenn du dann wirklich was zustande bringst, ohne ständig hier nachfragen zu müssen, DANN wag dich an Spiele!

grüße
http://bl4ckd0g.funpic.de

Hubsi

BeitragSo, Sep 12, 2004 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
biegl hat Folgendes geschrieben:
@hubsi
dann schlag mir doch mal was vor
Einen Spaceshooter zum Bleistift. Da läßt sich dann auch sehr schön ersehen welche Vorteile Types haben können (Schüsse, Gegner) Wink Eine Universallösung stellen sie aber auch nicht immer dar, manches läßt sich sehr viel einfacher und besser mit Arrays lösen. Soviel nur nebenbei.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

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

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group