[Pregunta]Manejo de gráficos: métodos

Iniciado por Binary_Death, 6 Agosto 2010, 23:37 PM

0 Miembros y 1 Visitante están viendo este tema.

Binary_Death

Bien, después de informarme bastante sobre el manejo de gráficos en Batch usando el plano cartesiano, me pregunté si alguien conocería algún otro método que permitiera un control de gráficos equivalente al que se tiene usando coordenadas.

Sé que lo hay, pues no hace mucho encontré un Batch Game que usaba otro método... postearía el código de éste si mi mala memoria me permitiera recordar su nombre y en qué página estaba  :¬¬  :xD

En fin, gracias por la atencion ^^
Saludos!

bolivianito

Con comandos externos tenes adbat,colous, el de javier, uno que encontro 3D1 que esta muy bueno y no pesa nada, son un par de lineas en el bat no mas para pasarlo por debug.

Binary_Death

Y sí... la cuestión es que la mayoría (por no decir todos) se basan en coordenadas.
Tu colous por ejemplo, es todo coordenadas  :xD como principio básico.

Sé que hay otro método, y si mal no recuerdo usa carácteres  :-\ es raro. Pregunto esto para ver si alguien conoce esas otras formas de manipular gráficos.

Y bueh, a ver si hay suerte  :xD

bolivianito

otra es con debug, pero es lo que usas  :P.

Tambien se podria hacer lo basico, tener como en array, toda la pantalla a usar, pintar cada lugar deseado, borrar toda la pantalla y volver a escribir todo el array, pero seria lento, y estaría el molesto parpadeo ...

SmartGenius

Sin coordenadas no puedes hacer nada, como ubicas algo para dibujarlo en pantalla ?. En la CMD tienes por defecto un plano de 80x25 cuadros, y por defecto no hay nada para manejarse en eso, luego el tema de las coordenadas es importante, aplicarlo netamente en batch, ya luego estan los comandos externos que te han comentado antes, pero todos usan ese sistema, y en general pienso que cualquier lenguaje lo hace.  ;D


Binary_Death

#5
Sí... estoy de acuerdo Smart... sin embargo, siempre hay diferentes métodos para hacer las cosas, aunque no todos igual de eficaces...

Mira, aquí te dejo algo que hice "sin coordenadas", porque en verdad, si lo vemos desde otro punto de vista, sigue siendo con coordenadas...

Código (dos) [Seleccionar]

@Echo Off
=========================
::Coded By Binary_Death::
=========================
SetLocal EnableDelayedExpansion
Title Graphics Using Another Way
If Not Exist KeyBoard.Com Call:Key
Set "LimC=4"
Set "LimL=4"
Set "CurPos=0"
Set "CurLine=0"
Set "Player=O"
Set "Table=°"
Call:Create_Table
:_Main
call:Load_Graphic
KEYBOARD.COM
If "%ErrorLevel%" EQU "77" (Call:MovR)
If "%ErrorLevel%" EQU "80" (Call:MovD)
If "%ErrorLevel%" EQU "75" (Call:MovL)
If "%ErrorLevel%" EQU "72" (Call:MovU)
GoTo:_Main
:MovR
If "%CurPos%" EQU "%LimC%" GoTo:EoF
Set "Line_%CurLine%=!Line_%CurLine%:@=-!"
Set/A "CurPos+=1"
Set/A Gx=%CurPos%+1
Set "Line_%CurLine%=!Line_%CurLine%:~0,%CurPos%!@!Line_%CurLine%:~%Gx%,%LimC%!"
GoTo:EoF
:MovL
If "%CurPos%" EQU "0" GoTo:EoF
Set "Line_%CurLine%=!Line_%CurLine%:@=-!"
Set/A "CurPos-=1"
Set/A Gx=%CurPos%+1
Set "Line_%CurLine%=!Line_%CurLine%:~0,%CurPos%!@!Line_%CurLine%:~%Gx%,%LimC%!"
GoTo:EoF
:MovD
If "%CurLine%" EQU "%LimL%" GoTo:EoF
Set "Line_%CurLine%=!Line_%CurLine%:@=-!"
Set/A "CurLine+=1"
Set/A Gx=%CurPos%+1
Set "Line_%CurLine%=!Line_%CurLine%:~0,%CurPos%!@!Line_%CurLine%:~%Gx%,%LimC%!"
GoTo:EoF
:MovU
If "%CurLine%" EQU "0" GoTo:EoF
Set "Line_%CurLine%=!Line_%CurLine%:@=-!"
Set/A "CurLine-=1"
Set/A Gx=%CurPos%+1
Set "Line_%CurLine%=!Line_%CurLine%:~0,%CurPos%!@!Line_%CurLine%:~%Gx%,%LimC%!"
GoTo:EoF
:Create_Table
Set/A Count=0
For %%x in ("@----","-----","-----","-----","-----") do (
Set "Line_!Count!=%%~x"
Set/A "Count+=1"
)
GoTo:EoF
:Load_Graphic
more/c<nul
For /L %%l in (0,1,%LimL%) do (
Set "Show=!Line_%%l:@=%Player%!"
Set "Show=!Show:-=%Table%!"
Echo. !Show!)
GoTo:EoF
:Key
(ECHO.N KEYBOARD.COM
ECHO.E 0000 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
ECHO.R CX
ECHO.000E
ECHO.W0
ECHO.Q)|DEBUG 1>NUL 2>&1
GOTO:EOF


Saludos!

flony

#6
hay alguna info sobre el manejo de coordenadas?...me gustaria leerlo
modificado
ya encontre un tutorial de smartgenius ta bastante claro
si un problema no tiene solucion entonces no es un problema...es algo inevitable