Könnte man moderne Spiele in Java programmieren?

Soweit ich weiß werden die meisten der brandneuen Spiele, vor Allem die, die aufwendige Grafiken beinhalten, meistens in reinen "Compiler-Sprachen" (ich kenne den Fachbegriff leider nicht, aber ich glaube man weiß, was gemeint ist?) programmiert. Also Sprachen wie z.b. C++. Das macht aufgrund der besseren Performance ja auch, soweit ich das beurteilen kann, Sinn.

Wenn man die Sinnhaftigkeit aber mal außer Acht lässt und sich rein auf die Realisierbarkeit fokussiert, wäre es dann möglich, Titel wie Black Ops 4 Oder Battlefield 5 von Grund auf und einzige in Java zu schreiben? Wie sähe es mit CAD-Anwendungen aus? Könnte Software, die mit Blender oder Photoshop verglichen werden kann, in Sprachen wie Java geschrieben werden?

Könnte man solche Projekte auch ohne größere Performanceeinbußen realisieren? - Oder anders gefragt: Ein "perfekter" Code, jeweils in Java und einer Sprache wie C++ werden zum Vergleich gezogen. Wenn die selbe Arbeit verrichtet werden soll, in welcher Größenordnung liegen die Einbußen von Java? Sind das gegenüber C++. Kann man das noch einigermaßen in Kauf nehmen?

Mir geht es bei der Frage im Grunde genommen darum, mich endlich zu entscheiden welche Programmiersprache ich lernen möchte. Aus zeitlichen Gründen und auch deshalb, weil es mich hinsichtlich meines Berufes überhaupt nicht tangiert möchte ich mich auf eine einzige Sprache beschränken und das dafür richtig machen. Dabei wollte ich wenn möglich eine Sprach die Alles erlaubt. Da kam mir als erstes Java in den Sinn. Läuft überall, ist der Hit, wenn es um Android geht, und für Anfänger wohl besser geeignet als z.B. C++. Mir ist klar, dass Java Grenzen kennt, wenn es um hardwarenahe Programmierung geht. - Ein Treiber in Java, wäre das überhaupt möglich?

Hier haben Sprachen wie C++ tatsächlich die Nase vorne, aber auch da hat man, in den Bereichen wo Assembler eingesetzt wird, Grenzen.

Im Grund genommen ist das, wonach ich suche wahrscheinlich genau C++, man kann sich ja, soweit ich weiß, auch selbst Laufzeitumgebungen basteln oder mit virtuellen Maschinen arbeiten, so dass der Großteil vom Code auch systemübergreifend funktioniert. Ich finde an C++ einfach nichts schlechtes. Allerdings hat mich schon der erste Blick in ein C++ Buch vollständig demotiviert. Es scheint mir so, als sei es um einiges schwieriger als Java, alleine schon was die Syntax angeht... Man könnte meine Frage also auch so formulieren: Lohnt es sich, wenn man sich den Weg zu aufwendigen Anwendungen offen halten möchte, C++ zu lernen, oder sind die Defizite von Java so gering, dass man es sich beim Lernen leichter machen sollte.

Ich entschuldige mich, wenn ich irgendwo fachliche Fehler eingebaut habe und freue mich natürlich, wenn ich korrigiert werde, ich eben alles andere als ein IT-Spezialist.

Es wäre nett, wenn ihr eure Meinung mit mir teilt.

Computer, Technik, programmieren, Java, Cplusplus, Informatik, Programmiersprache
Was ist mit diesem Batch-Skript falsch?

Ich habe mit meinem Skript weitergemacht und habe wieder ein Problem nämlich bei:

createaccount;passwordcheck

Da steht immer Systempfad nicht gefunden

@echo on
title MESSENGER
mode con: cols=50 lines=10
if exist .\users\ goto welcome

:firstOpen 
mkdir Kontakte 
cd Kontakte 
mkdir users 
cd ..\ 
copy kontakte.bat .\Kontakte\kontakte.bat 
cd Kontakte 
start kontakte.bat 
cd ..\ 
del /F kontakte.bat 
exit


:welcome 
cls 
color 0A 
echo. 
echo =============== 
echo    MESSENGER 
echo ===============  
echo.                                            pause 
color 0B 
cls


:login 
echo. 
echo =========== 
echo    Login    
echo =========== 
echo. 
echo Gib deinen Benutzernamen ein: 
echo (Wenn du kein Konto hast dann gib 1 ein) 
set /p username= 
cls 
if %username%==1 goto createaccount 
echo Gib jetzt dein Passwort ein: 
set /p password= 
if exist .\users\%username%\%username%.dll goto passwordcheck 
echo Konto nicht vorhanden oder Benutzername falsch timeout /t 2 >nul cls goto welcome


:createaccount 
echo. 
echo ======================= 
echo    Account erstellen 
echo ======================= 
echo. echo Gib deinen neuen Benutzernamen ein: 
set /p newusername= 
cls 
echo Gib dein neues Passwort ein: 
set /p newpassword= 
cd .\users\ 
mkdir %newusername% 
echo %newpassword% > .\users\%newusername%\%newusername%.dll
pause 
cls 
echo Dein Account wurde erstellt 
timeout /t 2 >nul 
cls 
goto login


:passwordcheck 
set /p passwordfile=<".\users\%username%\%username%.dll" 
if %passwordfile%==%password% goto loggedin


:loggedin 
cls
echo Hallo
pause

Hier nochmal mit Leerzeilen
Computer, programmieren, Batch, Batch-Dateien, Batchprogrammierung, Batch-Datei, Windows 10
Sind Webseiten Computerprogramme?

Hey,

ich muss einen Vortrag in der Schule halten und habe mir das Thema Programmieren genommen. Und will natürlich nichts Falsches sagen, also habe ich hier ein paar Fragen, bei denen ich nur bisschen recherchiert habe, aber nichts gefunden habt:

Sind Webseiten Computerprogramme?

Gehört die Informatik zur Elektronischen Datenverarbeitung (EDV)?

Musst man als Informatiker programmieren können?

Bezeichnet man Programmieren grundlegend als die Erstellung von Computerprogrammen oder das Festlegen von einem Ablauf, wie Theateraufführungen, Fernsehprogramme, Kinoprogramme, Schulveranstaltungen,...?

Wenn man nur mit einem gewöhnlichen Texteditor programmiert (also keine IDE), musst man sich einen Compiler oder Interpreter installieren?

Kann man in Word theoretisch programmieren? ^^

Sind Anwendungen Programme?

Und wüsstet ihr vielleicht mit welchem Beispiel im Alltag das Programmieren behilflich sein könnte?

Und wenn man erstmal eine Programmiersprache richtig kann, ist die nächste Programmiersprache in der Regel ja einfacher. Wüsstet ihr da ein Beispiel wie man das mit dem Alltag verbinden kann? Mir fiele nur Gewichteheben ein (wenn man mit einem 10kg Hantel trainiert, wird die 15kg Hantel leichter sein als davor).

Das sollten die Fragen erstmal sein. Die Antworten sind denke ich zwar offentsichlich, aber ich bin mir bei Dingen eigentlich nie sicher ^^

Falls ich noch welche habe, werde ich diese hier unten reinschreiben. Danke im Vorraus! :)

Computer, Software, Schule, Programm, Hardware, Webseite, programmieren, Informatik, Programmiersprache
Python function wird zweimal aufgerufen?

Guten Morgen,

Ich habe ein problem mit meinem skript. Ich möchte gerne, dass wenn man einen kliptaster betätigt dieser in einem array gespeichert wird. Leider wird die Zahl des Tasters doppelt im array angezeigt. Er ruft bei mir die function zweimal auf.

import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library
import time
import sys, traceback
 
#https://raspberrypihq.com/use-a-push-button-with-raspberry-pi-gpio/
 
tastenSeq=[]
 
 
def button_callback(channel):
       print("Taster 2: AN")
       GPIO.output(12,True)
       tastenSeq.append(2)
       time.sleep(1.0)
       GPIO.output(12,False)
       print("Taster 2: AUS")
 
 
def button_callback2(channel2):
       print("Taster 5: AN")
       GPIO.output(32,True)
       tastenSeq.append(5)
       time.sleep(1.0)
       GPIO.output(32,False)
       print("Taster 5: AUS")
       print tastenSeq
 
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12,GPIO.OUT)
GPIO.setup(32,GPIO.OUT)
 
GPIO.setwarnings(False) # Ignore warning for now
#GPIO.setmode(GPIO.BOARD) # Use physical pin numbering
 
GPIO.setup(31, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set pin 10 to be an input pin and set initial value to be pulled low (off)
GPIO.add_event_detect(31,GPIO.RISING,button_callback) # Setup event on pin 10 rising edge
 
 
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set pin 10 to be an input p$
GPIO.add_event_detect(15,GPIO.RISING,callback=button_callback2) # Setup event on p$
 
message = input("Press enter to quit\n\n") # Run until someone presses enter
GPIO.cleanup() # Clean up

 

 

Bild zum Beitrag
Computer, Computerspiele, programmieren, Informatik, Python 3, Raspberry Pi, Raspberry, Raspberry Pi 3
Python: Wie kann ich feld1 bis feld7 so zusammenfassen, sodass ich das nicht alles einzeln eingeben muss?

Hey, ich möchte feld1 bis feld7 so zusammenfassen, sodass ich das nicht alles einzeln eingeben muss. Dazu finde ich nur leider nichts im Internet.

import tkinter as tk from tkinter import *

modul = tk.Tk()
modul.geometry("900x900")
modul.title("Bunt3x3")
modul.resizable(width=False, height=False)

r = "red"
y = "yellow"
g = "green"
b = "blue"

def change():
  if feld1["bg"] == r:
    feld1.config(bg=g)
    feld3.config(bg=g)
    feld5.config(bg=g)
    feld7.config(bg=g)
    feld2.config(bg=b)
    feld4.config(bg=b)
    feld6.config(bg=b)
    feld8.config(bg=b)

    feldlabel.config(text="Rot & gelb")

  elif feld1["bg"] == g:
    feld1.config(bg=r)
    feld3.config(bg=r)
    feld5.config(bg=r)
    feld7.config(bg=r)
    feld2.config(bg=y)
    feld4.config(bg=y)
    feld6.config(bg=y)
    feld8.config(bg=y)

    feldlabel.config(text="Gruen & blau")

feld1 = tk.Frame(bg=r, width=300, height=300)
feld1.grid(column=1, row=1)
feld3 = tk.Frame(bg=r, width=300, height=300)
feld3.grid(column=3, row=1)
feld5 = tk.Frame(bg=r, width=300, height=300)
feld5.grid(column=1, row=3)
feld7 = tk.Frame(bg=r, width=300, height=300)
feld7.grid(column=3, row=3)
feld2 = tk.Frame(bg=y, width=300, height=300)
feld2.grid(column=2, row=1)
feld4 = tk.Frame(bg=y, width=300, height=300)
feld4.grid(column=1, row=2)
feld6 = tk.Frame(bg=y, width=300, height=300)
feld6.grid(column=3, row=2)
feld8 = tk.Frame(bg=y, width=300, height=300)
feld8.grid(column=2, row=3)

feld = tk.Frame(bg="white", width=300, height=300).grid(column=2, row=2)
feldlabel = tk.Label(text="Gruen & blau", bg="white", fg="black", font=("Arial", 15, "bold"))
feldlabel.grid(column=2, row=2)
feldbutton = tk.Button(text="Farbe aendern!", font=("Arial", 15, "bold"), bg="white", fg="black", command=change).place(x=370, y=470)
modul.mainloop()
programmieren, Array, Informatik, Python, Zusammenfassung, Variablen, list, Tkinter
Java "Hauptklasse konnte nicht gefunden oder geladen werden"?

Ich habe gestern angefangen java zu lernen, ich nutze die IntelliJ IDE von jetbrains.

Wenn ich in meinem Projekt mehr als eine Klasse habe bekomme ich beim ausführen folgenden fehler:

Fehler: Hauptklasse Test.jar konnte nicht gefunden oder geladen werden
Ursache: java.lang.ClassNotFoundException: Test.jar

Ich erstelle die .jar datei folgendermaßen:

Bei IntelliJ habe ich unter Projectstructur/artifacts einen neuen eintrag erstellt, als Main Class meine main Klasse angegeben und dann über Build/Build Artifacts/Build die jar datei erstellt. In dem Ordner mit dieser Datei befindet sich ausschließlich die Test.jar Datei (Was, nebenbei bemerkt nicht der Name meiner Klasse ist, sollte das irgentwelche auswirkungen haben ist es allerdings nicht der Grund für mein Problem da ich bereits ein zweites projekt erstellt habe, in welchem die Klasse und die jar Datei gleich hießen und es dennoch nicht funktioniert hat (Selbe Fehlermeldung)), welche ich dann mit 'java Test.jar' ausführe. Nun bekomme ich den oben gennanten error. Meine Hauptklasse sieht wie folgt aus:

import cons.colors;

public class greyscale_converter {

public static void main(String[] args){

    System.out.println(args[0]);
}

}

Ich habe dann in dem Projekt noch das package 'cons' erstellt, in welchem sich die Klasse 'colors' befindet. Diese sieht wie folgt aus:

package cons;

public class colors {
}

Ich möchte nun also die jar datei erstellen können und von der main methode in der 'greyscale_converter' Klasse auf die klasse colors zugreifen können, bevor ich allerdings soweit kam erhielt ich schon die Fehlermeldung nach welcher die Hauptklasse nicht gefunden werden könne. Nach einer halben stunde googlen bin ich noch auf keine Lösung gestoßen die bei mir funktioniert hat. Danke schonmal.

Computer, programmieren, Java, Fehlermeldung, IntelliJ IDEA
[MVVM] Canvas Background Image via Slider ändern?

Hallo.

Ich hatte eigentlich nicht vor wegen der Sache was zu fragen, aber hab das Gefühl, ich verfolge den falschen Weg.

Wie der Name schon sagt, möchte ich mittels einer Sliderbewegung die Bilder in einem Canvas ändern.

Meine Denkweise sah so aus:

  <Slider x:Name="mySlider" HorizontalAlignment="Left" Height="58" Margin="209,948,0,0" VerticalAlignment="Top" Width="407" Minimum="0" Maximum="15"
        TickFrequency="1" TickPlacement="TopLeft" IsSnapToTickEnabled="True" ValueChanged="sliderChangeValue"/>

An diesen Slider ist ein ChangeValue-Event angehängt, dass eine BitmapImage Property ändert.

Jetzt habe ich noch ein ItemsControl mit einem Canvas darin, in dem die Bilder dargestellt werden sollen.

  <ItemsControl x:Name="canvas2" Margin="209,678,1012,124.8" Background="#FFC4C4C4" ItemsSource="{Binding LoadFieldMapsFIELDcol}">
            <Canvas>
                <Canvas.Background>
                    <ImageBrush ImageSource="{Binding BitIm, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                </Canvas.Background>
            </Canvas>
        </ItemsControl>

Wischiwaschi ChangeVlaue Event zum testen ( hat auch nix mit MVVM zu tun, ist im MainWindow. Wichtig ist nur die letzte Zeile)

  public void sliderChangeValue(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
      Collections col = new Collections();
      ObservableCollection<BitmapImage> images = new ObservableCollection<BitmapImage>();
      Mittelebene mit = new Mittelebene();
      images = col.LoadFieldMap();
      BitmapImage bild = new BitmapImage();
       
      mit.BitIm = images[0];    
    }

Meine Idee war, der Slider setzt die BitmapImage BitIM Property beim sliden auf das erste Bild aus einer Imageliste ( zu Testzwecken ). Das Canvas merkt dass die ImageSource geändert wurde und setzt das Bild, dass ich der Property vom Slider aus zugewiesen habe. Aber es tut sich nix.....

Ich hatte auch versucht mit dem Elementnamen Verweise zu erstellen. Rein vom optischen sah es schlüssig aus :) Aber ätsch..

In meinen Augen ist an der obigen Verkettung nix falsches.

Ich hatte natürlich intensiv gegoogelt. Die meisten hatten für solche Späßchen Listboxen genommen und Grids. Aber das muss doch mit einem Canvas auch klappen.

Ich verstehe auch nicht, warum ich im Code behind eines Canvas über die Background Eigenschaft nur die Farbe ändern kann über ein SolidColorBrush.

Mache ich

       <Canvas>
                <Canvas.Background>
                    <ImageBrush ImageSource="{Binding BitIm, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                </Canvas.Background>
            </Canvas>

will er dann auf einmal ein BitmapImage haben. Ich kann zwar ein Bild auch umwandeln, aber dann wird nix angezeigt. Nur ein BitmapImage wird angezeigt. Esseidenn ich nutze diese URI Sache.

Aber aktuell ist mir nur wichtig, warum die oben genannten Codezeilen nicht das tun, was sie sollen.

Computer, Technik, programmieren, Technologie, Windows Presentation Foundation, Spiele und Gaming
HTML BILD HOCHLADEN UND ANZEIGEN LASSEN?

Hi.

Ich möchte eine Seite mit HTML erstellen, welche einen UPLOAD Button enthält, der das hochgeladene Bild unendlich oft (oder 1000 mal) untereinander anzeigt.

Mein Code im Moment ist dieser.

Mein momentanes Problem: Ich hab keine Ahnung wie ich das Bild unten anzeigen lasse :/.

Danke im Vorraus

<html>
    <head>
        <title>INFINITIZER</title>
        <meta></meta>
    </head>
    <body>
    
        <div id="header">
            <hr color="red"/>
            <center>
                <h1><font color="red" face="Impact">INFINITIZER</font></h1>
            <hr color="red"/>
            </center>
        </div>
    
    
        <div id="upload">
            <center>
                
                    <form method="post" enctype="multipart/form-data">
                        <label>CHOOSE A PICTURE
                            <input name="datei" type="file" size="50" accept="video/*,image/*">&nbsp;
                        </label>&nbsp;&nbsp;
                        
                        <button>SEND</button>
                    </form>
                    
            </center>
        </div>
        
        
        <div id="pic">
            <img src="datei" alt="No picture">
        </div>
        
    </body>

</html>
Computer, Internet, Bilder, Technik, HTML, programmieren, Code, Technologie
VBA Programmierung - Automatischer Email versandt Probleme?

Hallo ich hoffe Ihr könnt mir helfen :/

Folgendes Problem: Wenn ich die Mail versende, öffnen sich für jede Zeile eine extra Email und leider auch nur jeweils ein Empfänger und einer in cc.

Was muss ich nun in der Programmierung hinzufügen, um nur eine Email geöffnet zu bekommen, mit mehreren Empfängern (Falls mehrere Kreuze gesetzt worden sind). Ich danke euch echt wenn Ihr mir helfen können :/

Ich habe mir die Bausteine aus dem Internet zusammengesetzt, bin daher kein Profi darin.

Programmtext:

Private Sub Send_Email()
   '-------------< Send_Email() >-------------
   Dim sTitle As String
   sTitle = "Test-HTML Email from Excel"
   '< HMTL holen >
   Dim sTemplate As String
   sTemplate = Sheets("ini_Vorlage").Shapes(1).TextFrame2.TextRange.Text
   '</ HMTL holen >
   '----< Send with Outlook >----
   Dim app_Outlook As Outlook.Application
   Set app_Outlook = New Outlook.Application
   '--< Email einstellen >--
   Dim objEmail As Outlook.MailItem
   Dim sEmail_Addresscc As String
   Dim sEmail_Address As String
   Dim iRow As Integer
   For iRow = 4 To 100
       If Cells(iRow, 21) = "x" Then
           '< get Email Address >
           'Column 2, B
           sEmail_Address = Cells(iRow, 19)
           sEmail_Addresscc = Cells(iRow, 20)
           '</ get Email Address >
           '< Fill Placeholders >
           Dim sHTML As String
           sHTML = Replace(sTemplate, "[@Name]", sEmail_Address)
           '</ Fill Placeholders >
           '--< Send Email >--
           Set objEmail = app_Outlook.CreateItem(olMailItem)
           objEmail.To = sEmail_Address
           objEmail.CC = sEmail_Addresscc
           objEmail.Subject = sTitle
           'objEmail.HTMLBody = sHTML 'use .HTMLBody for HTML
           objEmail.Body = sHTML      'and .body for pure Text
           objEmail.Display
           '--</ Send Email >--
       End If
   Next
   '< Abschluss >
   Set objEmail = Nothing
   Set app_Outlook = Nothing
   '</ Abschluss >
   MsgBox "Emails erstellt", vbInformation, "Fertig"
   '----</ Send with Outlook >----
   '-------------</ Send_Email() >-------------
End Sub

Bild zum Beitrag
Computer, Microsoft Excel, E-Mail, programmieren, VBA, VBA Programmierung, VBA Excel, makros erstellen
Java Swing: Wie kann ich Klicks auf Buttons zählen?

Hallo zusammen,

folgendes Programm habe ich. Nun möchte ich dieses noch optimieren. Es soll nun neben dem Button angezeigt werden, wie oft der Button geklickt wurde. Kann mir hier jemand helfen?

Vielen Dank!

import javax.swing.*;
import java.awt.*;
// Event brauchen wir für das Ereignis, wenn ein Button geklickt wird
import java.awt.event.*;

public class FirstGUI extends JFrame {
  private JButton button1;
  private JButton button2;
  private JButton button3;
  private JPanel panelButton;
  private JLabel oben;
  private JLabel anzeige;

  public FirstGUI() {
    super("Fenster");
    setLocation(300, 300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // Das BorderLayout ist mal das erste - später fügen wir noch ein GridLayout im Westen hinzu
    getContentPane().setLayout(new BorderLayout(5, 5));
    
    // Buttons erzeugen
    button1 = new JButton("Button 1");
    button2 = new JButton("Button 2");
    button3 = new JButton("Button 3");

    // Panels erzeugen auf einem GridLayout
    panelButton = new JPanel(new GridLayout(3, 1));

    // Auf Panel Buttons packen
    panelButton.add(button1);
    panelButton.add(button2);
    panelButton.add(button3);

    // Listener für Buttons
    addButtonListener(button1);
    addButtonListener(button2);
    addButtonListener(button3);

    // Labels erzeugen
    oben = new JLabel("Layout Test");

    // Label zentrieren
    oben.setHorizontalAlignment(JLabel.CENTER);
    anzeige = new JLabel("Button klicken");

    // Labels auf Frame packen (direkt auf das BorderLayout)
    getContentPane().add(BorderLayout.NORTH, oben);
    getContentPane().add(anzeige);

    // Panels auf Frame packen (das panelButton hat ein GridLayout, dass jetzt in den WestBereich des BorderLayouts kommt)
    getContentPane().add(BorderLayout.WEST, panelButton);
    pack();
    setVisible(true);
  }

  public static void main(String[] args) {
    FirstGUI g = new FirstGUI();
  }

  private void addButtonListener(JButton b) {
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent ae) {
        eingabe(ae.getActionCommand());
      }
    });
  }

  private void eingabe(String a) {
    anzeige.setText(a);
  }
}

programmieren, Java

Meistgelesene Beiträge zum Thema Programmieren