Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

How to resize the picScreen


JadeCurt1ss
 Share

Recommended Posts

No, not stretch. I would like to show more of the map that I'm on. Say go from seeing 14 x 19 blocks of the map to seeing 18 x 25 blocks. I want to make my GUI using all windows that appear by hitting buttons below the textbox. However, the current setup is a bit too small for it.
Link to comment
Share on other sites

I have that same problem…  :sad:

@Bobosk:

> Hrmm, you should probably search your entire project for "ScreenX", "ScreenY", "ScreenX2", or "ScreenY2", that seems to be the controllers for what the PicScreen shows..

I modified these controls,more specifically this:
In EE 2.7 ModGameLogic, GameLoop

> If ScreenX < 0 Then
>                     ScreenX = 0
>                     ScreenX2 = 24
>                 ElseIf ScreenX2 > MAX_MAPX Then
>                     ScreenX2 = MAX_MAPX
>                     ScreenX = MAX_MAPX - 24
>                 End If
>            
>                 If ScreenY < 0 Then
>                     ScreenY = 0
>                     ScreenY2 = 18
>                 ElseIf ScreenY2 > MAX_MAPY Then
>                     ScreenY2 = MAX_MAPY
>                     ScreenY = MAX_MAPY - 18
>                 End If

But I got the following bug on PicScreen: [IMAGELINK](http://i414.photobucket.com/albums/pp227/fryejaa/bug-1.jpg)
Someone could help me fix this?

Sorry my bad English  :huh:
Link to comment
Share on other sites

if i understand what you want correctly….
if you increase the amount the screen is trying to show you...
dont forget you would have to increase the amount of tiles the client is loading.

currently the client only loads the part of the map you see, to save on memory and all that good stuff...
so if you increase visibility, you need to increase what is loaded.

if you dont go too crazy on map size then i dont think there is much of a problem.
just figuring it all out might be a pain.
Link to comment
Share on other sites

I found this while making a few changes to the player names…

> Public Function GetScreenLeft(ByVal Index As Long) As Long
>     GetScreenLeft = GetPlayerX(Index) - 11
> End Function
>
> Public Function GetScreenTop(ByVal Index As Long) As Long
>     GetScreenTop = GetPlayerY(Index) - 8
> End Function
>
> Public Function GetScreenRight(ByVal Index As Long) As Long
>     GetScreenRight = GetPlayerX(Index) + 10
> End Function
>
> Public Function GetScreenBottom(ByVal Index As Long) As Long
>     GetScreenBottom = GetPlayerY(Index) + 8
> End Function

I'm a bit busy with another edit, but anybody want to try using this?
Link to comment
Share on other sites

@JadeCurt1ss:

> I found this while making a few changes to the player names…
>
> I'm a bit busy with another edit, but anybody want to try using this?

Thank you, I can solve the problem  :cheesy:

I replace for this:

> Public Function GetScreenLeft(ByVal Index As Long) As Long
>     GetScreenLeft = GetPlayerX(Index) - 12
> End Function
>
> Public Function GetScreenTop(ByVal Index As Long) As Long
>     GetScreenTop = GetPlayerY(Index) - 9
> End Function
>
> Public Function GetScreenRight(ByVal Index As Long) As Long
>     GetScreenRight = GetPlayerX(Index) + 12
> End Function
>
> Public Function GetScreenBottom(ByVal Index As Long) As Long
>     GetScreenBottom = GetPlayerY(Index) + 9
> End Function

;)
Link to comment
Share on other sites

To do 25X19 Blocks (800x608 pixels)
In ModGameLogic, Search for this

> NewX = 10
>                 NewY = 7
>
>                 NewPlayerY = Player(MyIndex).y - NewY
>                 NewPlayerX = Player(MyIndex).X - NewX
>
>                 NewX = NewX * PIC_X
>                 NewY = NewY * PIC_Y
>
>                 NewXOffset = Player(MyIndex).xOffset
>                 NewYOffset = Player(MyIndex).yOffset
>
>                 If Player(MyIndex).y - 7 < 1 Then
>                     NewY = Player(MyIndex).y * PIC_Y + Player(MyIndex).yOffset
>                     NewYOffset = 0
>                     NewPlayerY = 0
>                     If Player(MyIndex).y = 7 And Player(MyIndex).Dir = DIR_UP Then
>                         NewPlayerY = Player(MyIndex).y - 7
>                         NewY = 7 * PIC_Y
>                         NewYOffset = Player(MyIndex).yOffset
>                     End If
>                 ElseIf Player(MyIndex).y + 9 > MAX_MAPY + 1 Then
>                     NewY = (Player(MyIndex).y - (MAX_MAPY - 14)) * PIC_Y + Player(MyIndex).yOffset
>                     NewYOffset = 0
>                     NewPlayerY = MAX_MAPY - 14
>                     If Player(MyIndex).y = MAX_MAPY - 7 And Player(MyIndex).Dir = DIR_DOWN Then
>                         NewPlayerY = Player(MyIndex).y - 7
>                         NewY = 7 * PIC_Y
>                         NewYOffset = Player(MyIndex).yOffset
>                     End If
>                 End If
>
>                 If Player(MyIndex).X - 10 < 1 Then
>                     NewX = Player(MyIndex).X * PIC_X + Player(MyIndex).xOffset
>                     NewXOffset = 0
>                     NewPlayerX = 0
>                     If Player(MyIndex).X = 10 And Player(MyIndex).Dir = DIR_LEFT Then
>                         NewPlayerX = Player(MyIndex).X - 10
>                         NewX = 10 * PIC_X
>                         NewXOffset = Player(MyIndex).xOffset
>                     End If
>                 ElseIf Player(MyIndex).X + 11 > MAX_MAPX + 1 Then
>                     NewX = (Player(MyIndex).X - (MAX_MAPX - 19)) * PIC_X + Player(MyIndex).xOffset
>                     NewXOffset = 0
>                     NewPlayerX = MAX_MAPX - 19
>                     If Player(MyIndex).X = MAX_MAPX - 9 And Player(MyIndex).Dir = DIR_RIGHT Then
>                         NewPlayerX = Player(MyIndex).X - 10
>                         NewX = 10 * PIC_X
>                         NewXOffset = Player(MyIndex).xOffset
>                     End If
>                 End If
>
>                 ScreenX = GetScreenLeft(MyIndex)
>                 ScreenY = GetScreenTop(MyIndex)
>                 ScreenX2 = GetScreenRight(MyIndex)
>                 ScreenY2 = GetScreenBottom(MyIndex)
>
>                 If ScreenX < 0 Then
>                     ScreenX = 0
>                     ScreenX2 = 20
>                 ElseIf ScreenX2 > MAX_MAPX Then
>                     ScreenX2 = MAX_MAPX
>                     ScreenX = MAX_MAPX - 20
>                 End If
>            
>                 If ScreenY < 0 Then
>                     ScreenY = 0
>                     ScreenY2 = 15
>                 ElseIf ScreenY2 > MAX_MAPY Then
>                     ScreenY2 = MAX_MAPY
>                     ScreenY = MAX_MAPY - 15
>                 End If

Replace with this:

> NewX = 12
>                 NewY = 9
>
>                 NewPlayerY = Player(MyIndex).y - NewY
>                 NewPlayerX = Player(MyIndex).x - NewX
>
>                 NewX = NewX * PIC_X
>                 NewY = NewY * PIC_Y
>
>                 NewXOffset = Player(MyIndex).xOffset
>                 NewYOffset = Player(MyIndex).yOffset
>
>                 If Player(MyIndex).y - 9 < 1 Then
>                     NewY = Player(MyIndex).y * PIC_Y + Player(MyIndex).yOffset
>                     NewYOffset = 0
>                     NewPlayerY = 0
>                     If Player(MyIndex).y = 9 And Player(MyIndex).Dir = DIR_UP Then
>                         NewPlayerY = Player(MyIndex).y - 9
>                         NewY = 9 * PIC_Y
>                         NewYOffset = Player(MyIndex).yOffset
>                     End If
>                 ElseIf Player(MyIndex).y + 11 > MAX_MAPY + 1 Then
>                     NewY = (Player(MyIndex).y - (MAX_MAPY - 18)) * PIC_Y + Player(MyIndex).yOffset
>                     NewYOffset = 0
>                     NewPlayerY = MAX_MAPY - 18
>                     If Player(MyIndex).y = MAX_MAPY - 9 And Player(MyIndex).Dir = DIR_DOWN Then
>                         NewPlayerY = Player(MyIndex).y - 9
>                         NewY = 9 * PIC_Y
>                         NewYOffset = Player(MyIndex).yOffset
>                     End If
>                 End If
>
>                 If Player(MyIndex).x - 12 < 1 Then
>                     NewX = Player(MyIndex).x * PIC_X + Player(MyIndex).xOffset
>                     NewXOffset = 0
>                     NewPlayerX = 0
>                     If Player(MyIndex).x = 12 And Player(MyIndex).Dir = DIR_LEFT Then
>                         NewPlayerX = Player(MyIndex).x - 12
>                         NewX = 12 * PIC_X
>                         NewXOffset = Player(MyIndex).xOffset
>                     End If
>                 ElseIf Player(MyIndex).x + 14 > MAX_MAPX + 1 Then
>                     NewX = (Player(MyIndex).x - (MAX_MAPX - 24)) * PIC_X + Player(MyIndex).xOffset
>                     NewXOffset = 0
>                     NewPlayerX = MAX_MAPX - 24
>                     If Player(MyIndex).x = MAX_MAPX - 12 And Player(MyIndex).Dir = DIR_RIGHT Then
>                         NewPlayerX = Player(MyIndex).x - 12
>                         NewX = 12 * PIC_X
>                         NewXOffset = Player(MyIndex).xOffset
>                     End If
>                 End If
>
>                 ScreenX = GetScreenLeft(MyIndex)
>                 ScreenY = GetScreenTop(MyIndex)
>                 ScreenX2 = GetScreenRight(MyIndex)
>                 ScreenY2 = GetScreenBottom(MyIndex)
>
>                 If ScreenX < 0 Then
>                     ScreenX = 0
>                     ScreenX2 = 25
>                 ElseIf ScreenX2 > MAX_MAPX Then
>                     ScreenX2 = MAX_MAPX
>                     ScreenX = MAX_MAPX - 25
>                 End If
>          
>                 If ScreenY < 0 Then
>                     ScreenY = 0
>                     ScreenY2 = 19
>                 ElseIf ScreenY2 > MAX_MAPY Then
>                     ScreenY2 = MAX_MAPY
>                     ScreenY = MAX_MAPY - 19
>                 End If

In ModDirectX, Search for this

> Public Function GetScreenLeft(ByVal Index As Long) As Long
>     GetScreenLeft = GetPlayerX(Index) - 11
> End Function
>
> Public Function GetScreenTop(ByVal Index As Long) As Long
>     GetScreenTop = GetPlayerY(Index) - 8
> End Function
>
> Public Function GetScreenRight(ByVal Index As Long) As Long
>     GetScreenRight = GetPlayerX(Index) + 10
> End Function
>
> Public Function GetScreenBottom(ByVal Index As Long) As Long
>     GetScreenBottom = GetPlayerY(Index) + 8
> End Function

Replace with this

> Public Function GetScreenLeft(ByVal Index As Long) As Long
>     GetScreenLeft = GetPlayerX(Index) - 12
> End Function
>
> Public Function GetScreenTop(ByVal Index As Long) As Long
>     GetScreenTop = GetPlayerY(Index) - 9
> End Function
>
> Public Function GetScreenRight(ByVal Index As Long) As Long
>     GetScreenRight = GetPlayerX(Index) + 12
> End Function
>
> Public Function GetScreenBottom(ByVal Index As Long) As Long
>     GetScreenBottom = GetPlayerY(Index) + 9
> End Function

Sorry bad english  ;)
Link to comment
Share on other sites

@Warconn:

> hmm i have a width of 25 blocks, and 13 high, how would i do it for that, what do i change

I sent  PM to you about it.

@JadeCurt1ss:

> Lol I meant how did it work out, I forgot to put the out.
>
> Did it work?

Yes, it work.
Link to comment
Share on other sites

  • 5 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...