Nein, nein. Bei mir ist's halt so dass ich nicht jeden Tag Zeit habe etwas zu probieren(proggen). Ich hatte die letzten 2 Tage gar keine Zeit mehr etwas zu tun.
Das heisst, man zerbricht sich den ganzen Tag den Kopf darüber wie man es lösen könnte und kanns trotzdem nicht probieren, weil einfach oft die Zeit fehlt.
Es ist mir auch bewusst, das ich so nicht sehr weit kommen werde mit programmieren, aber ich werde mein Bestes geben und lerne gerne weiter dazu. Ich bin
aber froh, dass es so gute Foren gibt wie dieses, wo man immer wieder Fragen kann und einem wirklich super weitergeholfen wird.
Zum Code, da kannst du eigentlich mein erstes Posting nehmen und die Korrektur von @Stargate einfügen. Oder ich könnte den Code einfach nochmals posten.
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"")
UsePNGImageDecoder()
Global mapHeight.l = 29
Global mapWidth.l = 35
Global MapX.l = 24
Global MapY.l = 24
Global posX.l = 60
Global posY.l = 60
Global gposX.l =804
Global gposY.l = 60
Global i
Global k
Global gi
Global gk
Global speed = 2
Global points = -5
#TileSize = 24
#playerWidth = 24
#playerHeight = 24
CreateSprite(0,24,24)
StartDrawing(SpriteOutput(0))
DrawingMode(#PB_2DDrawing_Default)
Box(0,0,24,24,RGB(0,0,0))
StopDrawing()
CreateSprite(1,24,24)
StartDrawing(SpriteOutput(1))
DrawingMode(#PB_2DDrawing_Default)
Box(0,0,24,24,RGB(255,255,255))
StopDrawing()
CreateSprite(2,24,24)
StartDrawing(SpriteOutput(2))
DrawingMode(#PB_2DDrawing_Default)
Circle(12,12,12,RGB(255,100,255))
StopDrawing()
CreateSprite(3,24,24)
StartDrawing(SpriteOutput(3))
DrawingMode(#PB_2DDrawing_Default)
Box(0,0,24,24,RGB(0, 0, 0))
Circle(12,12,3,RGB(254, 255, 61))
StopDrawing()
CreateSprite(4,24,24)
StartDrawing(SpriteOutput(4))
DrawingMode(#PB_2DDrawing_Default)
Box(0,0,24,24,RGB(255,0,255))
Circle(12,12,12,RGB(0,0,255))
StopDrawing()
Structure _object
TileID.l
EndStructure
Global Dim map._object(mapWidth, mapHeight)
Restore map
For t = 0 To mapHeight
For n = 0 To mapWidth
Read map(n,t)\TileID
Next
Next
Procedure isAcc(x.l, y.l)
Shared map()
i = ((posx-mapX+x)/#TileSize)
k = ((posy-mapY+y)/#TileSize)
If map(i, k)\TileID < 1 Or map(i, k)\TileID > 2
ProcedureReturn 1
EndIf
ProcedureReturn 0
EndProcedure
Procedure gisAcc(x.l, y.l)
Shared map()
gi = ((gposx-mapX+x)/#TileSize)
gk = ((gposy-mapY+y)/#TileSize)
If map(gi, gk)\TileID < 1 Or map(gi, gk)\TileID > 2
ProcedureReturn 1
EndIf
ProcedureReturn 0
EndProcedure
Repeat
ClearScreen(0)
ExamineKeyboard()
For t = 0 To mapHeight
For n = 0 To mapWidth
If init = 0
If map(n, t)\TileID = 0
punkte + 1
map(n, t)\TileID = 3
EndIf
EndIf
DisplayTransparentSprite(map(n, t)\TileID, (mapX + #TileSize*n),(mapY + #TileSize*t) )
Next
Next
init = 1
If KeyboardPushed(#PB_Key_Right)
If isAcc( speed-12,-12) And isAcc( speed+11,-12) And isAcc(speed -12,11) And isAcc(speed+ 11,11)
right = 1:left = 0:up = 0:down = 0
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left)
If isAcc(-speed-12,-12) And isAcc(-speed+11,-12) And isAcc(-speed-12,11) And isAcc(-speed+11,11)
right = 0:left = 1:up = 0:down = 0
EndIf
EndIf
If KeyboardPushed(#PB_Key_Up)
If isAcc(-12,-speed-12) And isAcc(11,-speed-12) And isAcc(-12,-speed+11) And isAcc(11,-speed+11)
right = 0:left = 0:up = 1:down = 0
EndIf
EndIf
If KeyboardPushed(#PB_Key_Down)
If isAcc(-12, speed-12) And isAcc(11, speed-12) And isAcc(-12, speed+11) And isAcc(11, speed+11)
right = 0:left = 0:up = 0:down = 1
EndIf
EndIf
If right = 1 And isAcc( speed-12,-12) And isAcc( speed+11,-12) And isAcc(speed -12,11) And isAcc(speed+ 11,11)
posx + speed
EndIf
If left = 1 And isAcc(-speed-12,-12) And isAcc(-speed+11,-12) And isAcc(-speed-12,11) And isAcc(-speed+11,11)
posx - speed
EndIf
If up = 1 And isAcc(-12,-speed-12) And isAcc(11,-speed-12) And isAcc(-12,-speed+11) And isAcc(11,-speed+11)
posy - speed
EndIf
If down = 1 And isAcc(-12, speed-12) And isAcc(11, speed-12) And isAcc(-12, speed+11) And isAcc(11, speed+11)
posy + speed
EndIf
;
;
; Primitive Zielverfolgung ( Flucht noch nicht eingefügt)
;
;
If posx>gposx And gisAcc( speed-12,-12) And gisAcc(speed+ 11,-12) And gisAcc(speed -12,11) And gisAcc(speed+ 11,11)
gposx + speed
EndIf
If posx<gposx And gisAcc(-speed -12,-12) And gisAcc(-speed+11,-12) And gisAcc(-speed -12,11) And gisAcc( -speed+11,11)
gposx - speed
EndIf
If posy>gposy And gisAcc( -12,speed-12) And gisAcc( 11,speed-12) And gisAcc(-12,speed+11) And gisAcc(11,speed+11)
gposy + speed
EndIf
If posy<gposy And gisAcc( -12,-speed-12) And gisAcc( 11,-speed-12) And gisAcc( -12,-speed+11) And gisAcc(11,-speed+11)
gposy - speed
EndIf
If isAcc(0,0) And isAcc(0,0) And isAcc(0,0) And isAcc(0,0)
If map(i, k)\TileID = 3
map(i, k)\TileID = 0
punkte - 1
points + 5
EndIf
EndIf
DisplayTransparentSprite(2,posX-#playerWidth/2,posY-#playerHeight/2)
DisplaySprite(4,gposX-#playerWidth/2,gposY-#playerHeight/2)
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(925,50,"PUNKTE",RGB(255,255,255))
DrawText(930, 80, RSet(Str(points), 6, "0"),RGB(255,255,255))
StopDrawing()
Delay(1)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
End
DataSection
map:
Data.l 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data.l 1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1
Data.l 1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1
Data.l 1,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,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,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,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,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1
Data.l 1,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1
Data.l 1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0,1
Data.l 1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,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,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1
Data.l 1,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,1
Data.l 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
EndDataSection