• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

WAGGL von Windows zu Linux portieren

Hi!
Ich habe mit MASM32 unter Windows ein Spiel geschrieben: http://www.djtraumwelt.de/waggl.exe (Lässt sich mit wine spielen) und möchte dieses jetzt für Linux schreiben. Allerdings habe ich von der Programmierung für Linux überhaupt keine Ahnung. Hat hier irgendjemand Lust mir Schritt für Schritt zu erklären, wie ich das machen kann? Vielen Dank für eure Mühe.

Ich habe SUSE Linux 10.1
alles installiert was man zum programmieren benötigt
 
Tja, es gibt halt keine WinAPI (es sei denn in wine :) ).
Für Fenster mußt Du Dich für ein Toolkit entscheiden: Qt (wie KDE), GTK2 (wie GNOME), Tk etc.

Für Spiele ist wohl am besten SDL geeignet (entfernt sowas wie DirectX).

Z.B. kannst Du Qt-Fenster mit dem Qt-Designer bauen:

http://doc.trolltech.com/3.3/designer-manual-2.html

Welche Sprache benutzt Du ?

Viele Grüße
 
also das hab ich bis jetzt:

waggl.c
Code:
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>

void loeschen_funk(GtkWidget *widget, gpointer daten);
void loenwi_funk(GtkWidget *widget, gpointer daten);

GtkWidget *entrywin;
GtkWidget *entry;
gint tmp_pos;
GtkWidget *vbox, *hbox;
const gchar *entry_text;

static void enter_cb(GtkWidget *widget, GtkWidget *entry)
{
    entry_text = gtk_entry_get_text (GTK_ENTRY (entry));
}

int main(int argc, char *argv[])
{
    gtk_init(&argc, &argv);
    entrywin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_set_usize(GTK_WIDGET(entrywin),350,100);
    gtk_window_set_title(GTK_WINDOW(entrywin), "WAGGL - enter yor name!");
    gtk_signal_connect(GTK_OBJECT(entrywin), "destroy", GTK_SIGNAL_FUNC(loenwi_funk), NULL);

    vbox = gtk_vbox_new (FALSE, 0);
    gtk_container_add (GTK_CONTAINER (entrywin), vbox);
    gtk_widget_show (vbox);

    entry = gtk_entry_new ();
    gtk_entry_set_max_length (GTK_ENTRY (entry), 25);
    g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (enter_cb), (gpointer) entry);
    gtk_entry_set_text (GTK_ENTRY (entry), "Name");
    tmp_pos = GTK_ENTRY (entry)->text_length;
    gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
    gtk_widget_show (entry);
    hbox = gtk_hbox_new (FALSE, 0);
    gtk_container_add (GTK_CONTAINER (vbox), hbox);
    gtk_widget_show (hbox);
    gtk_widget_show(entrywin);

    GtkWidget *hauptfenster;
    hauptfenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_set_usize(GTK_WIDGET(hauptfenster), 600, 500);
    gtk_window_set_title(GTK_WINDOW(hauptfenster), "WAGGL - das ultimative game");
    gtk_signal_connect(GTK_OBJECT(hauptfenster), "destroy",
                       GTK_SIGNAL_FUNC(loeschen_funk), NULL);
    /* Fenster sichtbar machen. */
    gtk_widget_show(hauptfenster);
    gtk_main();
    return 0;
}

void loeschen_funk(GtkWidget *widget, gpointer zdaten)
{
    printf ("Name: %s\n", entry_text);
    gtk_main_quit();
}

void loenwi_funk(GtkWidget *widget, gpointer zdaten)
{
    gtk_widget_hide(entrywin);
}

als erstes mal stimmt die printf ausgabe nicht:
Code:
Name: (null)

und wenn der fehler beseitigt ist müsste ich den hintergrund das hauptfensters schwarz machen, dann weiße Linien zeichnen...
 
Oben