Kollision in Types
Übersicht

romanski1985Betreff: Kollision in Types |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hello,
Ich habe eine Kollisionsabfrage die ich direkt in eine Type eingebaut habe. Leider funktioniert sie nur ausserhalb der Type aber nicht darin. Warum ist das so? Andere Methoden? So passiert garnichts, nur der Button wird angezeigt aber keine Reaktion: Type Button Field x:Int Field y:Int Field i:Int Field img:TImage Field active:Int Field action:Int Function Neu:Button() Return New Button End Function Method Draw() DrawImage img,x,y If themouse <> Null Then If ImagesCollide(img,x,y,0,themouse,MouseX(),MouseY(),0) Then End End If End If End Method End Type und später in der while-wend schleife: Buttons[1].draw() |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. Verwende den Code-Tag
2. Verwende SuperStrict (?) 3. Trifft 2. nicht bereits zu, liegt es evt. wohl daran, das "themouse" = Null ist. 4. Die Funktion "Neu()" ist irgendwie nicht so sehr sinnvoll. 5. Benenne Types am besten mit einem T am Anfang, also hier TButton, um zu verdeutlichen, dass es sich um ein Type, nicht um ein Objekt handelt. ![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ausserdem sollten Threads von nem Mod oder nem Admin verschoben werden und nicht neu erstellt werden. Wie Reaper schon sagte liegt es wahrscheinlich an themouse. Bisschen mehr Code?
lg ComNik |
||
WIP: Vorx.Engine |
romanski1985 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sorry ja, hatte keine geduld deswegen hab ich doppelgepostet,ähem...
hier mehr vom code. erst deklariere ich für meine type die anzahl an types: (@reaper wieso ist die neu-funktion sinnlos bzw. wie kann ich sie umgehen?) code am anfang: Code: [AUSKLAPPEN] Global Buttons:Button[Buttonsmax] the mouse ist einfach nur das image für den mousecursour: Code: [AUSKLAPPEN] Local themouse:TImage = LoadImage("media/cursour.png") das hier ist die funktion um den button zu erstellen und wird irgendwann am anfang des programms aufgerufen: Code: [AUSKLAPPEN] Function CreateButton(i:Int,x:Int,y:Int,active:Int,action:Int) Buttons[i] = Button.Neu() Buttons[i].x = x Buttons[i].y = y Buttons[i].i = i Buttons[i].active = active Buttons[i].action = action Select buttons[i].action Case 1 Buttons[i].img = LoadImage("media/build.png") Case 2 Buttons[i].img = LoadImage("media/council.png") End Select und das hier ist während der laufzeit: Code: [AUSKLAPPEN] For Local j:Int = 1 To buttonsmax - 1 If buttons[j] <> Null Then Buttons[j].draw() End If Next |
||
- Zuletzt bearbeitet von romanski1985 am Do, Aug 20, 2009 18:31, insgesamt einmal bearbeitet
romanski1985 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
übrigens wenn ich das mit themouse <> Null weglasse passiert folgendes für die darauffolgende line:
Unhandled Exception:Attempt to access field or method of Null object wenn ich die zeile drinlasse passiert wie beschrieben garnichts. aber es scheint trotzdem damit zu tun zu haben. er bemerkt nicht dass themouse ein bild ist also geladen wurde. ansonsten klappt es ja auch warum erkennt er es nicht in der type? |
||
- Zuletzt bearbeitet von romanski1985 am Do, Aug 20, 2009 18:37, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn themouse lokal ist, ist es in der Draw-Methode nicht verfügbar. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
1.) Schreib in die erste Zeile von jedem Code folgendes: SuperStrict
Wenn du das nicht tust, ist es quasi zwecklos, zu versuchen, dir zu helfen. 2.) Doppelpost sind nicht gut. |
||
romanski1985 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah ok krass. danke!!
hatte das bild nicht mit global sondern local geladen daran lag es. jetzt verstehe ich etwas mehr. vielen dank! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group