Esitellään uusi metodi, kriittinen osuma ja asetetaan sen arvoksi 15
private int crit = 15;
Annetaan critin arvoksi voima + 15
crit = getVoima() + 15;
Luodaan muualla mahdollisesti muokattava arvo getCrit ja käsketään sen palauttaa crit
public int getCrit(){
return crit;
}
Luodaan if lause joka määrää kriittisen osuman arvon joka tulee aina kun taistelijan kriittinen arvo ylittää työkaluista tulevan arvon. Kriittinen osuma tekee normaalin osuman lisäksi 15
if (tyokalut.getLuku() <= hyokkaaja.getCrit()){
teho = teho + 15;
naytto.nayta(hyokkaaja.getNimi() + "lyö kriittisen osuman" + " " + teho);
Lisätään perään else lause joka kertoo mitä tapahtuu jos edellä mainittu ei toteudu
} else { naytto.nayta(hyokkaaja.getNimi() + " lyö " + teho);
Lisätään infoon myös kriittinen arvo
public String getInfo() {
return "Nimi: " + nimi + "\n" +
"Voima: " + voima + "\n" +
"Kestävyys: " + kestavyys + "\n" +
"crit " + crit;
}
perjantai 7. helmikuuta 2014
keskiviikko 5. helmikuuta 2014
Naytto.java ja Taistelu.java
Tuodaan jälleen javan työkaluja käyttöön
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
Luodaan olentoluokka JFrame joka luo erillisen käyttöruudun jolle peli laitetaan.
public class Naytto extends JFrame {
Luodaan erilliselle näytölle (jframe) sisältöä mukaanlukien 2 kohtaa alapaneeliin, 2 nappia. pelaajien elämää kuvastavat palkit ja tuodaan muusta luokasta pelin ominaisuudet sisään
Container contentPane;
JEditorPane editorPane;
JPanel alapaneeli;
JPanel alapaneeli2;
JPanel ylapaneeli;
JButton nappi1;
JButton nappi2;
JButton nappiJatka;
JLabel lblPelaaja;
JLabel lblVastustaja;
JProgressBar barPelaaja;
JProgressBar barVastustaja;
StringBuffer ikkunanTeksti;
Peli peli;
Seuraavaksi käynnistetään erillinen ruutu kun peli ajetaan consolessa
public Naytto() {
ikkunanTeksti = new StringBuffer("");
initUI();
initLayout();
initButtons();
kaynnistaPeli();
}
Asetetaan jo mainittujen tietojen arvot erilleseen ruutuun. esim. kerrotaan mitä nappi tarkoittaa: "nappi1 = new JButton ("Kyllä");"
private void initUI() {
setSize(800, 600);
setTitle("Kauhavan Lukion Peli");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
editorPane = new JEditorPane();
nappi1 = new JButton("Kyllä");
nappi2 = new JButton("Ei");
nappiJatka = new JButton("Jatka");
barPelaaja = new JProgressBar(0,100);
barPelaaja.setString("Pelaaja:");
lblPelaaja = new JLabel("Pelaaja:");
lblVastustaja = new JLabel("Vastustaja:");
barVastustaja = new JProgressBar(0,100);
barVastustaja.setString("Vastustaja");
}
Asetetaan napit ja muut annetut ominaisuudet omille paikoilleen ruudulla.
private void initLayout() {
contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
alapaneeli = new JPanel();
alapaneeli.setLayout(new FlowLayout());
alapaneeli.add(nappi1);
alapaneeli.add(nappi2);
alapaneeli2 = new JPanel();
alapaneeli2.add(nappiJatka);
ylapaneeli = new JPanel();
ylapaneeli.add(lblPelaaja);
ylapaneeli.add(barPelaaja);
ylapaneeli.add(lblVastustaja);
ylapaneeli.add(barVastustaja);
contentPane.add(editorPane, BorderLayout.CENTER);
contentPane.add(alapaneeli, BorderLayout.PAGE_END);
contentPane.add(ylapaneeli, BorderLayout.PAGE_START);
}
Kerrotaan mitä nappi tekee kun sitä painetaan tai ollaan painamatta.
private void initButtons() {
nappi1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
peli.suorita("kylla");
}
});
nappi2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
peli.suorita("ei");
}
});
nappiJatka.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
peli.suorita("jatka");
}
});
}
Kerrotaan mitä ohjelman kuuluu tehdä kun se ajetaan
private void kaynnistaPeli() {
peli = new Peli(this);
peli.aloitaPeli();
}
public void nayta(String _str) {
ikkunanTeksti.append(_str + "\n");
editorPane.setText(ikkunanTeksti.toString());
}
public void tyhjaa() {
ikkunanTeksti = new StringBuffer("");
editorPane.setText(ikkunanTeksti.toString());
}
Tuodaan taistelu
public void naytaTaistelu(String _pelaaja, String _vastustaja, int _pelaajanKestavyys, int _vastustajanKestavyys) {
lblPelaaja.setText(_pelaaja);
lblVastustaja.setText(_vastustaja);
barPelaaja.setMaximum(_pelaajanKestavyys);
barPelaaja.setValue(_pelaajanKestavyys);
barVastustaja.setMaximum(_vastustajanKestavyys);
barVastustaja.setValue(_vastustajanKestavyys);
}
Synkronoidaan Taistelun tapahtumat ruudulla olevien palkkien kanssa
public void paivitaTaistelu(int _lifeP, int _lifeV) {
barPelaaja.setValue(_lifeP);
barVastustaja.setValue(_lifeV);
}
public void naytaJatka() {
contentPane.remove(alapaneeli);
contentPane.add(alapaneeli2, BorderLayout.PAGE_END);
alapaneeli.repaint();
}
public void naytaKyllaEi() {
contentPane.remove(alapaneeli2);
contentPane.add(alapaneeli, BorderLayout.PAGE_END);
alapaneeli.repaint();
}
public void ylapaneeliPaalla(boolean paalla) {
}
}
Luodaan taistelu ja sen sisälle olentoja. 2 taistelijaa, vuoroteltava hyökkääjä ja puolustaja ja muissa luokissa olevat tiedot kuten tyokalut
public class Taistelu {
private Olento taistelija1;
private Olento taistelija2;
private Olento hyokkaaja;
private Olento puolustaja;
private Olento apu;
private Tyokalut tyokalut;
private Naytto naytto;
public Taistelu(Olento _t1, Olento _t2, Naytto _naytto) {
naytto = _naytto;
tyokalut = new Tyokalut();
asetetaan taistelijoille arvot ja kerrotaan kuka taistelee ketä vastaan ja mitkä ominaisuudet hahmoilla on
taistelija1 = _t1;
taistelija2 = _t2;
hyokkaaja = taistelija1;
puolustaja = taistelija2;
naytto.nayta("**********************");
naytto.nayta("*** Taistelu alkaa ***");
naytto.nayta("**********************");
naytto.nayta(taistelija1.getNimi()
+ " VASTAAN " + taistelija2.getNimi());
naytto.naytaTaistelu(taistelija1.getNimi(),taistelija2.getNimi(),taistelija1.getKunto(),taistelija2.getKunto());
}
Kerrotaan taistelun "säännöt", taistelu päättyy kun toisen taistelijan elämät loppuvat
public Olento taisteleKierros() { // Palauttaa voittajan, jos taistelu päättyy
int noppa = 0;
int teho = 0;
if ( taistelija1.getKunto() < 1 ) return taistelija2; // Taistelu on päättynyt
if ( taistelija2.getKunto() < 1 ) return taistelija1; // Taistelu on päättynyt
noppa = tyokalut.getLuku()/3;
teho = noppa + hyokkaaja.getVoima();
naytto.nayta(hyokkaaja.getNimi() + " lyö " + teho);
puolustaja.vaurioita(teho);
naytto.paivitaTaistelu(taistelija1.getKunto(),taistelija2.getKunto());
apu = puolustaja;
puolustaja = hyokkaaja;
hyokkaaja = apu;
Käytetään jos lauseita selvittämääb koska taistelu loppuu ja kumpi voittaa. eli jos taistelijan 1 kunto on alle 1 voittaa taistelija 2 jne.
if ( taistelija1.getKunto() < 1 ) return taistelija2; // Taistelu on päättynyt
if ( taistelija2.getKunto() < 1 ) return taistelija1; // Taistelu on päättynyt
return null; // Taistelu vielä kesken
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
Luodaan olentoluokka JFrame joka luo erillisen käyttöruudun jolle peli laitetaan.
public class Naytto extends JFrame {
Luodaan erilliselle näytölle (jframe) sisältöä mukaanlukien 2 kohtaa alapaneeliin, 2 nappia. pelaajien elämää kuvastavat palkit ja tuodaan muusta luokasta pelin ominaisuudet sisään
Container contentPane;
JEditorPane editorPane;
JPanel alapaneeli;
JPanel alapaneeli2;
JPanel ylapaneeli;
JButton nappi1;
JButton nappi2;
JButton nappiJatka;
JLabel lblPelaaja;
JLabel lblVastustaja;
JProgressBar barPelaaja;
JProgressBar barVastustaja;
StringBuffer ikkunanTeksti;
Peli peli;
Seuraavaksi käynnistetään erillinen ruutu kun peli ajetaan consolessa
public Naytto() {
ikkunanTeksti = new StringBuffer("");
initUI();
initLayout();
initButtons();
kaynnistaPeli();
}
Asetetaan jo mainittujen tietojen arvot erilleseen ruutuun. esim. kerrotaan mitä nappi tarkoittaa: "nappi1 = new JButton ("Kyllä");"
private void initUI() {
setSize(800, 600);
setTitle("Kauhavan Lukion Peli");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
editorPane = new JEditorPane();
nappi1 = new JButton("Kyllä");
nappi2 = new JButton("Ei");
nappiJatka = new JButton("Jatka");
barPelaaja = new JProgressBar(0,100);
barPelaaja.setString("Pelaaja:");
lblPelaaja = new JLabel("Pelaaja:");
lblVastustaja = new JLabel("Vastustaja:");
barVastustaja = new JProgressBar(0,100);
barVastustaja.setString("Vastustaja");
}
Asetetaan napit ja muut annetut ominaisuudet omille paikoilleen ruudulla.
private void initLayout() {
contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
alapaneeli = new JPanel();
alapaneeli.setLayout(new FlowLayout());
alapaneeli.add(nappi1);
alapaneeli.add(nappi2);
alapaneeli2 = new JPanel();
alapaneeli2.add(nappiJatka);
ylapaneeli = new JPanel();
ylapaneeli.add(lblPelaaja);
ylapaneeli.add(barPelaaja);
ylapaneeli.add(lblVastustaja);
ylapaneeli.add(barVastustaja);
contentPane.add(editorPane, BorderLayout.CENTER);
contentPane.add(alapaneeli, BorderLayout.PAGE_END);
contentPane.add(ylapaneeli, BorderLayout.PAGE_START);
}
Kerrotaan mitä nappi tekee kun sitä painetaan tai ollaan painamatta.
private void initButtons() {
nappi1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
peli.suorita("kylla");
}
});
nappi2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
peli.suorita("ei");
}
});
nappiJatka.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
peli.suorita("jatka");
}
});
}
Kerrotaan mitä ohjelman kuuluu tehdä kun se ajetaan
private void kaynnistaPeli() {
peli = new Peli(this);
peli.aloitaPeli();
}
public void nayta(String _str) {
ikkunanTeksti.append(_str + "\n");
editorPane.setText(ikkunanTeksti.toString());
}
public void tyhjaa() {
ikkunanTeksti = new StringBuffer("");
editorPane.setText(ikkunanTeksti.toString());
}
Tuodaan taistelu
public void naytaTaistelu(String _pelaaja, String _vastustaja, int _pelaajanKestavyys, int _vastustajanKestavyys) {
lblPelaaja.setText(_pelaaja);
lblVastustaja.setText(_vastustaja);
barPelaaja.setMaximum(_pelaajanKestavyys);
barPelaaja.setValue(_pelaajanKestavyys);
barVastustaja.setMaximum(_vastustajanKestavyys);
barVastustaja.setValue(_vastustajanKestavyys);
}
Synkronoidaan Taistelun tapahtumat ruudulla olevien palkkien kanssa
public void paivitaTaistelu(int _lifeP, int _lifeV) {
barPelaaja.setValue(_lifeP);
barVastustaja.setValue(_lifeV);
}
public void naytaJatka() {
contentPane.remove(alapaneeli);
contentPane.add(alapaneeli2, BorderLayout.PAGE_END);
alapaneeli.repaint();
}
public void naytaKyllaEi() {
contentPane.remove(alapaneeli2);
contentPane.add(alapaneeli, BorderLayout.PAGE_END);
alapaneeli.repaint();
}
public void ylapaneeliPaalla(boolean paalla) {
}
}
Luodaan taistelu ja sen sisälle olentoja. 2 taistelijaa, vuoroteltava hyökkääjä ja puolustaja ja muissa luokissa olevat tiedot kuten tyokalut
public class Taistelu {
private Olento taistelija1;
private Olento taistelija2;
private Olento hyokkaaja;
private Olento puolustaja;
private Olento apu;
private Tyokalut tyokalut;
private Naytto naytto;
public Taistelu(Olento _t1, Olento _t2, Naytto _naytto) {
naytto = _naytto;
tyokalut = new Tyokalut();
asetetaan taistelijoille arvot ja kerrotaan kuka taistelee ketä vastaan ja mitkä ominaisuudet hahmoilla on
taistelija1 = _t1;
taistelija2 = _t2;
hyokkaaja = taistelija1;
puolustaja = taistelija2;
naytto.nayta("**********************");
naytto.nayta("*** Taistelu alkaa ***");
naytto.nayta("**********************");
naytto.nayta(taistelija1.getNimi()
+ " VASTAAN " + taistelija2.getNimi());
naytto.naytaTaistelu(taistelija1.getNimi(),taistelija2.getNimi(),taistelija1.getKunto(),taistelija2.getKunto());
}
Kerrotaan taistelun "säännöt", taistelu päättyy kun toisen taistelijan elämät loppuvat
public Olento taisteleKierros() { // Palauttaa voittajan, jos taistelu päättyy
int noppa = 0;
int teho = 0;
if ( taistelija1.getKunto() < 1 ) return taistelija2; // Taistelu on päättynyt
if ( taistelija2.getKunto() < 1 ) return taistelija1; // Taistelu on päättynyt
noppa = tyokalut.getLuku()/3;
teho = noppa + hyokkaaja.getVoima();
naytto.nayta(hyokkaaja.getNimi() + " lyö " + teho);
puolustaja.vaurioita(teho);
naytto.paivitaTaistelu(taistelija1.getKunto(),taistelija2.getKunto());
apu = puolustaja;
puolustaja = hyokkaaja;
hyokkaaja = apu;
Käytetään jos lauseita selvittämääb koska taistelu loppuu ja kumpi voittaa. eli jos taistelijan 1 kunto on alle 1 voittaa taistelija 2 jne.
if ( taistelija1.getKunto() < 1 ) return taistelija2; // Taistelu on päättynyt
if ( taistelija2.getKunto() < 1 ) return taistelija1; // Taistelu on päättynyt
return null; // Taistelu vielä kesken
}
}
Tilaa:
Blogitekstit (Atom)