Gå til innhold

Fred7555

Medlemmer
  • Innlegg

    1 381
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Fred7555

  1. Som sagt over, så returnerer ikke visTittel noen verdi.

    Det eneste metoden gjør, er å sette emne = "Matte", for å så returnere til main-metoden.

     

    Jeg hadde gjort noe ala:

     

    import javax.swing.JOptionPane;
    public class Main2 {
       public static void main(String[] args) {
          Kursbok2 kursbok2 = new Kursbok2("Matte");
          JOptionPane.showDialoge(null, kursbok2.visTittel());
       }
    }
     
     
     
    public class Kursbok2 {
       private String tittel;
       public Kursbok2(String tittel) {
          this.tittel= tittel;
       }
       public String visTittel() {
           return tittel;
       }
    }
    

     

    Da setter du tittelen i den initialiseres, og den skrives ut(returneres) via visTittel()-metoden.

  2. Lagde selv en ny character i en JPN-server, og er glad for det.

     

    Er det plass på EU-serveren, så spiller jeg der. Er det fult, så spiller jeg på den andre i Japan, hvor det aldri er fult og alt funker. Føler jeg for å beholde characteren på JPN, så overfører jeg den til en EU-server når problemene forsvinner.

     

     

    Er også glad jeg bestile en fysisk versjon av spillet.

    Kostet ca. det samme, fikk den i posten med alle kodene og alt på fredag, og inkludert Helm of Light (pga. Nordic Version).

  3. Usikker med hva du mener med "function restart", men kanskje noe sånt?

     

    Ved sjekking at lastebil2 har kjørt ferdig:

     

     

    import flash.events.Event;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    
    stage.addEventListener(Event.ENTER_FRAME, flyttLastebil);
    
    const END:int = (stage.stageWidth + 170 / 2);
    const START:int = (0 - 170 / 2);
    
    function flyttLastebil(evt:Event):void {
    if (lastebil1.x < END)
     lastebil1.x +=  10;
    
    else {
     lastebil2.x -=  10;
     if (lastebil2.x < START)
      restart();
    }
    }
    function restart():void {
     lastebil1.x = START;
     lastebil2.x = END;
    }
    

     

     

     

    Ved timer:

     

     

    import flash.events.Event;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    
    stage.addEventListener(Event.ENTER_FRAME, flyttLastebil);
    
    const END:int = (stage.stageWidth + 170 / 2);
    const START:int = (0 - 170 / 2);
    
    function flyttLastebil(evt:Event):void {
    if (lastebil1.x < END)
     lastebil1.x +=  10;
    
    else
     lastebil2.x -=  10;
    }
    var timer:Timer = new Timer(6000);
    timer.addEventListener(TimerEvent.TIMER, restart);
    timer.start();
    
    function restart(e:TimerEvent):void {
     lastebil1.x = START;
     lastebil2.x = END;
     timer.reset();
     timer.start();
    }
    

     

     

  4. Sikkert ikke den beste løsningen, men:

     

     

     

    import flash.events.Event;
    
    stage.addEventListener(Event.ENTER_FRAME, flyttLastebil);
    
    function flyttLastebil(evt:Event) {
    if (lastebil1.x < (stage.stageWidth + lastebil1.width / 2)) {
     lastebil1.x += 10;
     if (lastebil1.x > (stage.stageWidth + lastebil1.width / 2))
      lastebil2.x = stage.stageWidth + lastebil1.width / 2;
    }
    else {
     lastebil2.x -= 10;
     if (lastebil2.x < (0 - lastebil2.width / 2))
      lastebil1.x = 0 - lastebil2.width / 2;
    }
    }
    

     

     

  5. Om du ønsker å lage en liste med mat + antall kalorier i den via arrays, hadde jeg gjort noe lignende:

     

    // har en liste kalt input_list på scenes //
    var fruktNavn:Array = ["Eple", "Drue", "Banan", "Appelsin"];
    var fruktKalorier:Array = [100, 5, 200, 250];
    
    for (var i:int = 0; i < fruktNavn.length; i++) {
     var navn:String = fruktNavn[i];
     var kalorier:int = fruktKalorier[i];
     input_list.addItem({label:navn, data:kalorier});
    }
    

    Snutten over vil legge alle elementene i arrayet til i listen, samt legge kaloriene i data-feltet i listen (synes ikke visuelt, men ligger sammen med navnet).

    Du kan også bare bruke kalori-arrayet som det er, og bruke index for valgt liste-element for å finne index i kalori-arrayet.

     

    For å bruke koden over, kan du gjøre noe ala:

    input_list.addEventListener(MouseEvent.CLICK, onListClick);
    function onListClick(e:MouseEvent):void {
      output_txt.text = "Du valgte " + input_list.selectedItem.label " som inneholder " + input_list.selectedItem.data + " kalorier."
    // output_txt er et tekstfelt med navnet output_txt //
    }
    

     

    (Beklager eventuelle syntax-feil)

  6. Hva er en loop? Haha.. er helt på villspor jeg. Du har ikke lyst til å lage en kode?

    En loop er noe som repeterer en bestemt kode-snutt x antall ganger.

    Er mye brukt med array, da iterering gjennom array-elementer er veldig vanlig.

     

    Vi har mange forskjellige typer loops. Den jeg refererte til, og den mest brukte i begynnelsen med arrays, er for-loopen. Den er bygd opp slik:

    for (initialisering av variabel ; boolean for at loopen skal kjøre ; noe som skjer etter hver iterasjon)
    

     

    En basic for-loop kan se slik ut:

    for (var i:int = 0; i < 10; i++) {
      trace(i;)
    }
    

    Koden over vil skrive ut alle tallene fra 0 til og med 9.

    Det er fordi først blir i satt til 0, deretter skjer boolean-testen, så kjører loopen og til slutt økes i med én. Så skjer boolean-sjekken, loopen kjøres, i økes med én, boolean-sjekkes, loopen kjøres, i økes med én ...

    Slik skjer helt til i blir 10, boolean-sjekken feiler (siden 10 ikke er under 10), og den avsluttes.

     

    I forhold til array er følgende vanlig:

    for (var i:int = 0; i < arrayName.length; i++) {
      trace(arrayName[i]);
    }
    

     

    Ønsker vi for eksempel å summere alle tall i et array, kan vi enkelt gjøre slik:

    var arry:Array = [1, 2, 3, 4, 5];
    var sum:int = 0;
    for (var i:int = 0; i < arry.length; i++) {
      sum += arry[i];
    }
    (Sum vil nå være 1 + 2 + 3 + 4 + 5 = 15 etter loopen)
    

     

    Beklager eventuelle syntax-feil, litt uvant med Actionscript igjen etter snart et år med Java.

  7. Er ikke spesielt vanskelig å lage den (http://www.fettforbrenning.no), tar bare litt tid.

     

    For vekt, høyde og kjønn bruker du vanlige tekstfelt, radio buttons og knapper.

    Lag en funksjon som validerer input, kalkulerer tallene og printer ut resultatet.

     

    Neste del kan gjøres forskjellig, men jeg hadde gjort noe ala:

    - Definer kategoriene og informasjonen i XML.

    - Last inn XMLen i programmet, og lag to arrays (en med kategorier og en med informasjon).

    - Bruk en loop til å fylle listen og tekstfeltet.

    - Legg til en listener i listen, og vis korresponderende informasjon i tekstfeltet (bruk f.eks. valgt index i listen til å bestemme hvilket index informasjon ligger på).

  8. Koden funket fint det, bare å fylle inn riktig verdi.

     

    Brukte koden ovenfor, og la inn en boks hvor brukeren kan skrive inn HEX-koden, og det skrives ut i terminalen.

    Ikke særlig avansert GUI, så du får lage et bedre om du føler det trengs.

     

    Koden:

     

     

    import javax.swing.JOptionPane;
    public class Fargekode {
    public static void main(String[] arg) {
     Fargekode fk = new Fargekode();
     String input = JOptionPane.showInputDialog("Enter value in HEX: ");
     Integer[] arr = fk.getRGB(input);
    
     for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
     }
    }
    public Integer[] getRGB(String rgb) {
     Integer[] ret = new Integer[3];
     rgb = rgb.toUpperCase();
     if (rgb.length() == 6) {
      for (int i = 0; i < 3; i++) {
    ret[i] = hexToInt(rgb.charAt(i * 2), rgb.charAt(i * 2 + 1));
      }
     } else if (rgb.length() == 3) {
      for (int i = 0; i < 3; i++) {
    ret[i] = hexToInt(rgb.charAt(i), rgb.charAt(i));
      }
     }
     return ret;
    }
    private int hexToInt(char a, char b) {
     int x = a < 65 ? a - 48 : a - 55;
     int y = b < 65 ? b - 48 : b - 55;
     return x * 16 + y;
    }
    }

     

     

  9. Grunnen til den uendelige loopen er om du først skriver inn en String, så vil den aldri finne en nextInt.

    Om du venter på ny input inni loopen (input.next() eller lignende), så vil du ikke få en uendelig loop.

     

    Men du vil fremdeles få litt problemer.

    Personlig hadde jeg heller gjort noe slik:

     

     

    import java.util.Scanner;
    public class Oppgave02 {
    public static void main(String[] args) {
     System.out.println("Programmet regner ut når du blir pensjonist.\n");
     System.out.print("Hvor gammel er du? ");
     System.out.print("Du har " + getInt() + " år igjen til pensjonsalder.");
    }
    public static int getInt() {
     Scanner in = new Scanner(System.in);
     while (!in.hasNextInt()) {
      System.out.print("Hvor gammel er du? ");
      in.nextLine();
     }
     int age = in.nextInt();
     return 67 - age;
    }
    }

     

     

  10. Begynte å spille det i Closed Beta rundt november-desember, men spiller ikke spesielt mye lenger.

    Har noen 70 og 60 i HC, resten i SC.

     

    Sjekker fremdeles patch-notes og de ulike eventsene, så hender jeg prøver ut nye patches eller spennende races.

     

    EDIT: Finnes allerede en tråd med litt diskusjon rundt PoE, om noen vil sjekke den ut.

×
×
  • Opprett ny...