RpG ( nächster lvl oder kleines window öffnen )
Übersicht

![]() |
kaiBetreff: RpG ( nächster lvl oder kleines window öffnen ) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alo ich hab mir mal vorgenommen ein kleines RpG Spiel zu programmieren aber ich bekomme das nicht hin den neuen lvl zu laden !!
Ich habe für jeden lvl ne exe erstellt aber dann hat man ja nacher unten in der Taskleite 100derte von programmen geöffnet !! Also lautet meine Frage wie ich das besser machen kann !! Und wie ich ein Kleines zusätzliches window öffnen kann z.B. für einen shop in welchem man Waffen kaufen kann !! |
||
Lebe deine Träume .. aber Träume nicht dein Leben !! |
![]() |
X-Calibur |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
das mit den mehreren exen schlag dir mal schnell aus dem Kopf da bereits bei gleichzeitiger Ausführung von nur 2 bb.exen beide stark verlangsamt werden. Pack am besten jedes Level in eine eigene Funktion. Die Variablen die du im Gesammten Programm benötigst deklarierst du als Global. Idealerweise werden Leveldaten aus z.B. einer Textdatei nachgeladen. mfg cali |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Kai: Könntet du mal sagen wie deine Level denn so aufgebaut sind? Einfach Tilemaps oder wie?
@ X-Calibur: Jedes neue Level in eine eigene Funktion? Hört sich auch sehr merkwürdig an. Vielleicht wäre es am einfachsten, wenn du, falls du ein Level wie eine Tilemap hast, du ein globales Dim-Feld hast, und dir drei Funktionen schreibst: Function Level_Load(Pfad$) Damit lädst du die Daten aus einer Datei deren Format du dir vorher genau ausgedacht hast in dein Dim Feld u.s.w. Function Level_Process() Damit lässt du alle wichtigen Prozesse des Levels berechnen, eventuell machst du das auch nicht mit nur einer Funktion sondern hast das in deine Program- oder Spielschleife integriert. Function Level_Kill() Damit löscht du das Level wieder, gibst alle Grafiken die es benötigt hat frei e.t.c. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
kai |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erst mal Danke für die Antworten !!
Ich hab mal den ersten lvl zum durchgucken hingeklatscht ^^ Code: [AUSKLAPPEN] Graphics 640,480,16,1
Global char Global Name$ Global ch1 Global ch2 tileset = LoadAnimImage("F:\Blitz3D\Survivor\nu\gfx\sch.bmp",16,16,0,15) c1 = LoadImage("gfx\Nr.2.bmp") c2 = LoadImage("gfx\Nr.3.bmp") char = LoadAnimImage("F:\Blitz3D\Survivor\nu\gfx\player1.bmp",16,16,0,8) ch1 = LoadAnimImage("F:\Blitz3D\Survivor\nu\gfx\player2.bmp",16,16,0,8) ch2 = LoadAnimImage("F:\Blitz3D\Survivor\nu\gfx\player3.bmp",16,16,0,8) m = LoadAnimImage("F:\Blitz3D\Survivor\nu\gfx\m.bmp",16,16,0,1) ;px Variable des Spielers px = 12 ;py Variable des Spielers py = 12 ;Direckt move = 1 damit die Figur auch am Anfang sichbar ist move = 1 Dim map(40,40) ;Legende: ; 0 = Wiese Data 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 Data 6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,1,1,0,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,1,1,0,2,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,1,1,0,0,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,4 Data 6,6,1,1,0,0,8,8,8,8,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,4 Data 6,6,1,1,0,0,8,8,0,0,0,0,0,0,0,8,3,0,0,8,0,0,8,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,1,1,0,0,0,0,0,0,0,0,0,0,8,8,8,0,0,8,0,0,8,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,1,1,0,0,0,0,0,0,0,0,0,8,8,8,8,0,0,8,0,0,8,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,0,0,8,0,0,8,0,0,0,0,1,1,0,0,0,0,0,8,0,0,0,0,0,8 Data 6,6,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,0,0,8,0,0,8,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,8,8,8,8,8,0,0,0,1,1,8,8,8,0,0,8,0,0,8,0,0,0,0,1,1,0,8,0,8,0,8,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,8,0,0,0,1,1,8,8,8,0,0,0,0,0,8,0,0,0,0,1,1,0,8,8,8,0,8,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,8,0,0,0,1,1,8,8,8,0,0,0,0,0,8,0,0,0,0,1,1,0,8,0,8,0,8,0,0,0,0,0,8 Data 6,6,8,8,8,8,0,0,8,8,0,0,1,1,8,8,8,8,8,8,8,8,8,0,0,0,0,1,1,0,12,12,12,12,12,12,12,0,0,0,8 Data 6,6,8,8,8,8,0,0,8,0,0,0,1,1,8,8,8,8,8,8,8,8,8,0,0,0,0,1,1,0,9,11,9,9,9,11,9,0,0,0,8 Data 6,6,8,8,8,8,0,0,8,0,0,0,1,1,8,8,8,8,8,8,8,8,0,0,0,0,0,1,1,0,9,9,9,10,9,9,9,0,0,0,8 Data 6,6,8,8,0,0,0,0,8,0,0,0,1,1,0,8,8,8,8,8,8,0,0,0,0,0,0,1,1,1,1,1,1,1,8,0,0,0,0,0,8 Data 6,6,8,8,0,0,0,0,8,0,0,0,1,1,0,0,8,8,8,8,0,0,0,0,0,0,0,1,1,8,8,8,8,8,8,0,0,0,0,0,8 Data 6,6,0,0,0,0,8,8,8,0,0,0,1,1,0,0,0,8,8,8,0,0,0,0,0,0,0,1,1,8,8,0,0,0,8,0,0,0,0,0,8 Data 6,6,0,0,0,0,8,8,0,0,0,0,1,1,0,0,0,0,8,0,0,0,0,0,0,0,0,1,1,8,0,0,0,8,0,0,0,0,0,0,8 Data 6,6,0,0,8,8,8,8,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,8,8,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,8,8,8,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,8,8,8,0,0,8,8,8,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,8,8,8,8,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,8,8,8,8,8,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,8,0,0,8,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,8,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,8,0,0,0,0,0,0,8,0,0,0,8,0,8,8,8,8,0,8,8,8,8,0,8,0,8,8,8,8,0,0,0,0,8,8,0,8 Data 6,6,0,0,8,0,0,0,0,0,0,8,8,0,8,8,0,8,0,0,8,0,8,0,0,8,0,0,0,8,0,0,8,0,0,0,0,0,8,0,8 Data 6,6,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,8,0,0,8,0,8,0,0,8,0,8,0,8,0,0,8,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,8,8,8,8,0,8,8,8,8,0,8,0,8,0,0,8,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,8,0,0,8,0,8,8,0,0,0,8,0,8,0,0,8,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,8,0,0,8,0,8,0,8,0,0,8,0,8,0,0,8,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,8,0,0,8,0,8,0,0,8,0,8,0,8,8,8,8,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 Data 6,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 For y = 0 To 40 For x = 0 To 40 Read map(x,y) Next Next Repeat SetBuffer BackBuffer() Cls ;ESC-Taste zum Beenden If KeyDown(1) Then End For y = 0 To 40 For x = 0 To 40 DrawBlock tileset,x*16-scrollx,y*16-scrolly,map(x,y) Next Next ;Spieler ;##################################################################################### Dim feld(4) feld(1) =0 feld(2) =2 feld(3) =4 feld(4) =6 ;einfach wenn tastendruck dann If KeyDown(208) Then ; runter ;frame des Spielers festlegen f = feld(1) : feld(1) = feld(1) + 1 ;wenn die position des spielers (px,py+1) mit einem tile kollidiert, dass in der array einen höeren ;wert als 4 hat geht der if-satz nicht weiter und die figur bleibt stehen ;die 4 ist gleichzeitig das frame des tilesets If map(px,py+1) < 6 Then ;die figur wird um ein tile bewegt py = py + 1 : VWait :VWait : VWait ;die variable scrollx/y wird verändert und beim nächsten mal ;wenn die hauptschleife durchlaufen wird. malt man die karte halt ;an der position x/y-scrollx/y gemalt ;achja und - 32 weil die figur sich auch nur um 32 pixel ;bewegt. scrolly = scrolly + 16 ;überträgt die spielerkoordinaten auf die x und y variablen der map und malt unsere figur move = 1 End If End If If KeyDown(200) Then ;nach oben f = feld(4) : feld(4) = feld(4) + 1 If map(px,py-1) < 6 Then py = py - 1 : VWait :VWait : VWait scrolly = scrolly - 16 move = 1 : End If End If If KeyDown(203) Then f = feld(3) : feld(3) = feld(3) + 1 If map(px-1,py) < 6 Then px = px - 1 : VWait :VWait : VWait scrollx = scrollx - 16 move = 1 End If End If If KeyDown(205) Then f = feld(2) : feld(2) = feld(2) + 1 If map(px+1,py) < 6 Then px = px + 1 : VWait :VWait : VWait scrollx = scrollx + 16 move = 1 End If End If ;Schalter ;##################################################################################### ;wenn man die leertaste drückt If KeyHit(57) Then ;und die spielerposition auf den hebel-tile befindet If map(px,py) = 3 Then ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles ;umgewandelt Locate 200,200 Print "Und es öffnete sich eine Tür !!" Delay 2000 For y = 0 To 40 For x = 0 To 40 If map(x,y) = 10 Then map(x,y) = 5 End If Next Next End If End If ;Ggegner ; #################################################################################### ;Screeenshooot ;#################################### ;wenn man die taste drückt If KeyHit(88) Then ; F 12 SaveBuffer(FrontBuffer(),"shot" + Str$(Shot) + ".bmp") Shot = Shot + 1 For y = 0 To 40 For x = 0 To 40 Next Next EndIf ;wenn move = 1 dann übertrage x auf px*32(*32 da die array so klein ist bei *1 oder *2 kommt schnell ;(array index out of bouds) und das wollen wir nicht wenn die koordinaten des spielers mit den ;koordinaten der map in verbindung gebracht worden sind, malen wir die figur ;auf der position x,y wir wollen die figur ja mit der map kollidieren lassen und nicht mit dem Nichts ;und da die map nun mal in die x und y koordinaten gespeichert wurden müssen wir das auch so ;berücksichtigen. If move = 1 Then x = px * 16: y = py * 16:DrawImage char,x-scrollx,y-scrolly,f: Delay 50 ;Level1 ;########################################################## If map(px,py) = 4 Then Locate 260,185 Print "Level 1" Locate 260,200 Print "Das Tahl der beginner " Delay 6000 ExecFile "Level\Teil1.exe" End If ;Haus ;########################################################### If map(px,py) = 5 Then Locate 260,185 Print "Shop off Novice" Locate 260,200 Print "Alles End billig mann ^^" Delay 6000 ExecFile "Level\shop.exe" End If ;flippen und zum anfang zurück Flip Forever |
||
Lebe deine Träume .. aber Träume nicht dein Leben !! |
![]() |
kai |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Firstdeathmaker :
Ach ja und kannst du mir fielleicht mal ein Beispiel mit dem lvl laden schicken ich weis net aber ich blick da net durch !! Hab mir jetzt extra schon son Buch gekauft und das ist da net drinnen erklärt !! |
||
Lebe deine Träume .. aber Träume nicht dein Leben !! |
![]() |
kai |
![]() Antworten mit Zitat ![]() |
---|---|---|
MEinst du das so ??
Graphics 640,480,16,1 SetBuffer BackBuffer() ; Laden der Dateien ;######################################### tileset = LoadAnimImage("F:\Blitz3D\Survivor\nu\gfx\sch.bmp",16,16,0,15) ; Level Laden ;######################################### Dim map(40,40) leveldatei = ReadFile("F:\Blitz3D\lvl.txt") For y = 0 To 40 A$ = ReadLine(leveldatei) For x = 0 To 40 Level$(y,x) = Mid$ ( A$,x+1,1) Next Next CloseFile leveldatei ; Level zeichnen ;########################################## Repeat For y = 0 To 40 For x = 0 To 40 Select Level$(y,x) Case "1" DrawBlock tileset,x*16-scrollx,y*16-scrolly,0,5,16,16 Case " " DrawBlock tileset,x*16-scrollx,y*16-scrolly,0,0,16,16 End Select Next Next Flip Until KeyHit(1) End |
||
Lebe deine Träume .. aber Träume nicht dein Leben !! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group