Wo ist der Fehler?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Progger93

BeitragFr, Okt 10, 2008 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
map(0,0)= feld 1,1
map(24,17) = feld 25,18
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT
 

mavi

BeitragFr, Okt 10, 2008 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
AppTitle "Map erstellen"

Graphics 640,480,16,1



Global gras = LoadImage("gras.bmp") ;1
Global wasser = LoadImage("wasser.bmp");2
Global sand = LoadImage("sand.bmp");3
Global player = LoadImage("player.bmp") ;player
MaskImage player, 255,255,255
;===================VARIABLEN=================
Global tile = 32
Global move = 1
Global tiley
Global tilex
Global px = 50
Global py = 50
Global scrollx,scrolly
;=============================================
Dim map(24,17)

Restore mapdata
For y=0 To 17
For x=0 To 24
   Read map(x,y)
Next   
Next

;=================================hauptschleife====================
Repeat


tilex = Floor((px+16+scrollx)/32) ; Rechnet die Pixel-Coordinaten in Tile Coordinaten um(+16 damit er die von der Mitte des Spielers ausgeht)
tiley = Floor((py+16+scrolly)/32) ; Rechnet die Pixel-Coordinaten in Tile Coordinaten um(+16 damit er die von der Mitte des Spielers ausgeht)


SetBuffer BackBuffer()
Cls
If KeyDown(200) Then ;OBEN
   If map(tilex,tiley-1) < 3 Then
   py = py-10
   scrolly = scrolly - 5
   EndIf
EndIf
If KeyDown(208) Then ;UNTEN
   If map(tilex,tiley+1) < 3 Then
   py = py+10
   scrolly = scrolly + 5
   EndIf
EndIf
If KeyDown(203) Then ;LINKS
   If map(tilex-1,tiley) < 3 Then
   px = px -10
   scrollx = scrollx - 5
   EndIf
EndIf
If KeyDown(205) Then ;RECHTS
   If map(tilex+1,tiley) < 3 Then
   px = px + 10
   scrollx = scrollx + 5
   EndIf
EndIf
drawmap()
DrawImage player, px,py

Text 0,0,tilex ; Zur Überprüfung werden oben links die Tile Coordinaten des Players augegeben
Text 0,10,tiley
Flip
Until KeyHit(1)
;===================SCHLEIFENENDE!=========================
Function drawmap()
For y = 0 To 17
For x = 0 To 24
   If map(x,y) = 1 Then
      DrawImage gras, x*32-scrollx, y*32-scrolly
      EndIf
   If map(x,y) = 2 Then
      DrawImage sand,x*32-scrollx,y*32-scrolly
   EndIf
   If map(x,y) = 3 Then
      DrawImage wasser, x*32-scrollx, y*32-scrolly
   EndIf
Next
Next
End Function

;DATA
.mapdata
Data 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
Data 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3



Warum werden mir hier nicht die TILECORDINATEN angezeigt was mach ich falsch?!

ozzi789

BeitragFr, Okt 10, 2008 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Für den Player =>
Code: [AUSKLAPPEN]
Text 0,0, "PX :"+px
Text 0,20,"PY :"+py


Für das Feld das er draufsteht =>
Code: [AUSKLAPPEN]

Text 0,40,map(px,py)


mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Blackside

BeitragFr, Okt 10, 2008 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein ,er hat px als pixelcoordinaten die er dann umwandelt also muss er tilex nehmen Wink
MFG Blackside
Hier sollte eigentlich eine Signatur stehen!

ozzi789

BeitragFr, Okt 10, 2008 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohuw Embarassed


Code: [AUSKLAPPEN]
ptx=px/höhedestiles
pty=py/längedestiles

text 0,0,"PTX :"+ptx+" PTY :"+pty




Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Blackside

BeitragFr, Okt 10, 2008 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
er hat das doch schon im code:
Code: [AUSKLAPPEN]
tilex = Floor((px+16+scrollx)/32)
tiley = Floor((py+16+scrolly)/32)

er muss sich nur die ausgeben lassen, aber ich glaube sein Problem ist,
das wenn er text macht garkein text kommt...
Hier sollte eigentlich eine Signatur stehen!

ozzi789

BeitragFr, Okt 10, 2008 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Zuerst mal den Backbuffer aus der schleife nehmn ><
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

BladeRunner

Moderator

BeitragFr, Okt 10, 2008 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Bitte keine Doppelposts, mavi. Benutz den Edit-Button.
2. ~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.
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

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group