Game hulp

Status
Niet open voor verdere reacties.

slabbetje

Gebruiker
Lid geworden
5 mei 2007
Berichten
290
Beste helpers,

Ik ben nu een tijdje bezig met een game in java vanuit een basic source alleen nu wil ik bepaalde waardes die ik moet wegschrijven maar ook weer moet gebruiken laten filteren.
Dit is een standaard opeen lopende reeks met waardes.

voorbeeld:
1. Object_id
2. Coordinaat X
3. Coordinaat Y
4. Tijd

Na deze reeks waardes komt weer dezelfde reeks met natuurlijk andere id's
Hiervoor gebruik ik nu een ArrayList

Code:
private static ArrayList<String> trees = new ArrayList<String>(50); // list of fires

trees.add(p.clickId+"," + p.clickX + "," + p.clickY + "," + treeTime);

for (int i = 0; i < trees.size(); i++) {
	String data = new String(trees.get(i));
	p.frames.sendMessage(p, data);
}

Alleen hoe zorg ik er voor dat het weer mooi in apparte variable opdeel zodra ik het weer uit de array haal of denk ik nu veel en veel te moeilijk...
Want op dit moment word mn output natuurlijk bijv.

1278,3217,3231,10
1278,3215,3221,60 enz.

Wat uiteindelijk weer appart geformuleerd moet kunnen worden in mn loop
Zelf dacht ik aan een split functie maar dit heb ik nog nooit gebruikt en snap daar helemaal niets van.

Bij onduidelijkheid gewoon ff posten dan probeer ik het zo duidelijk mogelijk uit te leggen

Alvast bedankt,

Michael
 
Wat je het beste kan doen is een apart java object maken waarin je deze gegevens stopt. Oftewel, je maakt een klasse die elk de 4 gegevens bevat die je noemt.

Bijvoorbeeld:

Code:
public class DataObject {
	
	private Integer id;
	
	private Integer xCord;
	
	private Integer yCord;
	
	private String time;
	
	public DataObject(Integer id, Integer xCord, Integer yCord, String time) {
		this.id = id;
		this.xCord = xCord;
		this.yCord = yCord;
		this.time = time;
	}
	
	// Hier nog eventuele getters en setters voor de properties
	
}

Dit object kun je, zoals je zelf al doet, in een arraylist opnemen.

Code:
private ArrayList<DataObject> trees = new ArrayList<Object>; // list of fires

DataObject dataObject1 = new DataObject(p.clickId, p.clickX, p.clickY, treeTime);

trees.add(dataObject1);

Vervolgens kun je door deze arraylist loopen. Je hoeft overigens geen aantal achter de arraylist te definieren. Een arraylist wordt vanzelf groter naarmate je meerdere objecten toevoegt.

Code:
for (DataObject data : trees) {
	p.frames.sendMessage(p, data);
}

Het kan natuurlijk zijn dat dit te omslachtig is voor hetgeen dat jij wilt doen, of dat het teveel geheugengebruik veroorzaakt. Mocht je dan alsnog de split willen gebruiken, dan kan dat op deze manier:

Code:
     String dataValues[] = data.split(",");

     String value1 = dataValues[0];
     // etc.
 
Laatst bewerkt:
Oke bedankt voor je hulp, het gaat er om dat het geheuge verbruik zo min mogelijk is want het is een stukje serverside dus ik ga voor optie 2
 
Ik gok dat oplossing 1 minder geheugen zal gebruiken als optie 2.. ;),
en optie 1 is veel sneller... split is namelijk niet java's snelste functie..
en optie 1 is gewoon veel beter..
 
oke dankjewel maar een manier om het te weten gewoon kijken op je proccesor peik ga ze gewoon beide testen al lijkt t me sterk als ik een piek krijg of niet mn server is redelijk snel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan