 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
0oFreako0
Anmeldungsdatum: 17.12.2011 Beiträge: 114
|
Verfasst am: 30.09.2012, 09:16 Titel: Floor Mapper problem :( |
|
|
Hi ich wollte für mein kleines Game eine Art Floormapper Effekt einbauen.
Ich hatte mir einige Tuts schon angeschaut, bin aber daraus nicht wirklich schlau geworden vielleicht kann der ein oder andere mir was zu den Ablauf einer Floormapper Routine erklären.
Bisher benutze ich diesen code zum testen, der aber nicht richtig klappen will.
Code: |
#Include "fbgfx.bi"
Dim screen_width As Integer = 320
Dim screen_height As Integer = 240
ScreenRes screen_width,screen_height,32
'---------------------------------
Declare sub SetPixelFast (PosX as integer, PosY as integer, Farbe as uinteger)
Dim Shared As Byte Ptr framebuffer
Dim Shared pitch As Integer
ScreenInfo ,,,,pitch
'---------------------------------
Const sc = 128
'generate texture
DIM tex(63, 63) As Integer
FOR v As Integer = 0 TO 63
FOR u As Integer = 0 TO 63
tex(u, v) = u XOR v
NEXT
Next
'For coordinate system with the origin at the + sign,
'and up is +, and right is +, units in pixels.
Dim h As Integer = -20
CONST d = 100
CONST ytop = 0, ybot = 99
DIM lut(ytop TO ybot) As Double
FOR y As Integer = ytop TO ybot
lut(y) = CSNG(h) / (h - y)
NEXT
Dim p As Double
Dim v As Double
Dim u As Double
Dim vv As Double
Dim du As Double
'---------------------------------
Do
ScreenLock
Cls
FOR vofs As Integer = 0 TO 1000
p = 0
FOR y As Integer = ytop TO ybot
v = vofs + d * lut(y)
vv = v AND 63
u = -160 * lut(y)
du = lut(y)
FOR x As Integer = 0 TO 319
'PSET (x, y + 100), tex(u AND 63, vv)
SetPixelFast(x,y + 140,tex(u AND 63, vv))
u = u + du
p = p + 5
NEXT x
NEXT y
NEXT vofs
ScreenUnLock
Sleep 10
Loop Until InKey = "q"
End
'####################################################
sub SetPixelFast (PosX as integer, PosY as integer, Farbe as UInteger)
framebuffer = ScreenPtr + (PosY * pitch) + (PosX * 4)
Asm
mov eax,[framebuffer]
mov ebx,[Farbe]
mov dword Ptr [eax],ebx
End Asm
end Sub
'#################################################
|
|
|
Nach oben |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 30.09.2012, 15:27 Titel: Nachfrage |
|
|
Wenn ich den Code ausführe, erkenne ich in dunkelblau eine Art Pseudo-3d-Boden. Jetzt frage ich mich, wo genau drückt der Schuh?
Was genau hast du vor?
Ich kenne den Begriff Floormapper nicht, worum handelt es sich da? Um 2d/3d? Obenansicht/Seitenansicht? _________________ Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|