Mückenfang-Hilfe

  • Antworten:43
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 1.525

04.12.2013 14:45:27 via Website

Pascal P.
Schön formatieren und in Code Tags setzen..

Etwa kann er nicht lesen oder er will es nicht.

Ihn wurden nun 100te Sachen gesagt und nichts davon hat er wahr genommen.


LG

— geändert am 04.12.2013 14:53:14

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.222

04.12.2013 14:55:03 via Website

Da hast du rech, wenn man ihm Helfen will und er nichts selber Tut ist er auch delber Schuld.

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

  • Forum-Beiträge: 201

04.12.2013 15:23:57 via Website

Nur kurz was sind code-Tags?

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 1.460

04.12.2013 17:07:11 via App

vor den code kommt [code]

— geändert am 04.12.2013 17:07:56

Grüße NoAh!

  • Forum-Beiträge: 1.460

04.12.2013 17:08:17 via App

und nach den code kommt [/code]

— geändert am 04.12.2013 17:08:49

Grüße NoAh!

  • Forum-Beiträge: 201

05.12.2013 08:03:06 via Website

Die Randoms habe ich schön fett gemacht, ich hoffe es passt so.
package at.tomcom.strangefly;

import java.util.Date;
import java.util.Random;


import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

public class GameActivity extends Activity implements OnClickListener,Runnable{
. private static final long HOECHSTALTER_MS = 2000;
private float massstab ;
. private Random zufallsgenerator = new Random();
private int runde;
private int punkte;
private ViewGroup spielbereich;
private int gefangeneFly;
private int zeit;
private int fly;
private Handler handler = new Handler();
public static final String LOGTAG = "Game";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(LOGTAG, "Service startet");
setContentView(R.layout.activity_game);
massstab = getResources().getDisplayMetrics().density;
spielbereich = (FrameLayout) findViewById(R.id.spielbereich);
Log.e("Game", "onCreate");
spielStarten();


}


private void spielStarten() {
runde = 0;
punkte = 0;
starteRunde();
}
private void starteRunde(){
runde = runde +1;
fly = runde * 10;
gefangeneFly = 0;
zeit = 60;
bildschirmAktualisieren();
handler.postDelayed(this,1000);
}

private boolean pruefeRundenende(){
if (zeit == 0){
starteRunde();
return true;
}
return false;
}

private boolean pruefeSpielende(){
if( zeit == 0 && gefangeneFly < fly){
gameOver();
return true;
}
return false;
}
private void gameOver(){
Dialog dialog = new Dialog(this, android.R.style.
Theme_Translucent_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.gameover);
dialog.show();
}


private void zeitHerunterzaehlen(){
zeit = zeit -1;
zufallszahl = zufallsgenerator.nextFloat();
double wahrscheinlichkeit = fly * 1.5f / 60;
if ( wahrscheinlichkeit > 1 ) {
eineFlyAnzeigen();
if ( zufallszahl < wahrscheinlichkeit - 1){
eineFlyAnzeigen();
}
} else {
if ( zufallszahl < wahrscheinlichkeit) {

eineFlyAnzeigen();
}

}
flyVerschwinden();
bildschirmAktualisieren();
if(!pruefeSpielende()) {
if(!pruefeRundenende()){
handler.postDelayed(this, 1000);
}

}

}
private void bildschirmAktualisieren(){
TextView tvPunkte = (TextView)findViewById(R.id.points);
tvPunkte.setText(Integer.toString(punkte));
TextView tvRunde = (TextView)findViewById(R.id.round);
tvRunde.setText(Integer.toString(runde));
TextView tvTreffer = (TextView)findViewById(R.id.hits);
tvTreffer.setText(Integer.toString(gefangeneFly));
TextView tvZeit = (TextView)findViewById(R.id.time);
tvZeit.setText(Integer.toString(zeit));
FrameLayout flTreffer = (FrameLayout)findViewById(R.id.bar_hits);
LayoutParams lpTreffer = flTreffer.getLayoutParams();
lpTreffer.width = Math.round( massstab * 300 *
Math.min( gefangeneFly,fly) / fly);
FrameLayout flZeit = (FrameLayout)findViewById(R.id.bar_time);
LayoutParams lpZeit = flZeit.getLayoutParams();
lpZeit.width = Math.round( massstab * zeit * 300 / 60);



}

private void eineFlyAnzeigen(){
int breite = spielbereich.getWidth();
int hoehe = spielbereich.getHeight();
ImageView flyi = new ImageView(this);
flyi.setImageResource(R.drawable.ic_launcher);
flyi.setTag(R.id.geburtsdatum, new Date());
flyi.setOnClickListener(this);
int fly_breite = (int) Math.round(massstab*50);
int fly_hoehe = (int) Math.round(massstab*50);
int links = zufallsgenerator.nextInt( breite - fly_breite);
int oben = zufallsgenerator.nextInt( hoehe - fly_hoehe);

FrameLayout.LayoutParams params =
new FrameLayout.LayoutParams(fly_breite,fly_hoehe);
params.leftMargin = links;
params.topMargin = oben;
params.gravity = Gravity.TOP + Gravity.LEFT;
spielbereich.addView(flyi,params);
Log.e("Game", "Fly");

}
private void flyVerschwinden() {
int nummer = 0;
while(nummer < spielbereich.getChildCount() ) {
ImageView flyi = (ImageView) spielbereich.getChildAt(nummer);
Date geburtsdatum = (Date) flyi.getTag(R.id.geburtsdatum);
geburtsdatum.getTime();
long alter = (new Date()).getTime() - geburtsdatum.getTime();
if(alter > HOECHSTALTER_MS ) {
spielbereich.removeView(flyi);
}else{
nummer++;

}
}



}


@Override
public void onClick(View flyi){
gefangeneFly++;
punkte +=10;
bildschirmAktualisieren();
spielbereich.removeView(flyi);

}
public interface Runnable {
public void run();
}

@Override
public void run(){
zeitHerunterzaehlen();
}
@Override
public void onDestroy() {
Log.d(LOGTAG, "Service beendet");
super.onDestroy();
}

}

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 893

05.12.2013 08:13:35 via App

@ Tom Com
Du solltest vor deinen Code den du hier postest die Code tags benutzen damit es hier richtig angezeigt wird. Einfach so:

["Code"]dein Text["/Code"]
ohne Anführungszeichen!

MfG

— geändert am 05.12.2013 08:14:24

OnePlus 3T Stock
Samsung Galaxy S8 Stock

  • Forum-Beiträge: 201

05.12.2013 08:20:01 via Website

Ah Sorry
1package at.tomcom.strangefly;
2
3import java.util.Date;
4import java.util.Random;
5
6
7import android.app.Activity;
8import android.app.Dialog;
9import android.os.Bundle;
10import android.os.Handler;
11import android.util.Log;
12import android.view.Gravity;
13import android.view.View;
14import android.view.View.OnClickListener;
15import android.view.ViewGroup;
16import android.view.ViewGroup.LayoutParams;
17import android.widget.FrameLayout;
18import android.widget.ImageView;
19import android.widget.TextView;
20
21public class GameActivity extends Activity implements OnClickListener,Runnable{
22 private static final long HOECHSTALTER_MS = 2000;
23 private float massstab ;
24private Random zufallsgenerator = new Random();
25 private int runde;
26 private int punkte;
27 private ViewGroup spielbereich;
28 private int gefangeneFly;
29 private int zeit;
30 private int fly;
31 private Handler handler = new Handler();
32 public static final String LOGTAG = "Game";
33
34 @Override
35 public void onCreate(Bundle savedInstanceState) {
36 super.onCreate(savedInstanceState);
37 Log.d(LOGTAG, "Service startet");
38 setContentView(R.layout.activity_game);
39 massstab = getResources().getDisplayMetrics().density;
40 spielbereich = (FrameLayout) findViewById(R.id.spielbereich);
41 Log.e("Game", "onCreate");
42 spielStarten();
43
44
45 }
46
47
48 private void spielStarten() {
49 runde = 0;
50 punkte = 0;
51 starteRunde();
52 }
53 private void starteRunde(){
54 runde = runde +1;
55 fly = runde * 10;
56 gefangeneFly = 0;
57 zeit = 60;
58 bildschirmAktualisieren();
59 handler.postDelayed(this,1000);
60 }
61
62 private boolean pruefeRundenende(){
63 if (zeit == 0){
64 starteRunde();
65 return true;
66 }
67 return false;
68 }
69
70 private boolean pruefeSpielende(){
71 if( zeit == 0 && gefangeneFly < fly){
72 gameOver();
73 return true;
74 }
75 return false;
76 }
77 private void gameOver(){
78 Dialog dialog = new Dialog(this, android.R.style.
79 Theme_Translucent_NoTitleBar_Fullscreen);
80 dialog.setContentView(R.layout.gameover);
81 dialog.show();
82 }
83
84
85 private void zeitHerunterzaehlen(){
86 zeit = zeit -1;
87 zufallszahl = zufallsgenerator.nextFloat();
88 double wahrscheinlichkeit = fly * 1.5f / 60;
89 if ( wahrscheinlichkeit > 1 ) {
90 eineFlyAnzeigen();
91 if ( zufallszahl < wahrscheinlichkeit - 1){
92 eineFlyAnzeigen();
93 }
94 } else {
95 if ( zufallszahl < wahrscheinlichkeit) {

96 eineFlyAnzeigen();
97 }
98
99 }
100 flyVerschwinden();
101 bildschirmAktualisieren();
102 if(!pruefeSpielende()) {
103 if(!pruefeRundenende()){
104 handler.postDelayed(this, 1000);
105 }
106
107 }
108
109 }
110 private void bildschirmAktualisieren(){
111 TextView tvPunkte = (TextView)findViewById(R.id.points);
112 tvPunkte.setText(Integer.toString(punkte));
113 TextView tvRunde = (TextView)findViewById(R.id.round);
114 tvRunde.setText(Integer.toString(runde));
115 TextView tvTreffer = (TextView)findViewById(R.id.hits);
116 tvTreffer.setText(Integer.toString(gefangeneFly));
117 TextView tvZeit = (TextView)findViewById(R.id.time);
118 tvZeit.setText(Integer.toString(zeit));
119 FrameLayout flTreffer = (FrameLayout)findViewById(R.id.bar_hits);
120 LayoutParams lpTreffer = flTreffer.getLayoutParams();
121 lpTreffer.width = Math.round( massstab * 300 *
122 Math.min( gefangeneFly,fly) / fly);
123 FrameLayout flZeit = (FrameLayout)findViewById(R.id.bar_time);
124 LayoutParams lpZeit = flZeit.getLayoutParams();
125 lpZeit.width = Math.round( massstab * zeit * 300 / 60);
126
127
128
129 }
130
131 private void eineFlyAnzeigen(){
132 int breite = spielbereich.getWidth();
133 int hoehe = spielbereich.getHeight();
134 ImageView flyi = new ImageView(this);
135 flyi.setImageResource(R.drawable.ic_launcher);
136 flyi.setTag(R.id.geburtsdatum, new Date());
137 flyi.setOnClickListener(this);
138 int fly_breite = (int) Math.round(massstab*50);
139 int fly_hoehe = (int) Math.round(massstab*50);
140 int links = zufallsgenerator.nextInt( breite - fly_breite);
141 int oben = zufallsgenerator.nextInt( hoehe - fly_hoehe);

142 FrameLayout.LayoutParams params =
143 new FrameLayout.LayoutParams(fly_breite,fly_hoehe);
144 params.leftMargin = links;
145 params.topMargin = oben;
146 params.gravity = Gravity.TOP + Gravity.LEFT;
147 spielbereich.addView(flyi,params);
148 Log.e("Game", "Fly");
149
150 }
151 private void flyVerschwinden() {
152 int nummer = 0;
153 while(nummer < spielbereich.getChildCount() ) {
154 ImageView flyi = (ImageView) spielbereich.getChildAt(nummer);
155 Date geburtsdatum = (Date) flyi.getTag(R.id.geburtsdatum);
156 geburtsdatum.getTime();
157 long alter = (new Date()).getTime() - geburtsdatum.getTime();
158 if(alter > HOECHSTALTER_MS ) {
159 spielbereich.removeView(flyi);
160 }else{
161 nummer++;
162
163 }
164 }
165
166
167
168 }
169
170
171 @Override
172 public void onClick(View flyi){
173 gefangeneFly++;
174 punkte +=10;
175 bildschirmAktualisieren();
176 spielbereich.removeView(flyi);
177
178 }
179 public interface Runnable {
180 public void run();
181 }
182
183 @Override
184 public void run(){
185 zeitHerunterzaehlen();
186 }
187 @Override
188 public void onDestroy() {
189 Log.d(LOGTAG, "Service beendet");
190 super.onDestroy();
191 }
192
193 }

— geändert am 05.12.2013 11:52:32

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

05.12.2013 14:59:02 via Website

Aber eigentlich habe ich die breite gleich wie die Höhe berechnet und die passt
Oder?
kannst du nochmal über die Methode eineflyanzeigen einen Blick werfen?
lg

— geändert am 05.12.2013 15:14:03

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

05.12.2013 15:33:21 via Website

Hab mal in einem anderen Thread nachgeguckt, da ist gestanden man sollte public interface Runnable weggeben. Kann das sein?

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 1.793

05.12.2013 15:37:58 via App

Sorry, aber wenn du die hier genannten Tipps nicht ausprobieren willst, sondern irgendetwas was irgendwo irgendjemand gepostet hat, was du selber aber anscheinend nicht verstehst, kann ich dir nicht weiterhelfen.
Setze doch bitte meinen letzten Beitrag einfach um, oder frage nach, was du daran nicht verstehst.

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

  • Forum-Beiträge: 201

06.12.2013 17:02:52 via Website

Ich habe jetzt debuggt
Bei links zeigt er 604 an
Aber es gibt gar nicht oben!

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 1.793

06.12.2013 17:08:32 via App

Wie meinst du, es gibt gar nicht oben?
Zeigt er wirklich bei "links" diesen Wert an? Oder bei "breite" bzw. "fly_breite".
Eine Vermutung: Vielleicht ist die View, in der alle ImageViews angezeigt werden nicht bei Breite/Höhe auf match_parent gestellt, sodass es nicht genug Platz für eine ImageView hat?
Der Fehler ist aber immernoch der Selbe (IllegalArgumentException bei eineFlyAnzeigen():141)?

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

  • Forum-Beiträge: 201

06.12.2013 17:24:26 via Website

Vielen großen Dank!!!!:grin:
Deine Theorie stimmte:grin:
Wie kann man es aber machen, dass beim zerquetschen einer fliege nicht der OnClickListener ertönt?
Nochmals Danke:grin:

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

07.12.2013 09:02:44 via Website

Aber verschwindet dann auch die Fliege wenn man auf sie drückt?

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

07.12.2013 09:29:07 via Website

Ich meine die App soll den Ton nicht machen beim draufdrücken einer Fliege verschwinden sollen sie aber doch

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!