Types gehen nicht
Übersicht

pepetigoBetreff: Types gehen nicht |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Diese beiden funtionen ich glaube diie Function: gegnerbewegen(), functioniert nicht.
Könnt ihr mir helfen??? thx Code: [AUSKLAPPEN] Function neuergegner() gegner.rot = New rot gegner\x = Rnd(1, 620) gegner\y = 0 gegner\speed = Rnd(1,3) End Function Function gegnerbewegen() For gegner.rot = Each rot gegner\y = gegner\y + (1 * gegner\speed) ; Helicopter zeichnen. DrawImage gegner_1, gegner\x, gegner\y ; Wenn Heli am unteren Rand ist, wird er gelöscht. If gegner\y < 480 Then gegnerloeschen = 1 EndIf If gegnerloeschen = 1 Then Delete gegner.rot gegnerloeschen = 0 EndIf Next End Function |
||
pepetigo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mir ist eingefallen das es auch an der Einbindung in das Spiel liegen kann.
Code: [AUSKLAPPEN] repeat ;HAUPTSCHLEIFE Repeat SeedRnd MilliSecs t = Rnd(1, 3) If t = 3 Then neuergegner() ;funktionen star() ;Hintergrund collide() ; functioniert noch nicht gegnerbewegen() until Keyhit(1) |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo ist denn das Type? Sehe da nur die Aufrufe...
Könntest du evtl. demnächst den Edit Button (oben rechts, der mit dem Schraubenschlüssel) benutzen? Doppelposts sind nicht erwünscht. (Verdammter IE6, wieso kann ich mit dem Ding keine Grafikadresse kopieren >:O) cheers |
||
pepetigo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok
Das mit dem qype ist geklärt war das größer kleiner Zeichen beim löschen. Jetzt zur Collision: thx Code: [AUSKLAPPEN] If Imagescollide(spieler_1, Player_pos_x, 380, 0, gegner_1,we´ß ich nicht was ich reinschreiben soll, wenn ich schreibe:gegner\x schreibt er:Variable must be a Type) |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da steht doch schon das Problem
gegner muss von irgend einem type sein also bei der deklaration gegner.TypeName = new TypeName und dieser Type muss das Field haben auf das du versuchst zuzugreifen. Bitte mach erst die grundlagen Tutorials die Types nutzen um die Grundlagen zu verstehen bevor du es versuchst zu verwenden. Das macht es nur komplizierter zu verstehen. Erst verstehen wie es funktioniert. Dann verstehen wie man es einsetzen kann. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
pepetigo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bei mir ist der Type:
Code: [AUSKLAPPEN] Type rot Field x Field y Field speed End Type Was soll ich den Einsetzen bei der Collision??? Ich weiß nicht mehr weiter ![]() thx |
||
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, du solltest vielleicht mal deine Variable (willst du jetzt gegner_1 oder gegner als Variable?) global definieren. Und überhaupt als Type.
Code: [AUSKLAPPEN] Global Gegner.rot = New rot
Wenn du geringe Englisch-Kenntnisse besitzt, hättest du das auch von allein lösen können. Und auf Dreamora hören, also les doch ein Buch, Tutorial etc. Dann frag im BlitzForum, wenn du nichts in der Forensuche findest. MFG Lador |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
@pepetigo: Naja, dein Type hat gar kein Bild, also kannst du schlecht die Kollision überprüfen.
Code: [AUSKLAPPEN] ;Type für den Gegner Type gegner Field img ;Bild Field x ;X-Pos Field y ;Y-Pos Field speed ;Geschwindigkeit End Type Graphics 640,480,32,1 ;Grafikmodus Setbuffer Backbuffer() ;Backbuffer, d.h. das Bild wird im Hintergrund gezeichnet und mit Flip gezeigt g1.gegner=new gegner ;Neuer Gegner erstellen g1\img=Createimage(100,100) ;Bild mit den Massen 100,100 erstellen Setbuffer Imagebuffer(g1\img) ;In den Imagebuffer wechseln, um aufs Bild zu zeichnen Color 255,0,0 Oval 0,0,100,100,1 ;Rotes, gefülltes Oval ins Bild zeichnen. damit wir etwas sehen^^ Setbuffer Backbuffer() ;Wieder in den Backbuffer wechseln! g1\x=0 ;X-Pos g1\y=0 ;Y-Pos g1\speed=10 ;Geschwindigkeit player=createimage(100,100) ;Player erstellen Setbuffer Imagebuffer(player) ;In den Imagebuffer des Players wechseln Color 0,255,0 Oval 0,0,100,100,1 ;Grünes, gefülltes Oval zeichnen, damit wir den Player sehen! Setbuffer Backbuffer() ;Guten Tag, Herr Backbuffer! While not KeyDown(1) ;Während nicht Tasterunter Escape mx=Mousex() ;Mauskoordinaten als Variable speichern, könnten wir uns auch schenken, ich machs my=Mousey() ;aber immer so, weils bequemer ist ;) If g1\x>mx then ;Wenn g1\x grösser ist als die mausXkoordinate, dann bewegt g1\x=g1\x-g1\speed ;er sich auf die Maus zu... Else ;Sonst g1\x=g1\x+g1\speed ;Bewegt er sich auch auf dieMaus zu, nur halt von der anderen Richtung :D EndIf ;Dat gleiche mit Y If g1\y>my then g1\y=g1\y-g1\speed Else g1\y=g1\y+g1\speed EndIf Drawimage g1\img, g1\x, g1\y ;Gegnerbild zeichnen Drawimage player, mx, my ;Spielerbild zeichnen If Imagescollide(g1\img, g1\x, g1\y,0,spieler, mx,my,0) Then ;wenn der Gegner mit dem Spieler ;kollidiert... RuntimeError("TOT!!HAHAHA!!TOOOOOHOOOOT!!") ;Mit dieser Fehlermeldung beenden. EndIf Flip ;Backbuffer Bild zeichnen Cls ;Bildschirm löschen Wend ;Ende der While Schleife End ;Ende Aus dem Kopf aufgeschrieben. Funktionsfähig! Bis auf einen Fehler, den darfst du beheben. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group