Eigene Map erstellen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

bbprogger

Betreff: Eigene Map erstellen

BeitragFr, Jul 11, 2008 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich würde gerne für mein Spiel eine Map Datei erstellen.
Diese sollte einfach nur die Zahlen von 1 bis 9 enthalten welche dann im Hauptprogramm stehen.

Das Problem:
Meine Sprites heißen SP1 bis SP9
Wenn ich jetzt in der Datei 123449 speichere
müsste im Programm vorne ein SP angehängt werden damit der DrawImage
Befehl es anzeigt.
Hier mein Code
Code: [AUSKLAPPEN]
Graphics 1280,1024,32,1
Global SP1;UD Way
Global SP2;LR Way
Global SP3;LU Kurve
Global SP4;RU Kurve
Global SP5;UR Kurve
Global SP6;UL Kurve
Global SP7;Kreuz
Global SP8;Start
Global SP9;Ziel
Global BG;Background
Global px
Global py
px=32:py=32
SetBuffer BackBuffer()

LoadPic()
While Not KeyHit(1)
Cls
DrawImage BG,1,1
DrawMap()
Rect px,py,10,10,0
If KeyDown(200)
   py=py-1
EndIf
If KeyDown(208)
   py=py+1
EndIf
If KeyDown(203)
   px=px-1
EndIf
If KeyDown(205)
   px=px+1
EndIf
Flip
Wend
End

Function LoadPic()
SP1=LoadImage ("images\SP1.bmp")
SP2=LoadImage ("images\SP2.bmp")
SP3=LoadImage ("images\SP3.bmp")
SP4=LoadImage ("images\SP4.bmp")
SP5=LoadImage ("images\SP5.bmp")
SP6=LoadImage ("images\SP6.bmp")
SP7=LoadImage ("images\SP7.bmp")
SP8=LoadImage ("images\SP8.bmp")
SP9=LoadImage ("images\SP9.bmp")
BG=LoadImage ("images\BG.bmp")
End Function
Function DrawMap()
;!!Hier müsste der Code hin!!
End Function

Danke,

Xeres

Moderator

BeitragFr, Jul 11, 2008 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Lässt sich ganz einfach mit zwei Arrays lösen; mit Dim deklarierst du z.B. map() und SP() in den passenden größen - wie es dir am besten in deine Strukur passt. Die Zahlen aus der Datei in den Array einlesen (ReadInt z.B.) und in der Zeichenroutine dann alles Map Koordinaten durchgehen und zeichnen: Drawimage, SP( map(X, Y) ), Xpos, Ypos.
Wenn die Sprites alle gleich groß sind, würde es sich auch anbieten alle in eine Bilddatei zu kopieren und LoadAnimImage zu verwenden und den Parameter Frames zu verwenden...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Blitzprogger

BeitragSa, Jul 12, 2008 11:11
Antworten mit Zitat
Benutzer-Profile anzeigen
was ich auch noch festgestellt habe: wenn du Code: [AUSKLAPPEN]
function loadpics()
sp1 = loadimage...
end function
schreibst werden die variablen der bilder (sp1 e.t.c.) alle als local deklariert. das heisst dass sie im hauptproggramm oder in anderen funktionen nicht verfügbar sind. mache am anfang entweder, wie xeres bereits gesagt hat, ein dim oder lokalisiere sie mit global, was ich dir aber nicht empfehlen würde.

mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink

BladeRunner

Moderator

BeitragSa, Jul 12, 2008 11:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest Dir seinen ganzen Code anschauen, Blitzprogger, dann wüsstest Du dass sie Global definiert sind.

Und Xeres Antwort ist mehr als vollständig.
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
 

bbprogger

BeitragFr, Jul 18, 2008 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Xeres Antwort hat mir sehr geholfen.
Very Happy Very Happy Very Happy
Wenn ich aus dem Urlaub zurück bin
werde ich sie ausprobieren.
 

bbprogger

BeitragSo, Jul 27, 2008 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich Code: [AUSKLAPPEN]
DIM  map(1 TO 7)

verwende bekomme ich die Meldung "Erwarte ´)`"
Wie kann ich dies umgehen??
 

ChristianK

BeitragSo, Jul 27, 2008 12:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei Dims kannst du keinen Wertebereich angeben. Das Array beginnt immer bei 0. Dim
Wenn du 7 Einträge brauchst -> Code: [AUSKLAPPEN]
Dim array(6)
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

bbprogger

BeitragMi, Jul 30, 2008 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke!!!

Very Happy Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group