Como implementar zoom?

Publicado por Jeffrey Faper, Junio 05, 2022, 08:56:54 PM

Tema anterior - Siguiente tema

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

Jeffrey Faper

Hola tengo esta duda cual es la manera correcta de implementar zoom al juego, yo lo hago de le siguiente manera(mirar mas abajo).
Entonces me surgio una duda sera esta la manera correcta de realizarlo, que problemas me podria generarar al hacerlo de esta manera
pregunto por que he estado mirando tutoriales sobre el tema y lo hacen de manera diferente
bueno eso es todo si podria aclararme esa pequeña duda se lo agradezco por adelantado...

zoom the easy way:
[gml]
///OBJETO CAMARA
//event create
viewWidth=320;  //ancho de su view
viewHeight=240; //largo de su view
zoom=1;         //escalado de su view
target=0;       //que jugador perseguir
//zooming view
view_wview[0]=viewWidth*zoom;
view_hview[0]=viewHeight*zoom;

//evento Step
//ZOOM-OUT
if(keyboard_check(ord("Z"))){
    zoom+=0.1;
    view_wview[0]=viewWidth*zoom;
    view_hview[0]=viewHeight*zoom;
}
//ZOOM-IN
if(keyboard_check(ord("X"))){
    zoom-=0.1;
    view_wview[0]=viewWidth*zoom;
    view_hview[0]=viewHeight*zoom;
}

//evento End Step
//ASSIGNAR CAMARA A LIDER
var setLeader=instance_nearest(x+64,y,parPlayers);
//SEGUIR AL JUGADOR
if(instance_exists(objPlayer1) || instance_exists(objPlayer2)){
    target=setLeader;
   
    //clampear view al jugador y limites de la room
    var xvf=clamp(target.x-viewWidth*zoom/2,0,room_width*10-viewWidth);
    var yvf=clamp(target.y-viewHeight*zoom/2,0,room_height-viewHeight);
   
    //velocidad de la view
    var sv=0.5;
   
    //actualizar posicion de nuestra camara
    view_xview[0]=lerp(view_xview[0],xvf,sv);
    view_yview[0]=lerp(view_yview[0],yvf,sv);
}
//ACTUALIZAR POSICION OBJETO CAMARA
x=view_xview;
y=view_yview;
[/gml]

Zoom In/out View:
[spoiler]

[/spoiler]
Zoom In/Out Surface:
[spoiler]

[/spoiler]
Zoom In/Out Surface+View:
[spoiler]

[/spoiler]




Powered by EzPortal
SMF spam blocked by CleanTalk