character anklicken

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

kreisman

Betreff: character anklicken

BeitragMi, Sep 29, 2004 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir eine einfache Tile-Engine geschrieben und wollte es nun einbauen, dass man wenn man einen character anklickt eine aktion ausgeführt wird. Ich hab es erst mit if imagescollide versucht. Das funzt aber nich. Die Frage deshalb wie macht ihr das. Achso den Code hab ich leider nicht mehr. Mir ist gestern der Rechner abgekackt und es kam ein Windows Schutzfehler und ich durfte formatieren.

Jan_

Ehemaliger Admin

BeitragMi, Sep 29, 2004 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
"Wir" - jedenfalls ich

legen für alle Charakter ein Type feld an.

Code: [AUSKLAPPEN]
Type Charakter
  Field Aktion
  Field X
  Field Y
  Field Health
  Field aktive
  Field Name$
  Field Bild
end type


und fragen dann mit Imagerectcolide (oder so ähnlich) ab, wer gewählt wurde.

Code: [AUSKLAPPEN]
For Char.Charakter = Each Charakter
  char\aktive=0
  if imagerectcollide(Mousex,mouseY,1,1,Char\Bild,x-Scrolling_X,Y-Scrolling_Y) char\aktive=1
next


Achtung Code funktioniert nicht, ist nur als beispiel!
between angels and insects

DivineDominion

BeitragMi, Sep 29, 2004 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
mal anders herum:

was funktioniert da denn nicht?
wird die aktion nicht ausgeführt oder funktioniert das anklicken schon gar nicht erst?
wenn du das nicht weißt, probier es mal so:
Code: [AUSKLAPPEN]
If ImagesCollide( ... ) and MouseDown( 1 )
  debuglog "Kollision!"
  ;Aktionen hier hinein
Endif

DebugLog schreibt dann die Zeile in das Debug log Wink Ist bei neueren BB Versionen beim eingeschalteten Debugger im Debugger-Fensterchen unten der Bereich. Wenn du eine alte Version hast, musst du während der Programmausführung im Editor F9 drücken, um das log zu öffnen.

Alternativ zum Debuglog geht's auch noch ganz radikal: Einfach END ausführen, wenn Kollision & Klick stimmen. Das sieht man garantiert Smile

Ach ja, MouseHit() könnte deine Fehlerquelle sein. Schreib deinen Codeausschnitt doch mal hier rein, dann sieht man es besser.
MouseHit() prüft nur auf einen Klick pro Schleife, du musst das also zwischenspeichern (auch nur EIN MAL pro Schleifendurchgang, also in der Main-loop eine globale Variable benutzen):
Code: [AUSKLAPPEN]
mh = MouseHit( 1 )

if mh and a = 2
 ;...
elseif mh and b = a
 ;...
endif
christian.tietze@gmail.com - https://christiantietze.de
macOS

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group