huawei
Por favor registrate o inicia sesión para ver todo el contenido del foro, gracias

Unirse al foro, es rápido y fácil

huawei
Por favor registrate o inicia sesión para ver todo el contenido del foro, gracias
huawei
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Últimos temas
» TABLET HUAWEI MEDIAPAD 10 LINK
Modificar juegos (resolucion y otras cosas) Parte I EmptySáb Mar 26, 2016 5:02 am por aldo

» rootear huawei u 8650
Modificar juegos (resolucion y otras cosas) Parte I EmptyDom Mar 20, 2016 1:27 pm por dchacon

» Huawei ascend P1
Modificar juegos (resolucion y otras cosas) Parte I EmptyJue Jul 23, 2015 8:09 am por LESLIE MEDINA

» No funciona el auricular
Modificar juegos (resolucion y otras cosas) Parte I EmptyMar Jul 07, 2015 4:24 pm por sirenm

» AYUDA para instalar el IDIOMA ESPAÑOL
Modificar juegos (resolucion y otras cosas) Parte I EmptyJue Jul 02, 2015 10:11 am por Gerardo Nava

» Cambiar idioma
Modificar juegos (resolucion y otras cosas) Parte I EmptyVie Jun 19, 2015 10:33 am por jose sanchez

» problemas huawei p6
Modificar juegos (resolucion y otras cosas) Parte I EmptyMar Jun 16, 2015 9:34 pm por jorgesg

» Problemas con la camara, el calendario y la linterna
Modificar juegos (resolucion y otras cosas) Parte I EmptyDom Jun 07, 2015 6:40 pm por betblas

» Huawei y220-u00
Modificar juegos (resolucion y otras cosas) Parte I EmptyMiér Jun 03, 2015 11:23 pm por yeider

Abril 2024
LunMarMiérJueVieSábDom
1234567
891011121314
15161718192021
22232425262728
2930     

Calendario Calendario

Compañeros

Crear foro



Los posteadores más activos del mes
No hay usuarios

Los posteadores más activos de la semana
No hay usuarios

Estadísticas
Tenemos 5795 miembros registrados
El último usuario registrado es Conscurchondkir

Nuestros miembros han publicado un total de 2222 mensajes en 405 argumentos.
rootear huawei u 8650

Sáb Jun 15, 2013 11:00 pm por lrc1

Hola a todos. Tengo un 8650 al que le compre una sd de 8 gb, porque ni actualizaciones me dejaba cargar( memoria llena) le particione la sd en dos partes, como leí en un foro. siguiendo este foro he intentado rootearlo pero soy incapaz. De todo esto no tengo mucha idea( o nada). Si alguien con mucha paciencia me puede ayudar sería estupendo. gracias por vuestra atención y paciencia.
Ya veo que …

[ Lectura completa ]

Comentarios: 1

No funciona el auricular

Vie Nov 08, 2013 11:06 am por samurai77

Pues resulta que cuando me llaman y descuelgo no oigo nada, y me veo obligado a activar el altavoz de manos libres, o bien, si quiero mantener una conversación sin que se entere todo el mundo, conectar los auriculares y hablar con ellos puestos.
Alguien sabe como resolver este problemilla? Será de software o se habrá jodido el altavoz?

saludos y gracias por anticipado

Comentarios: 2

huawey y320

Sáb Mayo 09, 2015 7:05 am por huawei y 320

Buenas tardes tengo un hawey y320 el cual hace un tiempo lo conecte a la pc y desde entonces ya no funciona igual la entrada de audifonos no quiere servir y np porque este dañado sino q parece q tuviera un corto y ademas desde ese dia no carga apagado no sale la pila llenando sino q sale el ligo de huawey intermitente y no quiere coger como almacenamiento usb cuando lo conecto a alguna pc Solo …

[ Lectura completa ]

Comentarios: 0

HUAWEI y300 No reconoce SD

Jue Ene 29, 2015 3:02 am por LautaroLuna




Hola a todos, tengo un Huawei Y300 pero no me reconoce la memoria SD. Lo unico que me aperece es 'Instalando SD' pero nunca la instala... ya probe con varias memorias SD y ninguna las reconoce, todas las memorias funcionan.

¿Alguien sabe como solucionar este problema? estoy desesperado.... Sad Muchas gracias!!

Comentarios: 0

Huawei G700-u00

Mar Jul 22, 2014 8:59 am por Pedro Blanco

Buenas tardes soy nuevo en este link pero quiciera que alguien me ayudara, tengo un huawei g700-u00 me vino con el idioma chino e ingles como hago para cambiarlo a español.

Comentarios: 0

Huawei Y300 no funciona tactil fue mojado

Mar Mayo 27, 2014 11:29 am por Henavia

Buen dia, por favor me ayudan para encontrar la solución, tengo un huawei y300 que fué mojado, después de darle una pasada con alcohol, da imagen el equipo pero el táctil no funciona, ya se cambió e igual no funciona, alguien sabe del plano de este celular o si hay algún chip o controlador que se pueda validar?
Gracias

Comentarios: 0

huawei m 860 bloqueado,no pude reiniciarlo,trate con factory reset pero nada

Miér Sep 25, 2013 6:50 am por guillermo crusharo

por favor me podrian ayudar a desbloquear mi huawei m 860,no pude reiniciarlo ,le di al factory reset pero nada

Comentarios: 0

pantalla tactil no funciona

Vie Ago 30, 2013 11:08 am por draghonm

Hola me gustaría saber si alguien sabe como calibrar la pantalla del huawei u8650 si hay algún método.
ya e actualizado la rom oficial y e probado varias cocinadas pero sigue igual ,
hay parte de la pantalla que no responde.
si alguien tiene alguna idea me podría ayudar . saludos.

Comentarios: 0

Garantia de reperación

Jue Sep 27, 2012 8:08 pm por sanchez40000

hace dos meses que mi terminal ha dejado de funcionar correctamente, pues repentinamente la bateria solo me duraba algunas horas, cuando lo normal es que me durase varios dias (entre 4 y 6 dias), despues de enviarlo tres (03) veces al servicio tecnico de s.s. de los reyes (madrid) mientras que en las dos (02) primeras veces me respondian que todo estaba perfectamente y que el terminal y la …

[ Lectura completa ]

Comentarios: 4

¿Quién está en línea?
En total hay 5 usuarios en línea: 0 Registrados, 0 Ocultos y 5 Invitados :: 1 Motor de búsqueda

Ninguno

[ Ver toda la lista ]


El record de usuarios en línea fue de 104 durante el Lun Jul 31, 2017 5:13 pm
Compañeros

Crear foro




Modificar juegos (resolucion y otras cosas) Parte I

Ir abajo

Modificar juegos (resolucion y otras cosas) Parte I Empty Modificar juegos (resolucion y otras cosas) Parte I

Mensaje por Alex 19 16v Vie Oct 14, 2011 12:00 am

Tuto Android como cambiar resolución, reasignar teclas, etc

Acá comparto con ustedes una base para entender a como modificar juegos.
• Cambiar resolución
• Ayustar pantalla táctil
• Renovar cache
• Reasignar teclas

Antes de empezar les aclaro que la información que de aquí en mas puedan usar es antes que nada una referencia para poder tener una idea de lo que estamos por hacer al modificar los algoritmos de android, esta demás decir que si tienen conocimientos en programación mucho mejor.
Es bastante largo el tema por ese motivo lo voy a separar en partes
Y que es bastante complejo el tema y requiere dedicación y prueba tras prueba hasta encontrar el resultado buscado,
(si sos de los que tienen problemas para hacer funcionar un juego no te lo recomiendo, así como no esperes encontrarte con una aplicación como Virtual Key de symbian por que no va a ser así)
Tengan en cuenta que la interpretación del Ruso al castellano suele dar a mal entendidos, ósea que aun estoy terminando de darle un mejor entendimiento y así lograr la mejor explicación posible que es la que les transmito a ustedes.

Así que sin más procederemos al tema.

Necesitaremos los siguientes programas:
1. APK Manager
2. Cualquier editor de texto
3. Ida Pro 5.5
4. Cualquier editor hexadecimal ejemplo: UltraEdit

Ahora vamos a pensar que el juego está optimizado para la pantalla HVGA / QVGA?
Se puede dividir en varias etapas.
Primero:
1. Cambiar la resolución de HVGA / QVGA.
2. Ajuste de la rejilla de la pantalla táctil.
Segundo:
3. Cómo deshabilitar la memoria caché (necesario para ser capaz de convertir el vídeo de introducción a menor resolución).
4. Asignación de un botón de hardware en cualquier acción (necesario para los teléfonos sin multitouch).

Antes de proceder a cualquier etapa de la optimización, es necesario obtener el código fuente original, sin duda no será fácil, pero podemos obtener un código de Java byte, que es bastante útil a nuestro problema, sería suficiente. Con este fin, utilizamos "APK Manager".

Instalar y usar un "Administrador de APK".

El programa de instalación no es nada complicado, basta con descomprimir en cualquier carpeta.
También se recomienda que un script.bat archivo, localizado en la carpeta "APK Manager",
Cambie "heapy juego = 64" a un valor más alto, como 256 o 512, para evitar problemas con los archivos grandes empresas agroindustriales.
Trabajar con "Administrador de APK" también no presenta dificultades. Requerido archivo AIC pone en la carpeta de "lugar-APK-aquí-para-modding", ejecute "script.bat" y la ventana emergente con el texto en verde, pulse el botón "9" y "Enter". Menos de un minuto después, la carpeta "proyectos" que desempaquetar el archivo AIC. Paquetes de la misma, ejecute "script.bat", haga clic en "11", "Enter", la pregunta es si el sistema APC? "Hit" n ". Y al final, cuando el AIC lleno de archivo, lo firme, para que la prensa "12" y "Enter". Como resultado, tenemos en la carpeta "lugar-APK-aquí-para-modding" archivo con el nombre firmado [el nombre del archivo original-AIC]. APK. Además, acerca de "gestor de APK" se puede leer aquí .

Además en el texto que se perderá la descripción del proceso de desempaquetado / archivos AIC zapakovki.
Asimismo, antes de comenzar, le recomiendo que revise primero una lista de comandos de código de bytes Java.
Ahora usted puede traspasar directamente a la optimización, por ejemplo voy a utilizar el juego de "Modern Combat: Tormenta de arena".

1. Cambiar la resolución de la prestación de HVGA / QVGA.

La mayoría de los juegos en Android, escrito usando OpenGL, un permiso de OpenGL dada por la función "glViewport", y el uso voluntad. El más óptimo, creo que la función "glViewport" lugar en la función "OnDrawFrame". Para ello, buscando en la carpeta "smali", que se encuentra en una carpeta con raspakovanym archivo AIC, busque un archivo que contiene la función "OnDrawFrame". Por lo general, este archivo se denomina "GameRenderer.smali" o "[Nombre del Juego] Renderer.smali", en este caso, "SandstormRenderer.smali". Ábralo en el Bloc de notas u otro editor de texto y encontrar en él la función "OnDrawFrame".
He aquí un fragmento de esta función.

Código :

. Método público onDrawFrame (Ljavax/microedition/khronos/opengles/GL10 V
. Locales 6
. Parámetros "gl"
. Prólogo
. Línea 174
const-wide/16 v0, 0x0
. Línea 177
. Locales v0, el tiempo: J
invocar estática {}, Ljava / lang / Sistema; - currentTimeMillis> () J
movimiento en todo el resultado de v0
. Línea 179
invocar estática {}, FCM / gameloft / android / Gand / GloftMCHP / GLMediaPlayer; -> actualizar () V
. Línea 180
invocar estática {}, FCM / gameloft / android / Gand / GloftMCHP / SandstormRenderer; - nativeRender> () V
. Línea 186
const-wide/16 v2, 0x32
invocar estática {}, Ljava / lang / Sistema; - currentTimeMillis> () J
movimiento en todo el resultado de la v4
sub-long/2addr v4, v0
sub-largo v0, v2, v4
. Línea 188
const-wide/16 v2, 0x0
cmp largo v2, v0, v2
si-lez v2: cond_0
. Línea 190
: Try_start_0
invocar estática {v0, v1}, Ljava / lang / Autor; - el sueño> (J) V
: Try_end_0
. Captura Ljava / lang / Excepción; {: try_start_0 .. : Try_end_0}: catch_0
. Línea 193
: Cond_0
: Goto_0
retorno vacío
. Línea 190
: Catch_0
movimiento excepción v2
Ir a: goto_0
. Método de finalización


En este fragmento de código para agregar la llamada a la función "glViewport", de modo de obtener, como en el siguiente fragmento de código.

Código :

. Método público onDrawFrame (Ljavax/microedition/khronos/opengles/GL10 V
. Locales 9
. Parámetros "gl"
. Prólogo
const/16 v8, 0x1E0
const/16 v7, 0x140
const / 4 v6, 0x0
invocar la interfaz de {p1, v6, V6, V8, v7}, Ljavax/microedition/khronos/opengles/GL10; - glViewport> (IIII) V
. Línea 174
const-wide/16 v0, 0x0

. Línea 177
. Locales v0, el tiempo: J
invocar estática {}, Ljava / lang / Sistema; - currentTimeMillis> () J
movimiento en todo el resultado de v0
. Línea 179
invocar estática {}, FCM / gameloft / android / Gand / GloftMCHP / GLMediaPlayer; -> actualizar () V
. Línea 180
invocar estática {}, FCM / gameloft / android / Gand / GloftMCHP / SandstormRenderer; - nativeRender> () V
. Línea 186
const-wide/16 v2, 0x32
invocar estática {}, Ljava / lang / Sistema; - currentTimeMillis> () J
movimiento en todo el resultado de la v4
sub-long/2addr v4, v0
sub-largo v0, v2, v4
. Línea 188
const-wide/16 v2, 0x0
cmp largo v2, v0, v2
si-lez v2: cond_0
. Línea 190
: Try_start_0
invocar estática {v0, v1}, Ljava / lang / Autor; - el sueño> (J) V
: Try_end_0
. Captura Ljava / lang / Excepción; {: try_start_0 .. : Try_end_0}: catch_0
. Línea 193
: Cond_0
: Goto_0
retorno vacío
. Línea 190
: Catch_0
movimiento excepción v2
Ir a: goto_0
. Método de finalización

Lo que hemos hecho aquí? Hemos añadido tres constantes (v6, v7, v8), asignarles un valor de coordenadas de la parte inferior izquierda; v6 () y superior derecha v6 (v8, v7) esquina de la pantalla y se transfiere a la función "glViewport". Creo que es comprensible que para las coordenadas de la esquina inferior izquierda de la X e Y se usa solo y también una constante v6? Dado que tanto X e Y en este rincón son iguales. Además, cambia la línea 2-ésima en la función ". Locales de 6" sobre ". Locales 9", que determina el número de constantes y variables utilizadas en funciones, por lo que hemos añadido tres constantes, 6 +3 = 9. También tenga en cuenta que los nombres de las constantes (v6, v7, v8), no se toman casualmente, seleccionados por centrarse en ya se utiliza en la función de las constantes. Si de pronto alguien no entendió, 0x1E0 en decimal sería 480 y 0x140 - 320.

También presta atención a la función "onSurfaceCreated".

Código :

. Públicos Método onSurfaceCreated (Ljavax/microedition/khronos/opengles/GL10; Ljavax / MicroEdition / khronos / EGL / EGLConfig V
. Locales 7
. Parámetros "gl"
. Parámetro "config"
. Prólogo
const / 4 v3,-0x1
. Línea 138
const / 4 v0, 0x2
const cadena v1 "SandstormRenderer"

const cadena v2, "onSurfaceCreated"
invocar estática {v0, v1, v2}, FCM gameloft / / android / Gand / GloftMCHP / GLDebug; - debugMessage> (ILjava / lang / String; Ljava / lang / String V
. Línea 141
invocar-directa {p0}, FCM / gameloft / android / Gand / GloftMCHP / SandstormRenderer; - nativeGetJNIEnv> () V
. Línea 142
invocar estática {}, FCM / gameloft / android / Gand / GloftMCHP / GLResLoader; - inicio> () V
. Línea 143
invocar estática {}, FCM / gameloft / android / Gand / GloftMCHP / GLMediaPlayer; - inicio> () V
. Línea 144
invocar estática {}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; - nativeInit> () V
. Línea 146
: Goto_0
sget v0, FCM / gameloft / android / Gand / GloftMCHP / SandstormGLSurfaceView; - mDevice_W>: I
-eq si v0, v3,: cond_0
sget v0, FCM gameloft / / android / Gand / GloftMCHP / SandstormGLSurfaceView; - mDevice_H>: I
si ne-v0, v3: cond_1
. Línea 149
: Cond_0
const-wide/16 v0, 0x32
: Try_start_0
invocar estática {v0, v1}, Ljava / lang / Autor; - el sueño> (J) V
: Try_end_0
. Captura Ljava / lang / Excepción; {: try_start_0 .. : Try_end_0}: catch_0
Ir a: goto_0
: Catch_0
movimiento excepción v6
. Locales v6, por ejemplo: Ljava / lang / Excepción;
invocar virtual} {v6, Ljava / lang / Excepción; - printStackTrace> () V
Ir a: goto_0
. Línea 154
. Fin locales v6 # ejemplo: Ljava / lang / Excepción;
: Cond_1
sget v1, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; - m_bEnableKeyboard>: I
const / 4 v2, 0x1
sget v3, FCM / gameloft / android / Gand / GloftMCHP / SandstormGLSurfaceView; - mDevice_W>: I
sget v4, FCM gameloft / / android / Gand / GloftMCHP / SandstormGLSurfaceView; - mDevice_H>: I
sget v5, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; - mCurrentLang>: I
movimiento de objetos v0, p0
invoke-direct/range {v0 .. v5}, FCM / gameloft / android / Gand / GloftMCHP / SandstormRenderer; - nativeInit> (II-III) V
. Línea 155
retorno vacío
. Método de finalización

Es decir, el código
Código
sget v3, FCM / gameloft / android / Gand / GloftMCHP / SandstormGLSurfaceView; - mDevice_W>: I
sget v4, FCM gameloft / / android / Gand / GloftMCHP / SandstormGLSurfaceView; - mDevice_H>: I

En este código, la variable v3, v4 asignado a la pantalla de los dispositivos de la resolución real, y pasa a la función "nativeInit". Dado que el juego sigue siendo diseñado para 480x800 de resolución, es mejor tener el pensamiento de juego que tiene un dispositivo con esta resolución en particular. en este código se sustituye por
Código
const/16 v3, 0x320

const/16 v4, 0x1E0

Si no experimenta problemas.
Usted puede preguntar y 480h720, ya que la proporción de las pantallas con 480x800 y 320x480 son diferentes y cuando "exprimir" el panorama es ligeramente aplanado. Pero en este caso, en la fase de "red de contacto de ajuste pantalla, el coeficiente debe suponerse que entre 800 y entre 720 y será 1,666666666666667 y 720/480 = 1.5

En otros juegos en lugar de código, tal vez algo como esto

Código:
invocar virtual} {v0, Landroid / ver / Display - getwidth> () que
movimiento número v3
invocar virtual} {v0, Landroid / ver / Display - getHeight> () que
movimiento número v4
De todos modos se sustituye por:
Código
const/16 v3, 0x320
const/16 v4, 0x1E0
O nombres de variable no puede v3, v4 y V1, V2. O nada que ver con que sea, entonces no tengo nada que hacer.
O si surgen problemas, usted puede en el caso, ir en busca de todos los "*. smali" pozamenyat archivos y todas las funciones llamadas "Landroid / ver / Display - getwidth> () I" y "Landroid / ver / Display - getHeight> () Yo ", la padecen no lo hará.

Para algunos juegos, nuestro trabajo es suficiente y segura cambiar los permisos de todos los gráficos que usted necesita. Para hacer esto de nuevo los paquetes de AIC-archivo y comprobar que el teléfono mientras trabaja. Si todo va bien ir a la opción "red de ajuste de la pantalla táctil." Si no, siga leyendo. En nuestro caso, con el juego Modern Combat: Tormenta de arena, no todo es facil, hasta que el permiso necesario, y el menú - no.
Esto significa que en algún lugar de la función se llama "glViewport" y, a continuación, cambia la resolución a 480x800. Así, como en los archivos "*. smali" función "glViewport" no llame, se puede comprobar mediante la búsqueda, por lo que en el caso de la biblioteca "libsandstorm.so".

La idea principal de el siguiente paso, quite todas las llamadas a funciones de la biblioteca "glViewport".
Para el análisis de la biblioteca, necesitamos el "IDA Pro". Para mayor comodidad, copia "libsandstorm.so" en cualquier carpeta, ejecute "IDA Pro" y haga clic en el botón "Nuevo"

Siguiente "Varios archivos", "archivo desconocido" y haga clic en "Aceptar".

En la ventana, abra el archivo de especificar la ruta de acceso a la biblioteca "libsandstorm.so" y haga clic en "Abrir".
En la siguiente ventana, cambiar el "Tipo de procesador" a "processorARM710a ARM", a continuación, haga clic en "Set" y "Ok".

Si después de esto, habrá otra ventana con cualquier cosa, haga clic en "Aceptar". Ahora tiene que esperar a que el desmontaje. Este proceso es bastante largo, en este se puede ir a fumar o tomar café
El hecho de que la ingeniería inversa se ha completado, se mostrará un mensaje "El autoanálisis inicial se ha terminado." En la ventana inferior "casilla de salida.

Para mayor conveniencia, en este caso, haga clic en el botón derecho del ratón sobre un campo azul, y en el menú contextual, seleccione "Ver Texto". Mover al principio del código ensamblador para la búsqueda de "glViewport".

Resultado de la combinación de teclas "Alt + T" en el cuadro de diálogo para introducir la búsqueda "glViewport" y haga clic en "Aceptar".

Estamos interesados en función de las llamadas "BLX glViewport", "glViewport BL", "B glViewport", "glViewport BX", etc Todas las demás menciones de "glViewport" las ignoramos "Ctrl + T" y continuar la búsqueda.
Un lugar es necesario, cambiar a la hexagonal de Ver-A ".

Asegúrese de que la llamada a la función es de 4 bytes y un "CE F7 E8 D4" (en su caso, estas cifras pueden ser diferentes), es necesario para ver lo que hay que corregir y no accidentalmente sobrescribir nada extra.

Llamar a esta función que necesitamos para beber, ya que debe ser sustituido por "D4 E8 F7 CE" (en su caso, estas cifras pueden ser diferentes) sobre "C0 46 C0 46. Recuerde que la dirección "001F994A" y ejecutar el editor hexadecimal, yo uso "UltraEdit". Abierto a nuestra biblioteca.

Con el fin de llevarnos a la dirección correcta, haga clic en las teclas "Ctrl + G", en el cuadro de entrada aparecerá "0x001F994A" y haga clic en "Aceptar".

En movimiento, vemos que afectó a donde quieras, todo el código hexadecimal converge al hecho de que vimos en "IDA Pro" ficha "Hex Ver-A".

Corregir el marcado "CE F7 D4 E8" en la "C0 46 C0 46.

Cambia a "IDA Pro" y continuar para buscar el siguiente se llama "glViewport", puede haber varias decenas. Ellos han sido tratados de manera similar.
Cuando todas las llamadas a la bebida, se conserva. Copiar para colocar una versión revisada del "libsandstorm.so". Paquetes de ank-archivo y configurar el teléfono para comprobarlo. Si se hace correctamente, el smashtabiruetsya programación completa hasta que el permiso necesario.

2. Ajuste de pantalla táctil de la red

Incluso cuando hemos optimizado el gráfico de pantalla HVGA / QVGA y todos los botones en la pantalla que aparecen en los lugares correctos en la pantalla táctil la red están en el viejo campo, fuera de la pantalla.
Se parece a esto.

1 - Este es el lugar actual de la elaboración de un botón.
2 - Un viejo lugar de la prestación en el botón y la ubicación actual de los botones de la pantalla táctil la red.
Solución es bastante simple, es necesario asegurarse de que al tocar la pantalla en el punto 1, el juego pensado que el toque en el punto 2. Para que esto cuenta como ha cambiado, como resultado de la etapa anterior, las coordenadas elaborado botones de la pantalla. Para averiguarlo, tenemos que calcular la relación de cuántas veces la resolución de pantalla HVGA / QVGA menos WVGA.
Código
Para HVGA [/ B]
X: 800/480 = 1,666666666666667
Y: 480/320 = 1,5
Para QVGA [/ B]
X: 800/320 = 2.5
Y: 480 / 240 = 2

Por tanto, si las coordenadas de los botones en la pantalla WVGA, por ejemplo, se 700h360, a continuación, la pantalla HVGA, ya coordenadas 420h240 (700 / 1,666666666666667 = 420, 360 / 1,5 = 240). Este patrón se mantiene para el resto de botones en la pantalla.
Esa es nuestra tarea para asegurarse de que cuando un jugador toca las coordenadas 420h240 juego pensó que estaba tocado en las coordenadas 700h360.
De esto se desprende que sólo las coordenadas de la pantalla táctil para multiplicar por 1,666666666666667 X, Y de entre 1,5 y pantalla HVGA de 2,5 y X, Y 2 para QVGA.
Lo haremos en el controlador de eventos con pantalla táctil "onTouchEvent". Con la búsqueda nos encontramos con que tiene los archivos "GameInstaller.smali" y "Sandstorm.smali". Queremos a alguien que está en el archivo "Sandstorm.smali".

Código:
. Método onTouchEvent público (Landroid / ver / MotionEvent Z
. Locales 10
. Parámetros "evento"
. Prólogo
const / 4 v9, 0x1
const / 4 v8, 0x0
. Línea 379
invocar virtual {p1}, ver Landroid / / MotionEvent; - getAction> () que
movimiento número v0
. Línea 380
. V0 local, la acción: I
and-int/lit16 v4, v0, 0xff
. Línea 382
. Locales v4, la máscara: Yo
invocar virtual {p1}, ver Landroid / / MotionEvent; - getPointerCount> () que
movimiento número v1
. Línea 383
. V1 local, cuenta: yo
const v6, 0xff00
and-int/2addr v6, v0
shr-int/lit8 v5, v6, 0x8
. Línea 388
. Locales v5, pointerId: Yo
si v0-nez,: cond_0
. Línea 390
invocar virtual {p1} v8, vista Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
invocar virtual {p1} v8, vista Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
invocar-directa {p0, v6, v7, v8}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchPressed (III) V
. Línea 394
: Cond_0
const / 4 v6, 0x5
si ne-v4, v6,: cond_1
. Línea 397
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
invocar-directa {p0, v6, v7, v5}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchPressed (III) V
. Línea 400
: Cond_1
const / 4 v6, 0x2
si ne-v0, v6,: cond_2
. Línea 402
const / 4 v2, 0x0
. Locales v2, i: I
: Goto_0
si ge-v2, v1: cond_2
. Línea 403
invocar virtual {p1, v2}, ver Landroid / / MotionEvent; - getPointerId> (yo)
movimiento número v3
. Línea 405
. Locales v3, id: Yo
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
invocar-directa {p0, v6, v7, v3}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchMoved (III) V
. Línea 402
add-int/lit8 v2, v2, 0x1
Ir a: goto_0
. Línea 409
. Fin locales v2 # i: I
. Fin locales v3 # id: Yo
: Cond_2
const / 4 v6, 0x6
si ne-v4, v6,: cond_3
. Línea 412
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6

flotador-a-int v6, v6
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
invocar-directa {p0, v6, v7, v5}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchReleased (III) V
. Línea 415
: Cond_3
si ne-v0, v9,: cond_4
. Línea 416
const / 4 v2, 0x0
. Reinicie locales v2 # i: I
: Goto_1
si ge-v2, v1: cond_4
. Línea 418
invocar virtual {p1, v2}, ver Landroid / / MotionEvent; - getPointerId> (yo)
movimiento número v3
. Línea 421
. Reinicie locales v3 # id: yo
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
invocar-directa {p0, v6, v7, v3}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchReleased (III) V
. Línea 416
add-int/lit8 v2, v2, 0x1
Ir a: goto_1
. Línea 427
. Fin locales v2 # i: I
. Fin locales v3 # id: Yo
: Cond_4
volver v9
. Método de finalización

Llamamos la atención a la funciónes que nos interesan:

Código:
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> getX (I) F
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> Gety (I) F

Estas funciones y definir las coordenadas de tocar la pantalla táctil, inmediatamente después de ellos, multiplicamos las coordenadas en una coeficientes calculados.
Para HVGA debe hacerlo.

Código:
. Método onTouchEvent público (Landroid / ver / MotionEvent Z
. Locales 10
. Parámetros "evento"
. Prólogo
const / 4 v9, 0x1
const / 4 v8, 0x0
. Línea 379
invocar virtual {p1}, ver Landroid / / MotionEvent; - getAction> () que
movimiento número v0
. Línea 380
. V0 local, la acción: I
and-int/lit16 v4, v0, 0xff
. Línea 382
. Locales v4, la máscara: Yo
invocar virtual {p1}, ver Landroid / / MotionEvent; - getPointerCount> () que
movimiento número v1
. Línea 383
. V1 local, cuenta: yo
const v6, 0xff00
and-int/2addr v6, v0
shr-int/lit8 v5, v6, 0x8
. Línea 388
. Locales v5, pointerId: Yo
si v0-nez,: cond_0
. Línea 390
invocar virtual {p1} v8, vista Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
mul-int/lit8 v6, v6, 0xa
div-int/lit8 v6, v6, 0x6
invocar virtual {p1} v8, vista Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
mul-int/lit8 v7, v7, 0x3
div-int/lit8 v7, v7, 0x2
invocar-directa {p0, v6, v7, v8}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchPressed (III) V
. Línea 394
: Cond_0
const / 4 v6, 0x5
si ne-v4, v6,: cond_1
. Línea 397
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
mul-int/lit8 v6, v6, 0xa
div-int/lit8 v6, v6, 0x6
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
mul-int/lit8 v7, v7, 0x3
div-int/lit8 v7, v7, 0x2
invocar-directa {p0, v6, v7, v5}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchPressed (III) V

. Línea 400
: Cond_1
const / 4 v6, 0x2
si ne-v0, v6,: cond_2
. Línea 402
const / 4 v2, 0x0
. Locales v2, i: I
: Goto_0
si ge-v2, v1: cond_2
. Línea 403
invocar virtual {p1, v2}, ver Landroid / / MotionEvent; - getPointerId> (yo)
movimiento número v3
. Línea 405
. Locales v3, id: Yo
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
mul-int/lit8 v6, v6, 0xa
div-int/lit8 v6, v6, 0x6
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
mul-int/lit8 v7, v7, 0x3
div-int/lit8 v7, v7, 0x2
invocar-directa {p0, v6, v7, v3}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchMoved (III) V
. Línea 402
add-int/lit8 v2, v2, 0x1
Ir a: goto_0
. Línea 409
. Fin locales v2 # i: I
. Fin locales v3 # id: Yo
: Cond_2
const / 4 v6, 0x6
si ne-v4, v6,: cond_3
. Línea 412
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
mul-int/lit8 v6, v6, 0xa
div-int/lit8 v6, v6, 0x6
invocar virtual {p1, v5}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
mul-int/lit8 v7, v7, 0x3
div-int/lit8 v7, v7, 0x2
invocar-directa {p0, v6, v7, v5}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchReleased (III) V
. Línea 415
: Cond_3
si ne-v0, v9,: cond_4
. Línea 416
const / 4 v2, 0x0
. Reinicie locales v2 # i: I
: Goto_1
si ge-v2, v1: cond_4

. Línea 418
invocar virtual {p1, v2}, ver Landroid / / MotionEvent; - getPointerId> (yo)
movimiento número v3
. Línea 421
. Reinicie locales v3 # id: yo
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> getX (I) F
movimiento número v6
flotador-a-int v6, v6
mul-int/lit8 v6, v6, 0xa
div-int/lit8 v6, v6, 0x6
invocar virtual {p1, v3}, ver Landroid / / MotionEvent; -> Gety (I) F
movimiento número v7
flotador-a-int v7, v7
mul-int/lit8 v7, v7, 0x3
div-int/lit8 v7, v7, 0x2
invocar-directa {p0, v6, v7, v3}, FCM / gameloft / android / Gand / GloftMCHP / Tormenta de arena; -> nativeTouchReleased (III) V
. Línea 416
add-int/lit8 v2, v2, 0x1
Ir a: goto_1
. Línea 427
. Fin locales v2 # i: I
. Fin locales v3 # id: Yo
: Cond_4
volver v9
. Método de finalización


Aquí está el código que hemos añadido a la función
Código :
mul-int/lit8 v6, v6, 0xa
div-int/lit8 v6, v6, 0x6
...
mul-int/lit8 v7, v7, 0x3
div-int/lit8 v7, v7, 0x2

Espero que todos hayan entendido que multiplicar por 10 (A en hexadecimal) y se divide en 6, que es lo mismo que multiplicar por 1,666666666666667 y multiplicando por 3 y dividirlo por 2 - lo mismo que multiplicar por 1,5.

En principio, podemos proceder de manera diferente y multiplicar las coordenadas del código en la función "onTouchEvent" no añadir, en cambio, para crear funciones alternativas "nativeTouchPressedMod", "nativeTouchMovedMod", "nativeTouchReleasedMod". Reemplazarlos, llamó a "onTouchEvent" características originales "nativeTouchPressed", "nativeTouchMoved", "nativeTouchReleased". Y en funciones alternativas para multiplicar las coordenadas y los llamamos a la función original. Esto es especialmente útil en aquellos juegos en los que en lugar de un 3 funciones "nativeTouchPressed", "nativeTouchMoved", "nativeTouchReleased" utiliza un "nativeOnTouch" (un ejemplo de un juego "Hero of Sparta", sigue habiendo una necesidad de crear sólo una-c función alternativa "nativeOnTouchMod", y sólo en uno hay que añadir la multiplicación de código de coordenadas, que es más conveniente. Aunque este método es más conveniente, me parece que sería más difícil para los principiantes, en este no lo voy a describir en detalle. Si alguien quiere conocer mejor este método, se puede ver cómo se implementa en el "Hero of Sparta", acaba de comparar los archivos "HeroOfSparta.smali" con la versión original y la versión optimizada para HVGA / QVGA.

No se porq no me deja poner el link de las imagenes subidas en el otro post espero q lo puedan entender
Esta es la parte 1 del tuto para pasar los juegos...q alguien se anime a hacer el copy past de la 2 parte
Gracias por supuesto al muchacho q lo puso en T¡(Mauro Gonzales) no se si sera de el o le pertenecera a otro
Alex 19 16v
Alex 19 16v
Admin

Mensajes : 295
Fecha de inscripción : 08/10/2011
Edad : 38
Localización : españa/asturias

Hoja de personaje
Gandroid: 0

http://huawei.creaforo.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.