Programmieren mit Visual Basic 2010

  • Hallo Leute,


    also ich habe mit einem Praktikanten ein kleines Laberyrinth spiel programmiert ... es ist noch net ganz fertig .... wir haben heute es geschafft das sich ein objekt durch die normalen pfeil tasten bewegt...vorher haben wir nur den Maus zeiger benutzt um das Spiel zu spielen ... doch das problem ist das wir es nicht hinkriegen dass wenn die kugel gegen eine wand knallt ... das dass spiel eine meldung gibt.....


    hoffe ihr habt mich verstanden ... schon mal danke im voraus auf eure antworten....

  • Mhm ich kenn mich da nur mit java aus. Aber ich könnte euch so ein tipp geben . Also bei meiner programmier umgebung machen wirs soo.


    If (hit.collider == tag)
    {


    print = "hi";


    }

    Es lebe die Musik.

    Einmal editiert, zuletzt von FrE4K_ ()


  • Dieser Post ist auf so viele arten unsinnig. Nicht böse gemeint (!), aber es erfordert schon viel Interpretierarbeit um überhaupt rauszubekommen was du vielleicht gedacht hast uns an information geben zu können.
    Wenn man jetzt alle Fantasie benutzt die man zur Verfügung hat, dann liest man, dass du hier in einer Umgebung arbeitest, in welcher es scheinbar eine Klasse gibt die in jedem Simulationsschritt Instanzen ihrer selbst auf maximal eine kollision prüft (wegen dem collision attribut). Dieser werden dann irgendwo je nach kollisionpartner verschiedene tags zugewiesen. Der Schritt, der für chaos! jetzt eventuell interessant sein hätte können (er wäre es nicht) ist, wie diese Kollision überhaupt festgestellt wird. Dein Code ausschnitt beinhaltet keinerlei verwertbare Information.


    @chaos!
    Es ist ungewöhnlich ein Spiel in Basic zu schreiben. Wenn du in einem Programmierforum einen Thread eröffnest, dann gib auf jeden fall mehr information zu deinem Game und dessen Aufbau. Sonst sind die ersten antworten immer "zeig erstmal deinen Code". Dein Anfangspost gibt nämlich so gut wie garkeine Auskunft über das eigentliche Problem, wodurch ungenaue, schwammige, unkonkrete Antworten das einzige sind, was man dir überhaupt geben kann.


  • Dieser Post ist auf so viele arten unsinnig. Nicht böse gemeint (!), aber es erfordert schon viel Interpretierarbeit um überhaupt rauszubekommen was du vielleicht gedacht hast uns an information geben zu können.
    Wenn man jetzt alle Fantasie benutzt die man zur Verfügung hat, dann liest man, dass du hier in einer Umgebung arbeitest, in welcher es scheinbar eine Klasse gibt die in jedem Simulationsschritt Instanzen ihrer selbst auf maximal eine kollision prüft (wegen dem collision attribut). Dieser werden dann irgendwo je nach kollisionpartner verschiedene tags zugewiesen. Der Schritt, der für chaos! jetzt eventuell interessant sein hätte können (er wäre es nicht) ist, wie diese Kollision überhaupt festgestellt wird. Dein Code ausschnitt beinhaltet keinerlei verwertbare Information.


    @chaos!
    Es ist ungewöhnlich ein Spiel in Basic zu schreiben. Wenn du in einem Programmierforum einen Thread eröffnest, dann gib auf jeden fall mehr information zu deinem Game und dessen Aufbau. Sonst sind die ersten antworten immer "zeig erstmal deinen Code". Dein Anfangspost gibt nämlich so gut wie garkeine Auskunft über das eigentliche Problem, wodurch ungenaue, schwammige, unkonkrete Antworten das einzige sind, was man dir überhaupt geben kann.


    Ich wollte dammit sagen das....Die wand einen hit.collider braucht.


    Wie merkt das gameobject den collider ?


    Ganz einfach if(hit.collider = tag) das gameobject kriegt es durch ein tag raus den man festlegen kann. Also : trifft das gameobject den tag "Wand" z.b dan printed er "Du hast die wand getroffen" Hoffe das wahr besser :)

    Es lebe die Musik.

    Einmal editiert, zuletzt von FrE4K_ ()


  • Ich wollte dammit sagen das....Die wand einen hit.collider braucht.

    mmmh… das ist streng genommen quatsch.


    Wie merkt das gameobject den collider ?


    Ganz einfach if(hit.collider = tag) das gameobject kriegt es durch ein tag raus den man festlegen kann. Also : trifft das gameobject den tag "Wand" z.b dan printed er "Du hast die wand getroffen" Hoffe das wahr besser :)

    nein. er printed "hi". Wenn man "hi" auf "Du hast die wand getroffen" ändert, dann printed er das. Und dass er überhaupt etwas printed ist reine Spekulation.


    Du missverstehst die Situation komplett. Dein Code enthält keinerlei Aussage. Und was du erzählst ist keine Erklärung und ist sogar in sich verkehrt.
    Zurück zu den Grundlagen:
    hit, collider und tag sind wenn du wirklich in Java unterwegs bist in jedem Fall Objekte oder Standard-Datentypen. In diesen Begriffen steckt für uns keinerlei Information, weil sie ja nur Namen von Repräsentanten einer Klasse sind, auf deren Definition und Deklaration nur höchstens du Einblick hast. Und das auch nur solange du nicht eine vollständig unsichtbar weggekapselte API verwendest (wovon ich mittlerweile ausgehe, wenn ich sehe wie du hier deinen Code präsentierst). Selbst wenn du uns sogar die Deklarationen von jedem einzelnen deiner tollen Objekte zeigen würdest, dann könnten wir hier nur Mutmaßungen anstellen was es damit auf sich hat.
    Dein Code ist kein "Tipp".
    Um es nochmal deutlich zu machen:
    Die eine Game Engine von den unzähligen Spiele Engines die es da draußen gibt, die du da zufällig erwischt hast (ich unterstelle dir jetzt einfach mal dass du sie nicht selbst geschrieben hast), enthält irgendwelche vollkommen willkürlichen Klassennamen und -definitionen. Davon heißt halt eine zufällig "GameObject" und hat zufällig ein sogenanntes "hit" attribut (und das nur, falls du dich überhaupt in der GameObject-Klasse befindest was wir ja auch nicht wissen können). Und dieses "hit" Attribut hat irgendein Attribut namens "collider", wer wahrscheinlich in irgendeinem update zyklus mit werten belegt wird oder irgendsowas. Die Funktionen von all diesen begriffen sind vollkommen spezifisch für deinen speziellen Anwendungsfall, und es grenzt an Wahrsagerei wenn wir hier versuchen in deinen Code irgendetwas hinein zu interpretieren.


    es ist als würde ich sagen:
    "Mhm ich kenn mich da nur mit Objective-C aus. Aber ich könnte euch so ein Tipp geben. du brauchst ein WorldThing Interface mit nem detectCrash wie diesem hier:


    - (id) detectCrash:(CrashEvent*)event:(CrashFlag*)flag {
    Crash* c = [[Crash alloc] initWithCE: event];
    while([c incrementFlag] != flag)
    if ([c currentFlag] == [c lastFlag]) {
    [c release];
    return NO
    };
    [c release];
    return YES;
    }"


    In diesem code wirrwarr steckt nicht der hauch einer information über das was da wirklich passiert, obwohl er in meinem kontext durchaus funktionieren kann.
    Ich hoffe das ist jetzt klar.


  • Mhm hallo ? Ich hab geschreiben das ich es nur über java programmier und bei meine engine wird das so gemacht. Hast du schonmal was von verschiedenen programmier umgebungen gehört ?

  • Hast du schonmal was von verschiedenen programmier umgebungen gehört ?

    ja, aber du scheinbar nicht.
    Was du meinst ist keine Programmierumgebung sondern eine API oder Ähnliches.
    Eine Programmierumgebung ist nämlich eine IDE wie MS Visual Studio oder Eclipse.

  • ja, aber du scheinbar nicht.
    Was du meinst ist keine Programmierumgebung sondern eine API oder Ähnliches.
    Eine Programmierumgebung ist nämlich eine IDE wie MS Visual Studio oder Eclipse.


    Nein oder ? Ich benutze MonoDevelop und ich hab gesagt ich könnte ihn so ein tip geben. Aber nur in java. Villeicht weis er dan wie er das in sein script umwandeln kann -.- naja is ja jetzt auch scheiß egal

  • Zitat von FrE4K_


    Nein oder ? Ich benutze MonoDevelop und ich hab gesagt ich könnte ihn so ein tip geben. Aber nur in java. Villeicht weis er dan wie er das in sein script umwandeln kann -.- naja is ja jetzt auch scheiß egal

    Dass du MonoDevelop verwendest impliziert nicht dass die Klassen und vor allem Objektnamen die du gewählt hast so existieren.


    Davon abgesehen: den code
    if (a == b) {
    c = "hi";
    }
    in VB umzuwandeln sollte hoffentlich jeder VB programmierer können, solange er den Java syntax halbwegs kennt. das gibt dem code auch noch keine bedeutung.
    Du hast natürlich recht, dass das egal ist weil es nichts mit der Thread-Frage zu tun hat. Wir sollten die diskussion deswegen hier abbrechen.


  • Jop naja ^^ du programmierst vb oder ? Dan kennste dich doch besser aus ? Sry wen ich dammit scheiße gesagt hab ^^

  • schon in ordnung.
    ne ich hab nie Visual Basic programmiert, hab auch noch nie nen visual basic game gesehen.

  • kyle :D komm ma runter^^... du bist einfach der kylste.. wissen wir :P
    :D hab in vb früher viel scheiss gemacht... stubs.. wenn jemand hier weiß was das ist X'DDDD
    na erlaubt isses ja :D^^

  • Gibts ein Screenshot, damit wir uns vorstellen können, wie das Ding aussieht? Bei rechtwinkliger Anordnung der Wände könntest Du einfach einen Koordinatenvergleich machen...

  • Funktioniert denn die "Nicht das Fenster verlassen"-Geschichte?


    Hmm, lese ich den Code richtig, dass der Ball über die Tasten gesteuert wird, der Mauszeiger die Wände aber nicht berühren darf? Gibt es irgendeinen Zusammenhang zwischen Mauszeiger und Ball?


    Ansonsten würde ich in Form1_KeyDown bei jedem Schritt checken, ob die Koordinaten des Balls und die Koordinaten aller Wände in irgendeiner Form überschneiden (für den Fall, dass es keinen Collisionhandler gibt), also z. B.:


    for (alle Wände durchgehen) {
    // Kollision links checken
    if ( (linke_x-Koordinate_ball < rechte_x-Koordinate_wand) AND
    (linke_x-Koordinate_ball > linke_x-Koordinate_wand) ) THEN {...}


    // Kollision rechts checken
    if ( (rechte_x-Koordinate_ball < rechte_x-Koordinate_wand) AND
    (rechte_x-Koordinate_ball > linke_x-Koordinate_wand) ) THEN {...}


    // Kollision oben checken
    if ( (obere_y-Koordinate_ball < untere_y-Koordinate_wand) AND
    (obere_y-Koordinate_ball > obere_y-Koordinate_wand) ) THEN {...}


    // Kollision unten checken
    if ( (untere_y-Koordinate_ball < untere_y-Koordinate_wand) AND
    (untere_y-Koordinate_ball > obere_y-Koordinate_wand) ) THEN {...}
    }


    Sonst guck Dir mal den Code (leider Objective C) unter http://iosgames.de/marblemaze/ an... da wird genau das gemacht (allerdings über Accelerometer gesteuert)...

FL Studio Shop.de