Häuser in RPG einfügen

Übersicht BlitzBasic Allgemein

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

 

Bassmaster

Betreff: Häuser in RPG einfügen

BeitragDi, Feb 19, 2008 10:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich würde gerne in mein RPG ein paar Häuser einfügen.

Die Häuser müssen erst mal nicht betretbar sein es geht mir im moment erst einmal nur darum verschieden große Grafiken in das Spiel einzufügen.


Nur leider habe ich 0 ahnung wie ich das machen soll.


Das einzigste was mir einfällt wäre das Komplette Tileset zu vergrößern und dann die einzelnen Grafiken darein einfach kleiner machen oder eben halt größer und dann mit Maskimage den Hintergrund zu entfernen.

Aber wäre diese vorgehensweise sinnvoll oder er nicht ?



Hier ist der Source Code:



Code: [AUSKLAPPEN]

Graphics 640,480,32,0

Global Tileset = LoadAnimImage("tileset1.png" ,32,32,0,8)
Global char      = LoadImage  ("char2.png")

MaskImage char ,255,255,255

;-----------------------------------
Global ppx = 10*32 ;X-Position des Charackters
Global ppy = 7*32  ;Y-Position des Charackters

Global py = 7      ;Kollisions X-Position des Charackters
Global px = 10     ;Kollisions Y-Position des Charackters

Global scrolly     ;Die Variable fr die ScrollY-Position
Global scrollx     ;Die Variable fr die ScrollX-Position
;--------------------------------




Dim map(25,25)

;26 nach rechts   ;26 nach unten
Data 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5

Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,6,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 1,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,7,1,1, 0,0,0,0,0, 5

Data 5,5,5,5,5, 5,5,4,5,5, 5,5,4,5,5, 5,5,5,5,5, 5,5,5,5,5, 5
Data 5,0,0,0,0, 0,0,2,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5

Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5

Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5

Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5
Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5

Data 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5




For x = 0 To 25
For y = 0 To 25
Read map(x,y)
Next
Next



Repeat
SetBuffer BackBuffer()
Cls


For x = 0 To 25
For y = 0 To 25

DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y)  ;map malen
Next
Next

DrawImage char,ppx-scrollx,ppy-scrolly   ;figur male



;----Bewegungsroutinen----------------------------------------------------------------------------------

Print "------"
Print "px"
Print px
Print "------"

Print "------"
Print "py"
Print py
Print "------"

Print "------"
Print "ppx"
Print ppx
Print "------"

Print "------"
Print "ppy"
Print ppy
Print "------"

Select move
 
 ;links
   Case 1
      ;Spielerposition ndern
      scrollx = scrollx - 2
      ppx = ppx - 2
      ;Variable, die zhlt wie weit der Spieler bereits bewet wurde
      counter=counter+1
      If counter = 16 Then
         px = px - 1
         counter = 0
         move = 0
      EndIf
   
;Rechts
   Case 2
      ;Spielerposition ndern
      scrollx = scrollx + 2
      ppx = ppx + 2
      ;Variable, die zhlt wie weit der Spieler bereits bewet wurde
      counter = counter+1
      If counter = 16 Then
         px = px + 1
         counter = 0
         move = 0
      EndIf


;runter
Case 3
    ;Spielerposition ndern
      scrolly = scrolly + 2
      ppy = ppy + 2
      ;Variable, die zhlt wie weit der Spieler bereits bewet wurde
      counter = counter+1
      If counter = 16 Then
         py = py + 1
         counter = 0
         move = 0
      EndIf


;rauf
Case 4
    ;Spielerposition ndern
      scrolly = scrolly - 2
      ppy = ppy - 2
      ;Variable, die zhlt wie weit der Spieler bereits bewet wurde
      counter = counter+1
      If counter = 16 Then
         py = py - 1
         counter = 0
         move = 0
      EndIf

End Select

;Cursor Rechts
If KeyDown(205) Then
   ;Kollision checken, wie ihr es schon kennt
   If map(px+1,py) < 3 Then
      ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist
      ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt
      If move=0 Then
         ;die Scrollroutine move=2   (  Case 2 ) wird aufgerufen
         move = 2
      End If
   End If
End If

;Cursor Links
If KeyDown(203) Then
   ;Kollision checken, wie ihr es schon kennt
   If map(px-1,py) < 3 Then
      ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist
      ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt
      If move=0 Then
         ;die Scrollroutine move=1    ( Case 1 ) wird aufgerufen
         move = 1
      End If
   End If
End If


;runter key
   If KeyDown(208) Then
      If map(px,py+1) < 3 Then
         If move = 0 Then
         move = 3           
         End If
      End If
   End If




;rauf key
   If KeyDown(200) Then
      If map(px,py-1) < 3 Then
         If move = 0 Then
         move = 4           
         End If
      End If
   End If



;-------funktionen----

hebel_trigger()
npc_vk()
quest_npc()
      
   
      
      
Flip
Forever





die funktionen

Code: [AUSKLAPPEN]

Function hebel_trigger()
   If KeyHit(57) Then
   ;und die spielerposition auf den hebel-tile befindet
   If map(px,py) = 2 Then
   ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles
   ;umgewandelt
      For y = 0 To 25
         For x = 0 To 25
            If map(x,y) = 4 Then
            map(x,y) = 0
   End If
      Next
         Next
      End If
         End If    
End Function   



Code: [AUSKLAPPEN]

Function npc_vk()


If KeyDown(56) Then

If px = 3 Then
   If py = 8 Then
      
      FlushKeys
      npc = Input ("NPC: Was wollen sie tuen: (1) Wiedergehen (2) Kaufen:  ")
      
      FlushKeys
         If npc = 1 Then
             FlushKeys
         Print "NPC: Cya"
         e=Input ("")
         End If
      
      
      
      If npc = 2 Then
      
      
         Print  "(1) Schwert kaufen"
         verkaufen=Input ("NPC: Was wollen sie kaufen: ")
      End If
      
      
      If verkaufen=1 Then
         
         Print "User: Schwert gekauft"
         
         FlushKeys
         e = Input("")
      
      
      End If
      

   

      
End If       
   End If
      End If
           

End Function







Code: [AUSKLAPPEN]

Function quest_npc()

If KeyDown(56) Then


If px = 5 Then
   If py = 18 Then
      
   
      npc = Input ("NPC: Hallo Quest(1) , (2) Quest ")
      
   
         If npc = 1 Then
               FlushKeys
            Print "NPC: Finde die Truhe"
            e=Input ("")
            End If
            
         
End If
   End If
      End If
   
         
   

End Function

SpionAtom

BeitragDi, Feb 19, 2008 12:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Deinen Code hab ich mir nicht angeschaut, aber die "normale" Vorgehensweise bei sowas ist es doch, die großen Objekte (Häuser, Bäume, Berge,...) in ihre Tiles aufzuteilen, sodass am Ende zb ein Haus aus 7x5 Tiles besteht.

user posted image
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

Bassmaster

BeitragDi, Feb 19, 2008 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie genau funktioniert das dann O_o

Soll ich etwa hintermein Tileset die ganzen einzelnen Tiles von dem Haus setzen Shocked

Dottakopf

BeitragDi, Feb 19, 2008 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ja natürlich wie denn sonst ^^ und dan einfach das haus tile für tile zusammen klicken... und um die außenmauern setzt halt dan die killisionen und fertig

mfg Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Bassmaster

BeitragDi, Feb 19, 2008 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zusammen klicken das wäre schön. ^^

Aber ich füge gerade mit aller mühe die einzelenen Zahlen von dem Tile darein ^^

Dummer weise hab ich da was falsch eingefügt jetzt kann ich das Haus mit Paint nochmal wieder zusammen Puzzeln -.-







Zusammen klicken das wäre schön. ^^

Aber ich füge gerade mit aller mühe die einzelenen Zahlen von dem Tile darein ^^

Dummer weise hab ich da was falsch eingefügt jetzt kann ich das Haus mit Paint nochmal wieder zusammen Puzzeln




Da ist mir gerade eingefallen das bei dem RPG Tutorial von der Robsite HP beschrieben wurde wie man sich einen Map Editor machen kann.

Ich hab da gerade mal eine Map mit erstellt und abgespeichert aber irgendwie weiss ich nicht was ich mit der abgespeicherten map machen soll.


Das ist auch eine seltsame Datei ich hab die mal mit dem Editor geöffnet und da stand dann das hier drin:

Code: [AUSKLAPPEN]

1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1





und so geht das dann mit den einsen ewig weiter^^

Ich denk mal ich muss dann in meinem Source Code das DATA Feld löschen und dort eine Funktion einbauen die die map lädt welche ich mit dem Editor erstellt habe.

Oder liege ich da falsch ?
  • Zuletzt bearbeitet von Bassmaster am Di, Feb 19, 2008 14:16, insgesamt einmal bearbeitet
 

Bassmaster

BeitragDi, Feb 19, 2008 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach mist verklickt sry für Doppel Post Embarassed

Zusammen klicken das wäre schön. ^^

Aber ich füge gerade mit aller mühe die einzelenen Zahlen von dem Tile darein ^^

Dummer weise hab ich da was falsch eingefügt jetzt kann ich das Haus mit Paint nochmal wieder zusammen Puzzeln




Da ist mir gerade eingefallen das bei dem RPG Tutorial von der Robsite HP beschrieben wurde wie man sich einen Map Editor machen kann.

Ich hab da gerade mal eine Map mit erstellt und abgespeichert aber irgendwie weiss ich nicht was ich mit der abgespeicherten map machen soll.


Das ist auch eine seltsame Datei ich hab die mal mit dem Editor geöffnet und da stand dann das hier drin:

Code: [AUSKLAPPEN]

1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1





und so geht das dann mit den einsen ewig weiter^^

Ich denk mal ich muss dann in meinem Source Code das DATA Feld löschen und dort eine Funktion einbauen die die map lädt welche ich mit dem Editor erstellt habe.

Oder liege ich da falsch ?
 

Bassmaster

BeitragDi, Feb 19, 2008 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Bassmaster hat Folgendes geschrieben:
Ach mist verklickt sry für Doppel Post Embarassed

Zusammen klicken das wäre schön. ^^

Aber ich füge gerade mit aller mühe die einzelenen Zahlen von dem Tile darein ^^

Dummer weise hab ich da was falsch eingefügt jetzt kann ich das Haus mit Paint nochmal wieder zusammen Puzzeln




Da ist mir gerade eingefallen das bei dem RPG Tutorial von der Robsite HP beschrieben wurde wie man sich einen Map Editor machen kann.

Ich hab da gerade mal eine Map mit erstellt und abgespeichert aber irgendwie weiss ich nicht was ich mit der abgespeicherten map machen soll.


Das ist auch eine seltsame Datei ich hab die mal mit dem Editor geöffnet und da stand dann das hier drin:

Code: [AUSKLAPPEN]

1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1





und so geht das dann mit den einsen ewig weiter^^

Ich denk mal ich muss dann in meinem Source Code das DATA Feld löschen und dort eine Funktion einbauen die die map lädt welche ich mit dem Editor erstellt habe.

Oder liege ich da falsch ?



Das mit dem Map laden klappt jetzt aber nun funktioniert halt die Kollisions abfrage nicht mehr Confused
Und die Figur bewegt sich irgendwie seltsam wenn man eine Taste drückt z.b. nach links und wenn man die Taste wieder los lässt dann läuft die Figur automatisch noch ca. 2-3 Pixel weiter -.-

Hat wer zufällig eine Tutorial zu solch einem Thema ?
 

Lador

BeitragDi, Feb 19, 2008 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Robsite, Google...Mehr fällt mir nicht an Tutorials ein.

Wie wäre es, wenn du ein (oder mehrere Tiles) z.B. in einem bestimmten Layer freigibst, auf denen der Spieler laufen kann? Wie meinst du er läuft noch ein paar Pixel weiter? Hast du Pixel*Tile oder wie? Dann ist das doch genau das, was du willst. Und ansonsten machste halt einfach, wenn eine Pfeiltaste gedrückt wird, dann bewegt er sich vielleicht zwei Pixel.

MFG Lador

D2006

Administrator

BeitragDi, Feb 19, 2008 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
~GESCHLOSSEN~


Es gibt so einige Tutorials, die das eigentlich simple Vorgehen hierzu erörtern. Noch dazu genießt du hier keinen Anfängerschutz mehr. Und obendrein noch ein Tripplepost. Heut ist ein guter Tag zum schließen.
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

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


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group