Allgemeine Fragen
Übersicht BlitzBasic Beginners-Corner
Hubsi |
Sa, Okt 09, 2004 12:20 Antworten mit Zitat |
|
---|---|---|
PlayMusic ist genau das richtige | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Flux |
Sa, Okt 09, 2004 19:30 Antworten mit Zitat |
|
---|---|---|
hm. bei mir kommt da aber kein sound, kein fehler, nix.
wenn ich aber keinen waitkey reinmach, sondern nur das playmusic, ist das programm 1sec. nach dem start schon fertig. PlayMusic("music2.mid") |
||
Hubsi |
Sa, Okt 09, 2004 19:34 Antworten mit Zitat |
|
---|---|---|
Poste mehr Code sonst kann man nur raten | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Chester |
Sa, Okt 09, 2004 19:36 Antworten mit Zitat |
|
---|---|---|
ist es in der Hauptschleife?
Wenn ja mach es vor die Hauptschleife |
||
Flux |
Sa, Okt 09, 2004 19:56 Antworten mit Zitat |
|
---|---|---|
uff, eigentlich ist das schon alles was in der datei steht
ich wollte ja nur mal versuchen ein midi abzuspielen wenn ich PlayMusic("sound.mp3") mach funzt es ja, aber bei midis is tote hose... |
||
Hubsi |
Sa, Okt 09, 2004 20:19 Antworten mit Zitat |
|
---|---|---|
Achso, aber midis in einem anderen Player abspielen geht? Ist die Datei im richtigen Ordner? Ansonsten weiß ich mir keinen Rat | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Flux |
Sa, Okt 09, 2004 20:26 Antworten mit Zitat |
|
---|---|---|
beides ja... | ||
Roseman |
Sa, Okt 09, 2004 22:18 Antworten mit Zitat |
|
---|---|---|
Flux hat Folgendes geschrieben: ehm, ich hätte jetzt nochmal 2 fragen:
zum einen kapiere ich diese funktion nicht: damit wir die übersicht verliehren, schränken wir das erstmal auf einen abschnitt ein (beim roten bin ich ratlos, bez. der funktionsweise): Zitat: If KeyDown(links) Then ;Falls links gedrückt wird If map(Player_pos_x /32,(Player_pos_y /16) /32)=0 Then ;wenn Spielerposition / 32, weil die Tiles 32 * 32 groß sind ;PosY +16 um die Mitte zu bestimmen ;If Bedinung wird nur ausgeführt, wenn kein Tile neben der Figur ist. Player_pos_x = Player_pos_x -4 ; X-Position -4 If Player_pos_x =< 0 Then Player_pos_x = 1 ;Rand überprüfen EndIf Code: [AUSKLAPPEN] map(Player_pos_x /32,(Player_pos_y /16) /32)=0
müsste eigentlich Code: [AUSKLAPPEN] map(Player_pos_x /32,(Player_pos_y +16) /32)=0
heißen. So, jetzt die Erklärung: Im Map Array werden die Daten einer Karte abgespeichert. Sagen wir jetzt einfach mal unterschiedliche Terrrainarten bekommen unterschiedliche Werte zugewiesen, z.B. Wasser=1, Erde=2, Wald=3. Dann könnte eine Karte so aussehen: 1111111111111111 1112222222222111 1112222333222111 1112222222222111 1111111111111111 16*5 Diese Karte ist 16*5 Felder groß. Um diese Werte irgendwo zu speichern, kannst du jetzt z.B. ein Array nehmen, daß entweder 16*5=80 Einträge hat, oder besser einfach ein 2D Array erstellen. Das sähe dann so aus: Beispiel_Karte(15,4) Dieses Array könnte man jetzt einfach mit For...Next Schleifen und den obigen Werten füttern, und hinterher auch wieder auslesen. Soviel zur Theorie, jetzt zu deinem konkreten Problem: map(Player_pos_x /32,(Player_pos_y +16) /32)=0 Du hast das Array Map(x,y), in welchem die Karte gespeichert ist. Du hast die Tilegröße 32. Du hast die Playerkoordinaten. Und du weißt, in welche Richtung sich der Playerbewegen soll. Um nun zu überprüfen, ob sich der Spieler überhaupt in die gewünschte Richtung bewegen darf (kann ja z.B. ein Fels im Weg sein), guckst du in deinem Array, ob an der Stelle der Karte passierbares Terrain ist. Wenn z.B an der Stelle 1,1 eine 1 steht (siehe meine Beispielkarte), dann ist dort Wasser und der Spieler kann die Terrain nicht passieren. Um nun die Bildschirmkoordinaten in deine Feldkoordinaten umzurechnen, brauchst du nur die Spielerposition(X und Y) durch die Tilegröße zu dividieren. (Player_pos_x /32) Wenn du zu den Playerkoords noch bestimmte Werte hinzuaddierst oder subtrahierst, dann kannst du die Felder um den Spieler herum prüfen. ((Player_pos_y + 16) / 32) Im Beispiel wird also geprüft, ob das Feld unterhalb des Spielers begehbar ist, also hierbei im Array eine 0 steht. Nur dann bewegt sich der Spieler nach unten. Kurz gesagt: Das Feld unterhalb des Spielers wird auf seinen Wert geprüft (soll 0 sein). Hoffe es war nicht zuviel Text Mfg Roseman |
||
Flux |
So, Okt 10, 2004 1:23 Antworten mit Zitat |
|
---|---|---|
danke, war eine sehr gute erklärung, jetzt check ichs )) | ||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group