En esta última me dice:
Citar
Fijate que vos seguís creando temas sobre algún programa que estás haciendo de la manera equivocada, al estilo: "shh... no me digas como debería aprender a programar para poder crear juegos como este o mucho mejores, solamente decime como sigo con el programa del modo que lo estoy creando yo".
Es simplemente terquedad. Algo tan básico, que no has podido superar con más de 30 años.
Es simplemente terquedad. Algo tan básico, que no has podido superar con más de 30 años.
Le digo:
Citar
Varios programadores o a quienes les gusta el tema creen que existe algo similar a "el modo correcto de programar", pero no todos somos así. A ver, te pongo un par de ejemplos de programas "mal hechos" (probablemente) y nos cuentas cómo los harías.
Este es de un personaje que camina, ataca, se agacha, etc. No sé por qué del modo que lo hice parece excesivamente complicado. Es este:
https://www.youtube.com/watch?v=PGmIbgmc6qI
Su nombre original es Bond, lo que pasa que en la versión en inglés cambiaron de todo.
El siguiente creo que es una búsqueda de la serie de acciones más corta con la cual se logre el objetivo de vencer al enemigo. También esto parece excesivamente complicado.
Este es de un personaje que camina, ataca, se agacha, etc. No sé por qué del modo que lo hice parece excesivamente complicado. Es este:
https://www.youtube.com/watch?v=PGmIbgmc6qI
Su nombre original es Bond, lo que pasa que en la versión en inglés cambiaron de todo.
Código
fscommand ("fullscreen", "true"); Player.Facing = 1; Player.Attacking = 0; Player.Action = 1; // 0 crouching, 0.5 startingjump, 1 nothing, 2 walking, 3 falling, 3.5 minjump, 4 jumping. // ///////////////////////////////////////////// // ////////////////// Bond /////////////////// // ///////////////////////////////////////////// function PersControl () { if (Player.Action == 2) { // Si el personaje está caminando. if (Key.isDown(65)) { // Si se presiona A. StartingJump(); } else if (Key.isDown(83)) { // Si se presiona S. Attack(); } else if (Key.isDown(40)) { // Si se presiona abajo. Crouch(); } else if (Key.isDown(39)) { // Si se presiona derecha. FaceRight(); Player._x = Player._x+0.9; } else if (Key.isDown(37)) { // Si se presiona izquierda. FaceLeft(); Player._x = Player._x-0.9; } else { Quiet(); } //FALTA THROW } else if (Player.Attacking == 0) { // Si el personaje no está atacando. if (Player.Action == 1) { // Si el personaje está en reposo. if (Key.isDown(65)) { // Si se presiona A. StartingJump(); } else if (Key.isDown(83)) { // Si se presiona S. Attack(); } else if (Key.isDown(40)) { // Si se presiona abajo. Crouch(); } else if (Key.isDown(39)) { // Si se presiona derecha. FaceRight(); Player._x = Player._x+0.9; Walk(); } else if (Key.isDown(37)) { // Si se presiona izquierda. FaceLeft(); Player._x = Player._x-0.9; Walk(); } //FALTA THROW } else if (Player.Action == 3) { // Si el personaje está cayendo. Player.SpeedY = Player.SpeedY+0.1; MovingJump(); if (Player._y>=554) { // Si el personaje toca el suelo. Player._y = 554; // Acá no debería haber Quiet sino FallEnd o... // depende de la velocidad de la caída??? Quiet(); } //FALTA: AT, THROW } else if (Player.Action == 4) { // Si el personaje está saltando. Jump(); //FALTA: AT, THROW } else if (Player.Action == 0.5) { // Si el personaje está empezando a saltar. if (Key.isDown(39)) { // Si se presiona derecha. if (Player.Facing == -1) { Player.Facing = 1; } Player.SpeedX = 0.9; } else if (Key.isDown(37)) { // Si se presiona izquierda. if (Player.Facing == 1) { Player.Facing = -1; } Player.SpeedX = -0.9; } else { Player.SpeedX = 0; } //FALTA: AT, THROW, Down? } else if (Player.Action == 0) { // Si el personaje está agachado. if (Key.isDown(40)) { // Si se presiona abajo. if (Key.isDown(65)) { // Si se presiona A. StartingJump(); } else if (Key.isDown(83)) { // Si se presiona S. Player.Attacking = 1; Player.gotoAndPlay(124); } } else { Quiet (); } } else if (Player.Action == 3.5) { // Si el personaje está saltando pero aún no llegó a cierta altura. Player.SpeedY = Player.SpeedY+0.1; if (Player.SpeedY<-3) { MovingJump(); } else { // Si el personaje llegó a cierta altura (y perdió cierta velocidad). Player.Action = 4; Jump(); } //FALTA: AT, THROW??? } //¿FALTA: AT, THROW, AG? } } //JUMP, AG WHILE STARTING AT? AFTER? //AG // Otras funciones. function StartingJump () { Player.gotoAndPlay(96); Player.Action = 0.5; } function MovingJump () { Player._x = Player._x+Player.SpeedX; Player._y = Player._y+Player.SpeedY; } function MinJump () { Player.Action = 3.5; Player.SpeedY = -4; MovingJump(); } function Jump () { if (Key.isDown(65)) { // Si se presiona A. Player.SpeedY = Player.SpeedY+0.1; if (Player.SpeedY>=0) { // Si el personaje comienza a caer. Fall(); } } else { // Si se suelta A. Player.SpeedY = 0.1; Fall(); } MovingJump(); } function Fall () { Player.Action = 3; Player.play(); } function Walk () { Player.gotoAndPlay(35); Player.Action = 2; } function Attack () { Player.gotoAndPlay(2); Player.Attacking = 1; Player.Action = 1; } function FaceRight () { if (Player.Facing == -1) { Player.Facing = 1; Player._xscale = 100; } } function FaceLeft () { if (Player.Facing == 1) { Player.Facing = -1; Player._xscale = -100; } } function Crouch () { Player.gotoAndStop(96); Player.Action = 0; } function Quiet () { Player.gotoAndStop(1); Player.Action = 1; } //Player.SpeedX = 0.9*Player.Facing; //Jump();
El siguiente creo que es una búsqueda de la serie de acciones más corta con la cual se logre el objetivo de vencer al enemigo. También esto parece excesivamente complicado.
Código
Repito, muéstranos el método correcto según tú de hacer esas cosas.
actions for fotograma 1 // Situación inicial. BaseHP = 10; Action = 1; BaseEnHP = 10; // Guardar Situación inicial. SitID = "S"+BaseHP+"_"+BaseEnHP; set (SitID+"HP", BaseHP); set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", "Ninguno"); // Variables de Unsolved situaciones. U = 0; Us = 0; actions for fotograma 2 // Reset Situación. HP = BaseHP; EnHP = BaseEnHP; trace ("La sit es: "+HP+"_"+EnHP); // Aplicación. trace ("Player attacks with "+Action+"!"); EnHP = EnHP-Action; trace ("EnHP reducido a: "+EnHP); // ¿Sol? if (EnHP<=0) { // Solución; iniciar mostrar lista. List = Action; gotoAndPlay (4); } else { // Sino, ambos están OK. // Efecto. trace ("Enemy attacks!"); HP = HP-1; trace ("HP reducido a: "+HP); if (0<HP) { // Ambos están OK. // ¿La situación está anotada? if (eval("S"+HP+"_"+EnHP+"HP") == undefined) { // No. Anotarla. SitID = "S"+HP+"_"+EnHP; set (SitID+"HP", BaseHP); set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", Action); trace ("Nueva sit anotada: "+SitID); Us = Us+1; SitID = "U"+Us; set (SitID+"HP", HP); set (SitID+"EnHP", EnHP); } // Sino, el enemigo ganó. } } actions for fotograma 3 // La situación existe o el jugador perdió. // ¿Modificar candidato es posible? if (Action<3) { // Modificación de candidato. Action = Action+2; gotoAndPlay (2); } else if (U<Us) { // Usar Unsolved. U = U+1; BaseHP = eval("U"+U+"HP"); BaseEnHP = eval("U"+U+"EnHP"); Action = 1; gotoAndPlay (2); } else { // No hay Solución. List = "No hay sol"; stop (); } actions for fotograma 5 SitID = eval("S"+BaseHP+"_"+BaseEnHP+"Action"); Base2HP = BaseHP; BaseHP = eval("S"+BaseHP+"_"+BaseEnHP+"HP"); BaseEnHP = eval("S"+Base2HP+"_"+BaseEnHP+"EnHP"); if (SitID != "Ninguno") { List = SitID+" "+List; gotoAndPlay (4); } else { stop (); } }
Su respuesta:
Citar
Aprendé a programar.
Le digo:
Citar
Si te dijera que aprendas a pensar o a algo que crees que haces bien, te parecería una mala sugerencia.
Yo no es que crea que programo bien, pero mi modo es el que conozco y el que me gusta, así que no sé si tu sugerencia es trolleo o buena, pero parece trolleo porque no explicas qué es lo que te parece que hago mal y cómo crees que está bien. Además mis programas funcionan bien, por lo tanto tan mal no programo.
Lo que debe hacerse es explicar por qué se considera que el otro debe aprender, indicar qué es lo que se cree que hace mal.
No me digas que hago todo mal porque ni tú te lo crees.
Te he dicho que hagas tú esos programas, no lo has hecho ¿cómo tomarte en serio entonces? Si no quieres dedicar tanto tiempo vale, pero sólo has criticado de modo muy superficial, como de costumbre. Sé más específico respecto a qué crees que está mal, nunca lo has sido que yo recuerde.
A ver
¿Eso crees que está mal, cómo lo harías?
Si crees que está bien agrega esto:
- Si se presiona S el personaje ataca parado o agachado según cómo haya estado
- Mientras ataca se detiene y no puede cancelar su ataque, no puede caminar. Tampoco puede reiniciar su ataque (puede cuando termine, cuando vuelve al estado "normal").
- Mientras ataca parado no puede agacharse, pero si está atacando agachado puede pararse
No sé si en mi programa lo hice así pero en el juego original acabo de ver que es así. No creo que sea difícil de hacer ni que tome tant tiempo y menos para un supuesto sabiondo como tú. Anda, muéstrame. Luego hablamos del salto.
Yo no es que crea que programo bien, pero mi modo es el que conozco y el que me gusta, así que no sé si tu sugerencia es trolleo o buena, pero parece trolleo porque no explicas qué es lo que te parece que hago mal y cómo crees que está bien. Además mis programas funcionan bien, por lo tanto tan mal no programo.
Lo que debe hacerse es explicar por qué se considera que el otro debe aprender, indicar qué es lo que se cree que hace mal.
No me digas que hago todo mal porque ni tú te lo crees.
Te he dicho que hagas tú esos programas, no lo has hecho ¿cómo tomarte en serio entonces? Si no quieres dedicar tanto tiempo vale, pero sólo has criticado de modo muy superficial, como de costumbre. Sé más específico respecto a qué crees que está mal, nunca lo has sido que yo recuerde.
A ver
Código:
Si se presiona abajo
personaje se agacha
sino si se presiona derecha
personaje queda mirando hacia la derecha
personaje se muestra caminando
personaje se mueve a la derecha
sino si se presiona izquierda
personaje queda mirando hacia la izquierda
personaje se muestra caminando
personaje se mueve a la izquierda
sino
personaje se muestra quieto
Si crees que está bien agrega esto:
- Si se presiona S el personaje ataca parado o agachado según cómo haya estado
- Mientras ataca se detiene y no puede cancelar su ataque, no puede caminar. Tampoco puede reiniciar su ataque (puede cuando termine, cuando vuelve al estado "normal").
- Mientras ataca parado no puede agacharse, pero si está atacando agachado puede pararse
No sé si en mi programa lo hice así pero en el juego original acabo de ver que es así. No creo que sea difícil de hacer ni que tome tant tiempo y menos para un supuesto sabiondo como tú. Anda, muéstrame. Luego hablamos del salto.
Responde:
Citar
Lee un libro.
Luego le escribí que por qué él es así, entre otras cosas, y le voy a mandar un link a este tema.
¿Uds qué opinan? ¿qué tienen mal mis códigos si es que lo tienen, cómo serían mejor? ¿o me está trolleando? ¿o está loco y es incapaz de entender lo que se le dice? Parece como si en serio él se creyera un genio (no sólo en programación se lo cree) y que cuando se le piden demostraciones una especie de personalidad alterna le surgiera y no va más allá de repetir esas frases, no entiendo.
El 1er código no está terminado, pero funciona casi todo bien salvo lo que le estaba agregando, dejé de programar eso porque se me hizo complicado.
El 2ndo funciona bien.
Yo admito que mis códigos parecen excesivamente complicados, es decir, creo que pueden simplificarse, pero no sé cómo pero no me voy a poner a leer libros como si cualquiera fuera a decirlo.
Gracias, perdón si estoy dando de comer a un troll pero como es una cosa desde años (hay tiempos en que no le respondí, él mismo ya no responde tanto) no puedo creer que lo sea, pero, o es alguien que por algún extraño motivo no quiere explicar las cosas, o es alguien que tiene una locura bárbara. Y si es un troll quisiera que me expliquen cómo puede existir gente así porque no entiendo cómo puede haber gente que repite las mismas tonterías durante años para romper las bolas, no entiendo, como si no hubiera cosas más interesantes que hacer.