character anklicken
Übersicht BlitzBasic Beginners-Corner
kreismanBetreff: character anklicken |
Mi, Sep 29, 2004 13:38 Antworten mit Zitat |
|
---|---|---|
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 |
Mi, Sep 29, 2004 13:55 Antworten mit Zitat |
|
---|---|---|
"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 |
Mi, Sep 29, 2004 17:08 Antworten mit Zitat |
|
---|---|---|
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 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 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 |
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group