Seite 1 von 2

verschiedene bilder geladen,trotzdem kommen gleiche

Verfasst: 11.01.2005 08:31
von captain third
ich habe 2 verschiedene bilder geladen,für maus und einfach so ein bild um zu testen wie das funktioniert mit SpriteCollision()

und obwohl ich 2 verschiedene bilder geladen habe,kommt trotzdem nur eins,das ist das gleiche wie bei der maus...hier ist der code

Code: Alles auswählen

InitSprite()
;-defi loading 
OpenScreen(800,600,16,"Test")
FontID3 = LoadFont(3, "Digital", 10)
StartDrawing(ScreenOutput()) 
FrontColor(20,255,20) 
Locate(300,300) 
BackColor(0,0,0)
DrawText("I")
StopDrawing()
FlipBuffers()
InitKeyboard()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput()) 
FrontColor(20,255,20) 
Locate(300,300) 
BackColor(0,0,0)
DrawText("II")
StopDrawing()
FlipBuffers()
InitMouse()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput()) 
FrontColor(20,255,20) 
Locate(300,300) 
BackColor(0,0,0)
DrawText("III")
StopDrawing()
FlipBuffers()
LoadSprite(Bild1,"C:\UniMatrix\Welcome.bmp")
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
FrontColor(20,255,20)
Locate(300,300)
BackColor(0,0,0)
DrawText("IIII")
StopDrawing()
FlipBuffers()
LoadSprite(cursor,"C:\Eigene Dateien\Eigene Bilder\ico\CircuitPhantom.ico.bmp")
ClearScreen(0,0,0)
StartDrawing(ScreenOutput()) 
FrontColor(20,255,20) 
Locate(300,300) 
BackColor(0,0,0)
DrawText("IIIII")
Locate(300,320)
DrawText("Complete")
Locate(300,340)
DrawText("Auflösung : 1024*768 16 bitmodus")
StopDrawing()
TransparentSpriteColor(cursor,255,0,255)
FlipBuffers()
Delay(1000)
MouseLocate(300,300)

;-Hauptschleife 1
;   
Repeat 
ClearScreen(0,0,0)
ExamineKeyboard()
ExamineMouse()
DisplaySprite(cursor,MouseX(),MouseY())
DisplaySprite(Bild1,100,100)
If MouseButton(1)
;-überüprüfung ob ein bild gedrückt worden ist was gedrückt wurden ist
 If SpriteCollision(Bild1, 100, 100, cursor, MouseX(), MouseY())
  StartDrawing(ScreenOutput())
  FrontColor(0,128,0)
  BackColor(0,0,0)
  Locate(300,300)
  DrawText("Bild wurde gedrückt")
  StopDrawing()
 Else
  StartDrawing(ScreenOutput())
  FrontColor(0,128,0)
  BackColor(0,0,0)
  Locate(300,300)
  DrawText("Bild wurde nicht gedrückt")
  StopDrawing()   
 EndIf
EndIf 
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End
warum ist das so?

Verfasst: 11.01.2005 09:00
von DrShrek
Wahrscheinlich weil die Variabeln 'cursor' u. 'Bild1' den gleichen Wert (=0) haben.

Re: verschiedene bilder geladen,trotzdem kommen gleiche

Verfasst: 11.01.2005 09:09
von crossroads
captain third hat geschrieben:ich habe 2 verschiedene bilder geladen,für maus und einfach so ein bild um zu testen wie das funktioniert mit SpriteCollision()

und obwohl ich 2 verschiedene bilder geladen habe,kommt trotzdem nur eins,das ist das gleiche wie bei der maus ...

... warum ist das so?

Code: Alles auswählen

LoadSprite(Bild1,"C:\UniMatrix\Welcome.bmp")
Der Variablen "Bild1" wurde kein Wert zugewiesen und hat somit defaultmäßig den Wert null.

Code: Alles auswählen

LoadSprite(cursor,"C:\Eigene Dateien\Eigene Bilder\ico\CircuitPhantom.ico.bmp")
Mit der Variablen "cursor" verhält es sich genauso.

Um den Code wenigstens mal zum Laufen zu bekommen, das hier am Anfang hinzufügen:

Code: Alles auswählen

Global Bild1, cursor
Bild1  = 0
cursor = 1

Verfasst: 11.01.2005 11:05
von freedimension
Nimm am Besten Konstanten dafür, spart Arbeitsspeicher, CPU-Zeit und Nerven

Code: Alles auswählen

Enumeration
  #Bild1
  #Cursor
EndEnumeration

Verfasst: 11.01.2005 14:47
von captain third
achso...mmh klar....hab none frage :mrgreen:

un zwa im som tutorial steht das wenn man eine grafik hat,ist die immer rechteckig,und damit man den hintergrund von der grafik nicht sieht benutzt man TransparentSpriteColor(#sprite,255,0,255)(schweinchenrosa)
den hintergrund von meiner grafik hab ich auch 255,0,255 gemacht,dennoch sehe ich den hintergrund der grafik...muss dieses transparentSpriteColor() in der repeatschleife stehn? oder dann man es schon früher aufrufen??? oder gibtsn andren fehler?

Verfasst: 11.01.2005 15:05
von Leo
Das bild muss jetz mit DisplayTransparentSprite anstatt DisplaySprite angezeigt werden ;)

Verfasst: 11.01.2005 16:29
von crossroads
captain third hat geschrieben:achso...mmh klar....hab none frage :mrgreen:

un zwa im som tutorial steht das wenn man eine grafik hat,ist die immer rechteckig,und damit man den hintergrund von der grafik nicht sieht benutzt man TransparentSpriteColor(#sprite,255,0,255)(schweinchenrosa)
den hintergrund von meiner grafik hab ich auch 255,0,255 gemacht,dennoch sehe ich den hintergrund der grafik...muss dieses transparentSpriteColor() in der repeatschleife stehn? oder dann man es schon früher aufrufen??? oder gibtsn andren fehler?
Ist manchmal ganz hilfreich, einen Blick die PB-Hilfe zu werfen:
(Führt oft - bei so einfachen Dingen - zur schnelleren Problemlösung als ein Post hier im Forum :D )
Syntax

TransparentSpriteColor(#Sprite, Rot, Grün, Blau)
Beschreibung

Ändert die transparente Farbe des Sprites (wenn es mittels DisplayTransparentSprite() angezeigt wird).

Verfasst: 11.01.2005 21:35
von captain third
sry,da habsch inna hilfe net nachjeguggt...danke :mrgreen:

Verfasst: 11.01.2005 23:41
von RaVeN99
Crossroads hat geschrieben:Ist manchmal ganz hilfreich, einen Blick die PB-Hilfe zu werfen:
(Führt oft - bei so einfachen Dingen - zur schnelleren Problemlösung als ein Post hier im Forum )
Na wenigstens bin ich nicht der einzige dem das auffällt /:->
Nix für ungut, aber Programmieren hat viel mit Selbstständigkeit zu tun - und daran scheints CaptainThird wohl imho irgendwie zu mangeln, denn sonst wäre die Zahl der vorhandenen Fragen höchstens halb so groß...

mir fällt da spontan nur das dazu ein:
RTFM

Die Reaktionen die man hier im Forum beobachten kann sind immer wieder witzig:
Andere Newbies werden angepflaumt, mit vor ironie triefenden Sätzen bedacht, es wird der bekannte kasten rechts oben und unser aller freund google zitiert, von freundlichkeit fehlt da meist jede spur, auch wenn es sich um zig tausendfach ausdiskutierte themen dreht - man kann sowas auch netter rüber bringen...
Allerdings sind die Fragen anderer Newbies meist nicht halb so sinnlos wie die, die CaptainThird zur genüge stellt (Fragen die einen 30 sekunden lang einen scharfen blick, einen blick in die hilfe, oder einfach nur ein wenig ruhe kosten sind imho sinnlos!) und dennoch habe ich hier noch nichts ähnliches wie bei anderen lesen können.
Ich will mich hier ja wirklich nicht aufspielen und zum moralapostel aufschwingen, aber entweder so oder so, entweder dumme Fragen kritisieren und sagen was man zuerst tun sollte bevor man hier postet, oder gleich komplett die klappe halten...

Ich will hier echt niemanden persönlich angreifen oder beleidigen, aber sowas geht mir einfach aufn zeiger.

Btw.: Sorry für das off-topic geschreibsel, aber das musste einfach mal sein.


Mfg
RaVeN

Verfasst: 11.01.2005 23:59
von captain third
schon gut Raven,ich verstehs ja,ich gebs ja zu für die meisten fragen,müsst ich mich wirklich schämen.... :cry: AN ALLE DIE ICH GENERVT HABE,ES TUT MIR LEID :|