Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Jak dodać strzał postaci ?! :C


Rekomendowane odpowiedzi

Opublikowano

Siemka tak jak temacie piszę swoją grę i nie wiem jak dodać strzał pomoże ktoś ?

KOD :

 

 Start.java


 
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;
 
public class Start extends Applet implements KeyListener{
 
 
/**
*/
private static final long serialVersionUID = 1L;
static Applet applet;
int wielkoscX=800, wielkoscY=600;
Obliczanie zad = new Obliczanie();
Timer timer = new Timer();
Image bgimage;
Graphics bgGrap;
Image cegla, krzak, trawa, player, portal, ziemia, woda, lava, pajak, naboje, apteczka, xD;
 
 
public void init(){
applet = this;
applet.setSize(800,600);
applet.addKeyListener(this);
timer.scheduleAtFixedRate(zad, 10, 10);
play(getCodeBase(), "Melodia 2.mp3");
 
bgimage = createImage(wielkoscX, wielkoscY);
bgGrap = bgimage.getGraphics();
 
zad.tworzymyMape();
 
//Obrazki
 
cegla = getImage(getDocumentBase(),"obrazki/cegła.png");
xD = getImage(getDocumentBase(),"obrazki/x (36).gif");
krzak = getImage(getDocumentBase(),"obrazki/krzak.png");
ziemia = getImage(getDocumentBase(),"obrazki/ziemia.png");
player = getImage(getDocumentBase(),"obrazki/player.png");
woda = getImage(getDocumentBase(),"obrazki/woda.png");
lava = getImage(getDocumentBase(),"obrazki/lava.png");
pajak = getImage(getDocumentBase(),"obrazki/pająk.png");
naboje = getImage(getDocumentBase(),"obrazki/ammo.png");
apteczka = getImage(getDocumentBase(),"obrazki/apteczka.png");
 
}
public void update(Graphics g){
bgGrap.clearRect(0, 0, wielkoscX, wielkoscY);
paint(bgGrap);
g.drawImage(bgimage,0,0,applet);
}
//Napisy
public void paint(Graphics g){
 
 
g.setColor(Color.BLACK);
g.drawString("Konsola : "+zad.komunikatWKonsoli, 690, 575); //Konsola
 
//level postaci
 
//g.setColor(Color.BLUE);
//g.drawRect(690, 50, 100, 10);
//g.fillRect(690, 50, zad.expPostaci, 10);
//g.setColor(Color.BLUE);
//g.drawString("Level : " +zad.levelPostaci, 690, 45);
 
//exp postaci
 
//g.setColor(Color.YELLOW);
//g.drawRect(690, 20, 100, 10);
//g.fillRect(690, 20, zad.expPostaci, 10);
//g.setColor(Color.BLACK);
//g.drawString("Exp : " +zad.expPostaci, 690, 15);
 
//zdrowie postaci
 
g.fillRect(10, 480, zad.zyciePostaci, 0);
g.setColor(Color.BLACK);
g.drawString("Health : " +zad.zyciePostaci, 10, 475);
g.setColor(Color.RED);
g.drawRect(10, 480, 100, 10);
g.fillRect(10, 480, zad.zyciePostaci, 10);
g.setColor(Color.BLACK);
g.drawRect(10, 480, 100, 10);
g.setColor(Color.GREEN);
g.drawRect(10, 463, 100, 35);
 
//zdrowie przeciwnika
 
g.fillRect(10, 520, zad.zyciePostaci, 0);
g.setColor(Color.BLACK);
g.drawString("Healt wroga : " +zad.zyciePrzeciwnika, 10, 515);
g.setColor(Color.RED);
g.drawRect(10, 520, 6, 10);
g.fillRect(10, 520, zad.zyciePrzeciwnika, 10);
 
//Apteczki na mapie
 
g.fillRect(140, 480, zad.zyciePostaci, 0);
g.setColor(Color.BLACK);
g.drawString("Apteczki : " +zad.apteczki, 140, 475);
g.setColor(Color.RED);
g.drawRect(140, 480, 3, 10);
g.fillRect(140, 480, zad.apteczki, 10);
g.setColor(Color.BLACK);
g.drawRect(140, 480, 3, 10);
g.setColor(Color.GREEN);
g.drawRect(136, 463, 65, 35);
 
//mapa
rysujMapeGry(g);
}
public void rysujMapeGry(Graphics g){
 
for(int i=0;i<zad.mapa1.length;i++){
for(int j=0;j<zad.mapa1[0].length;j++){
 
switch(zad.mapa1[j]){
 
case 0:
g.drawImage(ziemia,20*j,20*i,this);
break;
case 1:
g.drawImage(ziemia,20*j,20*i,this);
g.drawImage(cegla,20*j,20*i,this);
break;
case 2:
g.drawImage(ziemia,20*j,20*i,this);
g.drawImage(portal,20*j,20*i,this);
break;
case 3:
g.drawImage(krzak,20*j,20*i,this);
break;
case 4:
g.drawImage(ziemia,20*j,20*i,this);
g.drawImage(player,20*j,20*i,this);
break;
case 5:
g.drawImage(woda,20*j,20*i,this);
break;
case 6:
g.drawImage(lava,20*j,20*i,this);
break;
case 7:
g.drawImage(pajak,20*j,20*i,this);
break;
case 8:
g.drawImage(naboje,20*j,20*i,this);
break;
case 9:
g.drawImage(apteczka, 20*j,20*i,this);
break;
case 10:
g.drawImage(xD, 50*j,25*i,this);
break;
 
}
}
}
 
}
//Klawisze
@Override
public void keyPressed(KeyEvent e) {
 
switch(e.getKeyCode()){
 
case 87:
zad.poruszaniePostcia('w');
break;
case 83:
zad.poruszaniePostcia('s');
break;
case 65:
zad.poruszaniePostcia('a');
break;
case 68:
zad.poruszaniePostcia('d');
break;
 
default:
System.out.println(e.getKeyCode());
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
 
 
}
@Override
public void keyTyped(KeyEvent e) {
 
 
}
 
 
}
 

Obliczanie

import java.util.TimerTask;

public class Obliczanie extends TimerTask{
	
	
	static int pozycjaNapisuX=700;
	static int pozycjaNapisuY=20;
	int kierunek=1;
	int przebytaDrogaNapisu=0;
	int mapa1[][] = new int[22][22]; 
	int pPostaciY=3, pPostaciX=3;
	int zyciePostaci=100;
	int Intro=100;
	int zyciePrzeciwnika=6;
	int expPostaci=0;
	int levelPostaci=1;
	int nabojeGracza=10;
	int apteczki=3;
	String komunikatWKonsoli, komunikatSmierci;
	
	@Override
	public void run() {
		
		if(zyciePostaci>100){
			zyciePostaci = 100;
		}
		
		if(zyciePostaci<=0){
			smiercGracza(true, 0, false, 90, 10, zyciePostaci);
			
		//}
		//if(expPostaci>100){
		//	expPostaci = 100;
			
		}	
		//if(levelPostaci>15){
			//levelPostaci = 15;
		
	//	}
		if(zyciePrzeciwnika>6){
			zyciePrzeciwnika = 6;
			
		}
		
		if(zyciePrzeciwnika<=0){
			smiercPrzeciwnika(0);
			
		if(Intro>100){
			Intro = 100;
		}
		
		if(apteczki>3){
			apteczki = 3;
			
		}
		
		}
		
		Start.applet.repaint();
		
	}


	public void tworzymyMape(){
		
		int mapa12[][] = {
		
				{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
				{1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,6,6,3,0,0,0,0,7,0,0,1},
				{1,0,0,4,0,0,0,0,0,0,3,6,6,3,7,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,1},
				{1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,6,6,3,0,0,1,1,1,1,1,1},
				{1,0,0,0,0,0,0,0,0,0,3,6,6,3,0,0,1,9,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,6,6,10,0,0,1,0,0,0,0,1},
				{1,0,0,0,7,0,0,0,0,0,3,3,3,3,0,0,1,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,7,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,1,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,1,9,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,6,6,3,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1},
				{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1},
				{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
				
		};
		
		for(int i=0;i<mapa1.length;i++){
			for(int j=0;j<mapa1[0].length;j++){
				mapa1[i][j] = mapa12[i][j];
				
			}
		}
		
	}
	
	public void poruszaniePostcia(char klawisz){
		
		switch(klawisz){
		
		case 'w':
			if(mapa1[pPostaciY-1][pPostaciX]==0){
				mapa1[pPostaciY-1][pPostaciX]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciY--;
			//Zadane obrażenia przez przeciwnika
			}else if(mapa1[pPostaciY-1][pPostaciX]==7){
				mapa1[pPostaciY-1][pPostaciX]=4;
				mapa1[pPostaciY][pPostaciX]=7;
				pPostaciY--;
				zyciePostaci = zyciePostaci -6;
				zyciePrzeciwnika = zyciePrzeciwnika  -1;
			//Apteczki
			}else if(mapa1[pPostaciY-1][pPostaciX]==9){
				mapa1[pPostaciY-1][pPostaciX]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciY--;
				zyciePostaci = zyciePostaci  +30;
				//expPostaci = expPostaci  +2;
				apteczki = apteczki -1;
			}break;
		case 's':
			if(mapa1[pPostaciY+1][pPostaciX]==0){
				mapa1[pPostaciY+1][pPostaciX]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciY++;
			//Zadane obrażenia przez przeciwnika
			}else if(mapa1[pPostaciY+1][pPostaciX]==7){
				mapa1[pPostaciY+1][pPostaciX]=4;
				mapa1[pPostaciY][pPostaciX]=7;
				pPostaciY++;
				zyciePostaci = zyciePostaci -6;
				zyciePrzeciwnika = zyciePrzeciwnika  -1;
			//Apteczki
			}else if(mapa1[pPostaciY+1][pPostaciX]==9){
				mapa1[pPostaciY+1][pPostaciX]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciY++;
				zyciePostaci = zyciePostaci  +30;
				//expPostaci = expPostaci  +2;
				apteczki = apteczki -1;
				
			}break;
		case 'a':
			if(mapa1[pPostaciY][pPostaciX-1]==0){
				mapa1[pPostaciY][pPostaciX-1]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciX--;
			//Zadane obrażenia przez przeciwnika
			}else if(mapa1[pPostaciY][pPostaciX-1]==7){
				mapa1[pPostaciY][pPostaciX-1]=4;
				mapa1[pPostaciY][pPostaciX]=7;
				pPostaciX--;
				zyciePostaci = zyciePostaci -6;
				zyciePrzeciwnika = zyciePrzeciwnika  -1;
			//Apteczki
			}else if(mapa1[pPostaciY][pPostaciX-1]==9){
				mapa1[pPostaciY][pPostaciX-1]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciX--;
				zyciePostaci = zyciePostaci  +30;
				//expPostaci = expPostaci  +2;
				apteczki = apteczki -1;
			}break;
		case 'd':
			if(mapa1[pPostaciY][pPostaciX+1]==0){
				mapa1[pPostaciY][pPostaciX+1]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciX++;
			//Zadane obrażenia przez przeciwnika
			}else if(mapa1[pPostaciY][pPostaciX+1]==7){
				mapa1[pPostaciY][pPostaciX+1]=4;
				mapa1[pPostaciY][pPostaciX]=7;
				pPostaciX++;
				zyciePostaci = zyciePostaci -6;
				zyciePrzeciwnika = zyciePrzeciwnika  -1;
			//Apteczki
			}else if(mapa1[pPostaciY][pPostaciX+1]==9){
				mapa1[pPostaciY][pPostaciX+1]=4;
				mapa1[pPostaciY][pPostaciX]=0;
				pPostaciX++;
				zyciePostaci = zyciePostaci  +30;
				//expPostaci = expPostaci  +2;
				apteczki = apteczki -1;
			}break;
		}
	}
	
	public void smiercGracza(boolean resetMapy, int mapaOdrodzenia, boolean resetnEQ, int iloscZyciaPoOdrodzeniu, int iloscMinusowychPuntkow, int zyciePrzeciwnika){
		
		if(resetMapy==true){
			tworzymyMape();
			pPostaciY=3;
			pPostaciX=3;
			
		}else{}
//		if(resetEQ==true){}else{};
//		switch(mapaOdrodzenia){}
		
		
		
//		punkty = iloscMinusowychPunktow;
		
		komunikatWKonsoli = komunikatSmierci;
		
		zyciePostaci=iloscZyciaPoOdrodzeniu;
		
	}
	
	public void smiercPrzeciwnika(int zyciePrzeciwnika){
		
		
		
	}
	
	
}

Bardzo proszę o pomoc narka i z góry dzięki :D

Opublikowano

Kod po prostu straszny ;x Zanim będziesz się brał za gry dobrym pomysłem byłoby dokończenie jakiegoś kursu (np. javastart). Teraz nie mam Ci zbytnio jakiej rady dać... 

708121422388637873334.png

Opublikowano

przejrzałem troszeczkę kod i uzywasz switcha, a nie breakujesz w case. nie ważne źle sie przypatrzłem

napisz jakiś kod strzału i wstaw z czym masz problem to będziesz miał pomoc

<>

Opublikowano

Może interfejs MouseListener pomoże.

 

Coś w tym stylu? :

public void mousePressed(MouseEvent e) {
   shoot(e.getX(), e.getY());
}
Opublikowano

nwm jak bardzo będzie to trudne, ale możesz sobię narysować po prostu koleczko na 1 pixel i  co chwile go aktualizujesz (oczywiście kolizja itp.), ale to było w c++ i z poradnika.

<>

Opublikowano

Popieram kolegów wyżej. Sam też dopiero zaczynam  ale podzielenie kodu i ułożenie oraz odpowiednie nazewnictwo pomaga niezwykle w projekcie. Radzę najpierw uporządkować kod ,a potem zgłaszać się ,bo pewnie sam autor ma problem z rozczytaniem tego.

MikartPL.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...