Wie soll ich das denn jetzt Handeln?

Hallo. Ich hoffe die Programmiererschaft ist aus ihrem kleinem Schläfchen erwacht und kann mir hier etwas weiterhelfen. Ich mache (immernoch) eine Coding-Challenge. Dachte sie ist Lustig, langsam wird sie Sinnlos .__.

Erstmal die zurzeitige Stage:

An sich wurde alles gesagt. Das Problem mit den max. 10 Packages hab ich bereits gelöst. Nun bin ich aber bei der byte abfrage ... Die ist dann schon Lustiger. Hier mal meine add Funktion.

void add(Package package) {
  // Check if package already in map.
  std::list < std::string > info_list({
    package.name,
    std::to_string(package.versionMajor),
    std::to_string(package.versionMinor)
  });
  if (saved_packages.count(info_list)) {
    return;
  }
  uint32_t used_size = 0;
  for (it_helper = saved_packages.begin(); it_helper != saved_packages.end(); it_helper++) {
    used_size += it_helper -> second.size;
  }
  // INFO: saved_packages.size() starts (idk why) by 2. So 12 means 10 packages.
  if (saved_packages.size() >= 12 && used_size >= 100) {
    throw std::exception();
  }
  saved_packages.insert(std::pair < std::list < std::string > , Package > (info_list, package));
}

Simpel ... Naja. Also das && falsch ist, dass weiß ich. Wollte es nur damit mal ausprobieren. Also bei "&&" kommt folgendes raus:
"The add method threw no exception despite exceeding the limit of 10 packages." und es macht Sinn. Schließlich war das Maximum erreicht, die bytes aber noch frei. Dennoch sollte man es ja nicht zulassen. Wenn ich jetzt aber || mache:

"The add method threw an exception before reaching the limit of 100 bytes." was auch Sinn macht. Denn die 10 Packete wurden vermutlich gesendet, bevor die 100 Bytes erreicht waren. Nun ... Was jetzt? Ich hab tatsächlich keine einzige Idee gerade, währe dankbar für bisschen Hilfe. Danke im Vorraus und lg.

Bild zum Beitrag
PC, Computer, Internet, Software, Technik, Programmierer, programmieren, Cplusplus, CPP, Programmiersprache, Softwareentwicklung, Visual Studio, Challenge
Kamera Movement in Unity?

Hallo,

ich bin relativ neu in Unity und bin gerade dabei, eine Szene zu erstellen, wobei man die Kamera, wenn man die rechte Maustaste gedrückt hält, verschieben kann.

Die Szene ist isotropisch, weshalb die Kamera auch orthographisch ist.

[SerializeField] private Camera cam;
private Vector3 dragOrigin = Vector3.zero;
public float speed = 10;
    
void Update(){
    if(Input.GetMouseButtonDown(1)){
        dragOrigin = cam.ScreenToWorldPoint(Input.mousePosition);
    }
    if(Input.GetMouseButton(1)){
        Vector3 difference = cam.ScreenToWorldPoint(Input.mousePosition) - cam.transform.position;
        Vector3 targetPosition = dragOrigin - difference;
            
        cam.transform.position = Vector3.Lerp(cam.transform.position, targetPosition, speed * Time.deltaTime);
    }
}

Das funktioniert eigentlich auch, nur gibt es das Problem, dass sich der y-Wert der Kamera auch ändert. Die sollte immer auf dem gleichen y-Wert bleiben.

Wenn ich

targetPosition.y = cam.transform.position.y;

schreibe, bleibt zwar die Kamera auf der gleichen y-Position, aber die Kamera verschiebt sich nach oben und unten langsamer.

Wie kann ich den Code umschreiben, dass sich bei der Kamera nur die x-/ und z-Position ändert und das Verschieben in allen Richtungen gleich schnell geht?

Danke im Voraus.

Software, Kamera, programmieren, C Sharp, Visual Studio, Unity, Game-Developement
Warum kommt manchmal null raus?

Hallo. Ich mache gerade eine App, die den Standort des Users finden soll. Manchmal klappt es und manchmal kommt null raus. Hier mal der Code:

lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationTracker);
lManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, locationTracker, null);
userLocation = locationTracker.lastUserLocation;

Location gpsLocation = null;
Location networkLocation = null;
Location passiveLocation = null;

try {
    gpsLocation = lManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
} catch (SecurityException e) {
    Toast.makeText(getActivity(), "Error: SecurityException. (" + e + ")", Toast.LENGTH_SHORT).show();
}

try {
    networkLocation = lManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
} catch (SecurityException e) {
    Toast.makeText(getActivity(), "Error: SecurityException. (" + e + ")", Toast.LENGTH_SHORT).show();
}

try {
    passiveLocation = lManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
} catch (SecurityException e) {
    Toast.makeText(getActivity(), "Error: SecurityException. (" + e + ")", Toast.LENGTH_SHORT).show();
}

if (gpsLocation != null) {
    userLocation = gpsLocation;
} else if (networkLocation != null) {
    userLocation = networkLocation;
} else if (passiveLocation != null) {
    userLocation = passiveLocation;
} else if(locationTracker.lastUserLocation != null) {
    Toast.makeText(getActivity(), "Using last known location", Toast.LENGTH_SHORT).show();
    userLocation = locationTracker.lastUserLocation;
} else {
    Toast.makeText(getActivity(), "Error: Unable to get your location. Try Again.", Toast.LENGTH_SHORT).show();
    userLocation = null;
}

Das ist der Code, der onClick auf einen Button ausgeführt wird. in meiner onViewCreate Methode hab ich außerdem noch:

lManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
if(getActivity().checkPermission(Manifest.permission.ACCESS_FINE_LOCATION, Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED) {
    lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationTracker);
}

Was ich nur nicht verstehe, wieso genau kommt da denn manchmal null raus? Ich sende doch eine request damit der Standort geupdatet wird. Jemand vielleicht eine Idee?

Danke im Voraus und lg.

P.S.:

Getestet auf ZTE Blade V10 (Android 9, API Level 29). Die ganze App ist auf Level 21.

PC, Computer, Handy, Internet, Software, App, Technik, programmieren, Java, GPS, Android, GPS Ortung, Softwareentwicklung, Technologie

Meistgelesene Beiträge zum Thema Software