RPG in BlitzMAX

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: RPG in BlitzMAX

BeitragMo, Feb 26, 2007 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
es wird sicherlich möglich sein in Max ein RPG game zu codden. wie fängt man am besten an oder gibt es schon tutorials?

versteht meine posts nicht falsch, die ich bisher habe , ich möchte nur erst mal so zimlich jeden befehl genutzt haben Very Happy darum komme ich immer mit neuen sachen an xD
 

Dreamora

BeitragDi, Feb 27, 2007 0:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Anfang ist der gleiche wie auch bei den alten Blitz Sprachen.
Kannst also insofern deren Tutorials nehmen nur das du dir halt in BM zusätzlich Gedanken machen musst wie der Code in BM aussehen muss da die Art wie die alten Blitz arbeiteten in BM sehr langsam ist verglichen mit der richtigen Art zu programmieren.

Allgemeine Tutorials zu BM findest du in der FAQ & Tutorial Sektion. Speziel den verweis auf Assaris tutorials möchte ich sehr ans herz legen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragDi, Feb 27, 2007 8:34
Antworten mit Zitat
Benutzer-Profile anzeigen
mapeditor.de.vu

da haste schon ne unheimlcih gute Mapengine!
between angels and insects

Mathias-Kwiatkowski

BeitragMi, Feb 28, 2007 1:04
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh wie findet ihr den code... am anfang stottert er... kp woran des liegt... also am anfang wenn man scrollt nach rechts z.b.
Code: [AUSKLAPPEN]
Graphics 800,600,32

Global WieseImage:TImage=LoadAnimImage( "Data\wiese.bmp",32,32,0,2)

Global WeltList:TList = New TList
Global Welt:TWelt
Type TWelt
   Field X:Int
   Field Y:Int
   Field Ico:Int

   Function Create(X:Int,Y:Int,ico:Int)
      Welt:TWelt = New TWelt
      Welt.x = x
      Welt.Y = Y
      Welt.Ico = Ico
      
      
      WeltList.Addlast Welt
   End Function
EndType

For x=0 To 4000 Step 32
   For y=0 To  3000 Step 32
      TWelt.Create(X,Y,Rnd(2))
   Next
Next

Global BefindenX=0
Global BefindenY=0

Repeat   
   Cls
   gesammtY=0
   gesammtX=0
   For Welt:TWelt = EachIn WeltList
      If Welt.X=>BefindenX And Welt.Y=>BefindenY Then
         If gesammtY=18 Then gesammtX=gesammtX+1
         If gesammtX=25 Then Exit
         DrawImage WieseImage,Welt.X-BefindenX,Welt.Y-BefindenY,Welt.Ico
         gesammtY=gesammtY+1
      EndIf
   Next
   
   If KeyDown(KEY_RIGHT) Then BefindenX=BefindenX+32
   If KeyDown(KEY_LEFT) Then BefindenX=BefindenX-32
   If KeyDown(KEY_DOWN) Then BefindenY=BefindenY+32
   If KeyDown(KEY_up) Then BefindenY=BefindenY-32
   
   If MouseDown(1) Then End
   Flip
Forever

Markus2

BeitragDo, März 01, 2007 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Cls könntest du dir evtl. sparen .
Beim anzeigen fehlt die Prüfung des unteren sichtbaren Bereichs .


x1=Links -32
y1=Oben-32
x2=Rechts+32
y2=Unten+32
For Welt:TWelt = EachIn WeltList
If (Welt.X=>X1 And Welt.Y=>Y1) and (Welt.X<X2 And Welt.Y<Y2) Then


für 32 würde ich eine Constante nehmen

Jolinah

BeitragDo, März 01, 2007 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier würd ich ein Array nehmen. Momentan gehst du jeden Schleifendurchlauf alle Tiles durch die es gibt und fragst per If ab ob es in Frage kommt. Mit 'nem Array kann man schon vorher bestimmen welche Tiles in Frage kommen zum Zeichnen, so dass man dann nicht alle durchgehen muss.

Du kannst ja auch ein Type-Array machen:

Code: [AUSKLAPPEN]
Type TTile
  Field Layer1:Int
  Field Layer2:Int
  Field Daten:String
End Type

Local Tiles:TTile[,] = new TTile[200, 100]

For Local y:Int = 0 to 99
  For Local x:Int = 0 to 199
    Tiles[x,y] = new TTile
    Tiles[x,y].Layer1 = 1
    Tiles[x,y].Layer2 = 2
    Tiles[x,y].Daten = "changelevel=level2.map"
  Next
Next


Beim Zeichnen dann erst bei nem bestimmten Wert anfangen:
Code: [AUSKLAPPEN]
For Local y:Int = StartY To EndeY
  For Local x:Int = StartX To EndeX
    DrawImage Tileset, x * 32 - ScrollX, y * 32 - ScrollY, Tiles[x,y].Layer1
    DrawImage Tileset, x * 32 - ScrollX, y * 32 - ScrollY, Tiles[x,y].Layer2
  Next
Next


Angenommen StartX ist 30 und EndeX 30 + Anzahl Tiles auf dem Bildschirm, und bei Y das Selbe, dann gehst du nur soviele Tiles durch wie auf dem Bildschirm maximal angezeigt werden können.
 

Dreamora

BeitragDo, März 01, 2007 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Alternativ: Die Mapengine von mapeditor.de.vu nehmen. die aktuellste version für BM sollte eigentlich im Module Board zu finden sein.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragDo, März 01, 2007 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
oder auch hier: https://www.blitzforum.de/mapeditor/
between angels and insects
 

Barbapapa

BeitragSa, März 17, 2007 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
wie wärs denn hiermit? Ist zwar französisch und mit PureBasic aber trotzdem hilfreich..
http://www.games-creators.org/...r_un_RPG2D

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group