Maus im Vollbildmodus ohne Image

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

TheProgrammer

Betreff: Maus im Vollbildmodus ohne Image

BeitragSo, Apr 04, 2004 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier der Code:

BlitzBasic: [AUSKLAPPEN]

Graphics 640,480,32,1
SetBuffer BackBuffer()

ClsColor 255,0,255

While Not KeyHit(1)
Cls
DrawPointer
Flip
Wend
End

Function DrawPointer()

Color 255,255,255
Plot MouseX()+1,MouseY()+2
Plot MouseX()+1,MouseY()+3
Plot MouseX()+2,MouseY()+3
Plot MouseX()+1,MouseY()+4
Plot MouseX()+2,MouseY()+4
Plot MouseX()+3,MouseY()+4
Plot MouseX()+1,MouseY()+5
Plot MouseX()+2,MouseY()+5
Plot MouseX()+3,MouseY()+5
Plot MouseX()+4,MouseY()+5
Plot MouseX()+1,MouseY()+6
Plot MouseX()+2,MouseY()+6
Plot MouseX()+3,MouseY()+6
Plot MouseX()+4,MouseY()+6
Plot MouseX()+5,MouseY()+6
Plot MouseX()+1,MouseY()+7
Plot MouseX()+2,MouseY()+7
Plot MouseX()+3,MouseY()+7
Plot MouseX()+4,MouseY()+7
Plot MouseX()+5,MouseY()+7
Plot MouseX()+6,MouseY()+7
Plot MouseX()+1,MouseY()+8
Plot MouseX()+2,MouseY()+8
Plot MouseX()+3,MouseY()+8
Plot MouseX()+4,MouseY()+8
Plot MouseX()+5,MouseY()+8
Plot MouseX()+6,MouseY()+8
Plot MouseX()+7,MouseY()+8
Plot MouseX()+1,MouseY()+9
Plot MouseX()+2,MouseY()+9
Plot MouseX()+3,MouseY()+9
Plot MouseX()+4,MouseY()+9
Plot MouseX()+5,MouseY()+9
Plot MouseX()+6,MouseY()+9
Plot MouseX()+7,MouseY()+9
Plot MouseX()+8,MouseY()+9
Plot MouseX()+1,MouseY()+10
Plot MouseX()+2,MouseY()+10
Plot MouseX()+3,MouseY()+10
Plot MouseX()+4,MouseY()+10
Plot MouseX()+5,MouseY()+10
Plot MouseX()+1,MouseY()+11
Plot MouseX()+2,MouseY()+11
Plot MouseX()+4,MouseY()+11
Plot MouseX()+5,MouseY()+11
Plot MouseX()+1,MouseY()+12
Plot MouseX()+5,MouseY()+12
Plot MouseX()+6,MouseY()+12
Plot MouseX()+5,MouseY()+13
Plot MouseX()+6,MouseY()+13
Plot MouseX()+6,MouseY()+14
Plot MouseX()+7,MouseY()+14
Plot MouseX()+6,MouseY()+15
Plot MouseX()+7,MouseY()+15
Plot MouseX()+7,MouseY()+16
Plot MouseX()+8,MouseY()+16
Plot MouseX()+7,MouseY()+17
Plot MouseX()+8,MouseY()+17
Color 0,0,0
Plot MouseX()+0,MouseY()+0
Plot MouseX()+0,MouseY()+1
Plot MouseX()+1,MouseY()+1
Plot MouseX()+0,MouseY()+2
Plot MouseX()+2,MouseY()+2
Plot MouseX()+0,MouseY()+3
Plot MouseX()+3,MouseY()+3
Plot MouseX()+0,MouseY()+4
Plot MouseX()+4,MouseY()+4
Plot MouseX()+0,MouseY()+5
Plot MouseX()+5,MouseY()+5
Plot MouseX()+0,MouseY()+6
Plot MouseX()+6,MouseY()+6
Plot MouseX()+0,MouseY()+7
Plot MouseX()+7,MouseY()+7
Plot MouseX()+0,MouseY()+8
Plot MouseX()+8,MouseY()+8
Plot MouseX()+0,MouseY()+9
Plot MouseX()+9,MouseY()+9
Plot MouseX()+0,MouseY()+10
Plot MouseX()+6,MouseY()+10
Plot MouseX()+7,MouseY()+10
Plot MouseX()+8,MouseY()+10
Plot MouseX()+9,MouseY()+10
Plot MouseX()+10,MouseY()+10
Plot MouseX()+0,MouseY()+11
Plot MouseX()+3,MouseY()+11
Plot MouseX()+6,MouseY()+11
Plot MouseX()+0,MouseY()+12
Plot MouseX()+2,MouseY()+12
Plot MouseX()+4,MouseY()+12
Plot MouseX()+7,MouseY()+12
Plot MouseX()+0,MouseY()+13
Plot MouseX()+1,MouseY()+13
Plot MouseX()+4,MouseY()+13
Plot MouseX()+7,MouseY()+13
Plot MouseX()+0,MouseY()+14
Plot MouseX()+5,MouseY()+14
Plot MouseX()+8,MouseY()+14
Plot MouseX()+5,MouseY()+15
Plot MouseX()+8,MouseY()+15
Plot MouseX()+6,MouseY()+16
Plot MouseX()+9,MouseY()+16
Plot MouseX()+6,MouseY()+17
Plot MouseX()+9,MouseY()+17
Plot MouseX()+7,MouseY()+18
Plot MouseX()+8,MouseY()+18

End Function
aktuelles Projekt: The last day of human being

wunderkind

BeitragSo, Apr 04, 2004 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
WENN ich soetwas machen würde (nein, würde ich im Leben nicht!), dann würde ich a) einmal die Mausdaten erfragen, speichern und wiederverwenden und b) mit LockBuffer(), UnlockBuffer() sowie WritePixelFast() arbeiten.

Einfacher und bei weitem gebräuchlicher ist DrawImage() in Zusammenarbeit mit MaskImage().

Wofür soll das gut sein, was du geschrieben hast?

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSo, Apr 04, 2004 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm netter Mauszeiger Wink

Man sollte aber nicht bei jedem Schleifendurchlauf so viele Plots machen. Am besten macht man nen Image mit CreateImage und malt das Teil dann einmalig in den ImageBuffer von diesem Image. Dürfte deutlich schneller sein.
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com

TheProgrammer

BeitragSo, Apr 04, 2004 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
@wunderkind:
Ich habe die Daten der Maus aus einem Image erlesen und sie in eine BB-Datei geschrieben.
Es ist dafür nützlich, dass man kein Extra-Image für eine Maus braucht.
aktuelles Projekt: The last day of human being
 

jaZ

BeitragSo, Apr 04, 2004 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
da gibts keinen vorteil.. selbst kein vorteil im speicher nämlich das was du mit dem bild wett machst ersetzt du 100 mal größer mir deutlich mehr source.. pff, mach was produktives Very Happy
--DRRRSCH!!--

Triton

BeitragMo, Apr 05, 2004 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Was bringt das jetzt, außer dass es langsamer ist? Wink

dominik

BeitragMo, Apr 05, 2004 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
jo also soll ich auch noch irgentwass sagen um ihn runter zu machen und ihm zu sagen was für eine scheiße er macht oder reichts schon?
die meisten sachen die hier im forum geposte werden sind eigentlich zimlich sinnlos aber wenn ich dann auch noch solche kommentare bekommen würde hätt ich keinen bock mehr noch irgentwas zu sagen oder hier rein zu stellen.
 

Weazle25

BeitragMo, Apr 05, 2004 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier im Forum scheint es ja einige zu geben die sich für grosse Genies halten aber mit ihren Äusserungen nur das Gegenteil beweisen.
Schliesst nicht von Euch auf andere denn nur weil Ihr den Code nicht gebrauchen könnt muss er noch lange nicht unbrauchbar sein.

So unnütz ist der Code gar nicht:
Was macht man wenn der Cursor permanent seine Farbe ändern soll?
Eine Bitmap wäre unbrauchbar denn eine Bitmap mit 1000 Cursorn wäre viel zu gross.
Mit dem obigen Code wäre es mit ein paar Modifikationen dennoch machbar.
Lediglich die Geschwindigkeit müsste man noch verbessern.


Gruss
Weazle

PS: Für die meisten Codes braucht man nur etwas Fantasie um ihren Sinn zu erkennen.

Kryan

BeitragMo, Apr 05, 2004 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
mx=MouseX()
my=MouseY()
und dann erst die Punkte malen
Sonst müsste ja ein und dieselbe Funktion 100mal aufgerufen werden
Hier etwas besser:BlitzBasic: [AUSKLAPPEN]
Graphics 640,480,32,1 
SetBuffer BackBuffer()
ClsColor 255,0,255

While Not KeyHit(1)
Cls
DrawPointer 0
Flip
Wend
End

Function DrawPointer(r1=255,g1=255,b1=255,r2=0,g2=0,b2=0)

rgb=a*$1000000 + r1*$10000 + g1*$100 + b1
rgb=rgb And $FFFFFF
rgb2=a*$1000000 + r2*$10000 + g2*$100 + b2
rgb2=rgb2 And $FFFFFF

mx=MouseX()
my=MouseY()

WritePixel mx+1,my+2,rgb
WritePixel mx+1,my+3 ,rgb
WritePixel mx+2,my+3 ,rgb
WritePixel mx+1,my+4 ,rgb
WritePixel mx+2,my+4 ,rgb
WritePixel mx+3,my+4 ,rgb
WritePixel mx+1,my+5 ,rgb
WritePixel mx+2,my+5 ,rgb
WritePixel mx+3,my+5 ,rgb
WritePixel mx+4,my+5 ,rgb
WritePixel mx+1,my+6 ,rgb
WritePixel mx+2,my+6 ,rgb
WritePixel mx+3,my+6 ,rgb
WritePixel mx+4,my+6 ,rgb
WritePixel mx+5,my+6 ,rgb
WritePixel mx+1,my+7 ,rgb
WritePixel mx+2,my+7 ,rgb
WritePixel mx+3,my+7 ,rgb
WritePixel mx+4,my+7 ,rgb
WritePixel mx+5,my+7 ,rgb
WritePixel mx+6,my+7 ,rgb
WritePixel mx+1,my+8 ,rgb
WritePixel mx+2,my+8 ,rgb
WritePixel mx+3,my+8 ,rgb
WritePixel mx+4,my+8 ,rgb
WritePixel mx+5,my+8 ,rgb
WritePixel mx+6,my+8 ,rgb
WritePixel mx+7,my+8 ,rgb
WritePixel mx+1,my+9 ,rgb
WritePixel mx+2,my+9 ,rgb
WritePixel mx+3,my+9 ,rgb
WritePixel mx+4,my+9 ,rgb
WritePixel mx+5,my+9 ,rgb
WritePixel mx+6,my+9 ,rgb
WritePixel mx+7,my+9 ,rgb
WritePixel mx+8,my+9 ,rgb
WritePixel mx+1,my+10 ,rgb
WritePixel mx+2,my+10 ,rgb
WritePixel mx+3,my+10 ,rgb
WritePixel mx+4,my+10 ,rgb
WritePixel mx+5,my+10 ,rgb
WritePixel mx+1,my+11 ,rgb
WritePixel mx+2,my+11 ,rgb
WritePixel mx+4,my+11 ,rgb
WritePixel mx+5,my+11 ,rgb
WritePixel mx+1,my+12 ,rgb
WritePixel mx+5,my+12 ,rgb
WritePixel mx+6,my+12 ,rgb
WritePixel mx+5,my+13 ,rgb
WritePixel mx+6,my+13 ,rgb
WritePixel mx+6,my+14 ,rgb
WritePixel mx+7,my+14 ,rgb
WritePixel mx+6,my+15 ,rgb
WritePixel mx+7,my+15 ,rgb
WritePixel mx+7,my+16 ,rgb
WritePixel mx+8,my+16 ,rgb
WritePixel mx+7,my+17 ,rgb
WritePixel mx+8,my+17 ,rgb
WritePixel mx+0,my+0 ,rgb2
WritePixel mx+0,my+1 ,rgb2
WritePixel mx+1,my+1 ,rgb2
WritePixel mx+0,my+2 ,rgb2
WritePixel mx+2,my+2 ,rgb2
WritePixel mx+0,my+3 ,rgb2
WritePixel mx+3,my+3 ,rgb2
WritePixel mx+0,my+4 ,rgb2
WritePixel mx+4,my+4 ,rgb2
WritePixel mx+0,my+5 ,rgb2
WritePixel mx+5,my+5 ,rgb2
WritePixel mx+0,my+6 ,rgb2
WritePixel mx+6,my+6 ,rgb2
WritePixel mx+0,my+7 ,rgb2
WritePixel mx+7,my+7 ,rgb2
WritePixel mx+0,my+8 ,rgb2
WritePixel mx+8,my+8 ,rgb2
WritePixel mx+0,my+9 ,rgb2
WritePixel mx+9,my+9 ,rgb2
WritePixel mx+0,my+10 ,rgb2
WritePixel mx+6,my+10 ,rgb2
WritePixel mx+7,my+10 ,rgb2
WritePixel mx+8,my+10 ,rgb2
WritePixel mx+9,my+10 ,rgb2
WritePixel mx+10,my+10 ,rgb2
WritePixel mx+0,my+11 ,rgb2
WritePixel mx+3,my+11 ,rgb2
WritePixel mx+6,my+11 ,rgb2
WritePixel mx+0,my+12 ,rgb2
WritePixel mx+2,my+12 ,rgb2
WritePixel mx+4,my+12 ,rgb2
WritePixel mx+7,my+12 ,rgb2
WritePixel mx+0,my+13 ,rgb2
WritePixel mx+1,my+13 ,rgb2
WritePixel mx+4,my+13 ,rgb2
WritePixel mx+7,my+13 ,rgb2
WritePixel mx+0,my+14 ,rgb2
WritePixel mx+5,my+14 ,rgb2
WritePixel mx+8,my+14 ,rgb2
WritePixel mx+5,my+15 ,rgb2
WritePixel mx+8,my+15 ,rgb2
WritePixel mx+6,my+16 ,rgb2
WritePixel mx+9,my+16 ,rgb2
WritePixel mx+6,my+17 ,rgb2
WritePixel mx+9,my+17 ,rgb2
WritePixel mx+7,my+18 ,rgb2
WritePixel mx+8,my+18 ,rgb2

End Function


Das nehme ich nun für jedes spiel :)
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

D2006

Administrator

BeitragDi, Apr 06, 2004 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab jetzt nichts zum testen, aber wenn man nen stinknormalen cursor
will hab ich auch einen code:

(sorry, ist ein bisschen lang Wink)

BlitzBasic: [AUSKLAPPEN]

ShowPointer()


Okay, ich weiß nicht obs mit b3d geht ...

MfG
 

Edlothiol

BeitragDi, Apr 06, 2004 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht nur im Fenstermodus. Toll.

Wahrscheinlich noch ein bisschen schneller:
BlitzBasic: [AUSKLAPPEN]
Graphics 640,480,32,1
SetBuffer BackBuffer()
ClsColor 255,0,255

While Not KeyHit(1)
Cls
DrawPointer 0
Flip
Wend
End

Function DrawPointer(r1=255,g1=255,b1=255,r2=0,g2=0,b2=0)

rgb=a*$1000000 + r1*$10000 + g1*$100 + b1
rgb=rgb And $FFFFFF
rgb2=a*$1000000 + r2*$10000 + g2*$100 + b2
rgb2=rgb2 And $FFFFFF

mx=MouseX()
my=MouseY()

LockBuffer

WritePixelFast mx+1,my+2,rgb
WritePixelFast mx+1,my+3 ,rgb
WritePixelFast mx+2,my+3 ,rgb
WritePixelFast mx+1,my+4 ,rgb
WritePixelFast mx+2,my+4 ,rgb
WritePixelFast mx+3,my+4 ,rgb
WritePixelFast mx+1,my+5 ,rgb
WritePixelFast mx+2,my+5 ,rgb
WritePixelFast mx+3,my+5 ,rgb
WritePixelFast mx+4,my+5 ,rgb
WritePixelFast mx+1,my+6 ,rgb
WritePixelFast mx+2,my+6 ,rgb
WritePixelFast mx+3,my+6 ,rgb
WritePixelFast mx+4,my+6 ,rgb
WritePixelFast mx+5,my+6 ,rgb
WritePixelFast mx+1,my+7 ,rgb
WritePixelFast mx+2,my+7 ,rgb
WritePixelFast mx+3,my+7 ,rgb
WritePixelFast mx+4,my+7 ,rgb
WritePixelFast mx+5,my+7 ,rgb
WritePixelFast mx+6,my+7 ,rgb
WritePixelFast mx+1,my+8 ,rgb
WritePixelFast mx+2,my+8 ,rgb
WritePixelFast mx+3,my+8 ,rgb
WritePixelFast mx+4,my+8 ,rgb
WritePixelFast mx+5,my+8 ,rgb
WritePixelFast mx+6,my+8 ,rgb
WritePixelFast mx+7,my+8 ,rgb
WritePixelFast mx+1,my+9 ,rgb
WritePixelFast mx+2,my+9 ,rgb
WritePixelFast mx+3,my+9 ,rgb
WritePixelFast mx+4,my+9 ,rgb
WritePixelFast mx+5,my+9 ,rgb
WritePixelFast mx+6,my+9 ,rgb
WritePixelFast mx+7,my+9 ,rgb
WritePixelFast mx+8,my+9 ,rgb
WritePixelFast mx+1,my+10 ,rgb
WritePixelFast mx+2,my+10 ,rgb
WritePixelFast mx+3,my+10 ,rgb
WritePixelFast mx+4,my+10 ,rgb
WritePixelFast mx+5,my+10 ,rgb
WritePixelFast mx+1,my+11 ,rgb
WritePixelFast mx+2,my+11 ,rgb
WritePixelFast mx+4,my+11 ,rgb
WritePixelFast mx+5,my+11 ,rgb
WritePixelFast mx+1,my+12 ,rgb
WritePixelFast mx+5,my+12 ,rgb
WritePixelFast mx+6,my+12 ,rgb
WritePixelFast mx+5,my+13 ,rgb
WritePixelFast mx+6,my+13 ,rgb
WritePixelFast mx+6,my+14 ,rgb
WritePixelFast mx+7,my+14 ,rgb
WritePixelFast mx+6,my+15 ,rgb
WritePixelFast mx+7,my+15 ,rgb
WritePixelFast mx+7,my+16 ,rgb
WritePixelFast mx+8,my+16 ,rgb
WritePixelFast mx+7,my+17 ,rgb
WritePixelFast mx+8,my+17 ,rgb
WritePixelFast mx+0,my+0 ,rgb2
WritePixelFast mx+0,my+1 ,rgb2
WritePixelFast mx+1,my+1 ,rgb2
WritePixelFast mx+0,my+2 ,rgb2
WritePixelFast mx+2,my+2 ,rgb2
WritePixelFast mx+0,my+3 ,rgb2
WritePixelFast mx+3,my+3 ,rgb2
WritePixelFast mx+0,my+4 ,rgb2
WritePixelFast mx+4,my+4 ,rgb2
WritePixelFast mx+0,my+5 ,rgb2
WritePixelFast mx+5,my+5 ,rgb2
WritePixelFast mx+0,my+6 ,rgb2
WritePixelFast mx+6,my+6 ,rgb2
WritePixelFast mx+0,my+7 ,rgb2
WritePixelFast mx+7,my+7 ,rgb2
WritePixelFast mx+0,my+8 ,rgb2
WritePixelFast mx+8,my+8 ,rgb2
WritePixelFast mx+0,my+9 ,rgb2
WritePixelFast mx+9,my+9 ,rgb2
WritePixelFast mx+0,my+10 ,rgb2
WritePixelFast mx+6,my+10 ,rgb2
WritePixelFast mx+7,my+10 ,rgb2
WritePixelFast mx+8,my+10 ,rgb2
WritePixelFast mx+9,my+10 ,rgb2
WritePixelFast mx+10,my+10 ,rgb2
WritePixelFast mx+0,my+11 ,rgb2
WritePixelFast mx+3,my+11 ,rgb2
WritePixelFast mx+6,my+11 ,rgb2
WritePixelFast mx+0,my+12 ,rgb2
WritePixelFast mx+2,my+12 ,rgb2
WritePixelFast mx+4,my+12 ,rgb2
WritePixelFast mx+7,my+12 ,rgb2
WritePixelFast mx+0,my+13 ,rgb2
WritePixelFast mx+1,my+13 ,rgb2
WritePixelFast mx+4,my+13 ,rgb2
WritePixelFast mx+7,my+13 ,rgb2
WritePixelFast mx+0,my+14 ,rgb2
WritePixelFast mx+5,my+14 ,rgb2
WritePixelFast mx+8,my+14 ,rgb2
WritePixelFast mx+5,my+15 ,rgb2
WritePixelFast mx+8,my+15 ,rgb2
WritePixelFast mx+6,my+16 ,rgb2
WritePixelFast mx+9,my+16 ,rgb2
WritePixelFast mx+6,my+17 ,rgb2
WritePixelFast mx+9,my+17 ,rgb2
WritePixelFast mx+7,my+18 ,rgb2
WritePixelFast mx+8,my+18 ,rgb2

UnlockBuffer

End Function
 

CodeMaster

BeitragDi, Apr 06, 2004 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum nicht mit DATA? Sieht meiner Meinung nach schöner aus und ist sehr viel weniger Code:BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,0,1
SetBuffer BackBuffer()
HidePointer()
ClsColor 255,0,255

Dim UDFColor(2)
UDFColor(1) = $000000
UDFColor(2) = $FFFFFF

While Not KeyDown(1)
Cls
DrawPointer(MouseX(),MouseY())
Flip
Wend
End

Function DrawPointer(x,y)
LockBuffer()
Restore MouseImage
Read Width,Height
For y1 = 0 To Height-1
For x1 = 0 To Width-1
Read Col1
If Not Col1 = 0 Then
If (x+x1)>=0 And (y+y1)>=0 And (x+x1)<GraphicsWidth() And (y+y1)<GraphicsHeight() Then
Col = UDFColor(Col1)
WritePixelFast x+x1,y+y1,Col
EndIf
EndIf
Next
Next
UnlockBuffer()
End Function

End

.MouseImage
Data 12,21
Data 1,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,0,0,0,0,0,0,0,0,0,0
Data 1,2,1,0,0,0,0,0,0,0,0,0
Data 1,2,2,1,0,0,0,0,0,0,0,0
Data 1,2,2,2,1,0,0,0,0,0,0,0
Data 1,2,2,2,2,1,0,0,0,0,0,0
Data 1,2,2,2,2,2,1,0,0,0,0,0
Data 1,2,2,2,2,2,2,1,0,0,0,0
Data 1,2,2,2,2,2,2,2,1,0,0,0
Data 1,2,2,2,2,2,2,2,2,1,0,0
Data 1,2,2,2,2,2,2,2,2,2,1,0
Data 1,2,2,2,2,2,2,1,1,1,1,1
Data 1,2,2,2,1,2,2,1,0,0,0,0
Data 1,2,2,1,1,2,2,1,0,0,0,0
Data 1,2,1,0,0,1,2,2,1,0,0,0
Data 1,1,0,0,0,1,2,2,1,0,0,0
Data 1,0,0,0,0,0,1,2,2,1,0,0
Data 0,0,0,0,0,0,1,2,2,1,0,0
Data 0,0,0,0,0,0,0,1,2,2,1,0
Data 0,0,0,0,0,0,0,1,2,2,1,0
Data 0,0,0,0,0,0,0,0,1,1,0,0

[Edit] Oups, hatte Vergessen, den Vollbildschirm-Modus einzuschalten!
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102
 

Kekskiller

BeitragMi, Apr 07, 2004 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ehrlich , da kann man doch glatt ShowPointer oder ein simuliertes Fullscreencanvas nehmen.
 

Ensign Joe

BeitragMi, Apr 07, 2004 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
klopf, klopf!

ShowPointer() funzt NUR IM FENSTERMODUS!
(ausgenommen Blitz Plus)
  • Zuletzt bearbeitet von Ensign Joe am Di, Aug 10, 2004 20:26, insgesamt einmal bearbeitet

Xenon

BeitragDo, Apr 08, 2004 0:54
Antworten mit Zitat
Benutzer-Profile anzeigen
man beachte

B3B <> B+

in B+ geht es in B3D wiederum nicht...
 

CodeMaster

BeitragDo, Apr 08, 2004 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
So, hab meinen Code noch etwas verändert. Die Leute, die Windows 2000 oder XP benutzen, sollen jetzt auch weiterhin in den Genuss von Mauszeigerschatten kommen. Die anderen natürlich auch.
Außerdem hab ich ne kleine Farbanimation reingepackt, um zu zeigen, wie einfach es ist, die Farben zu ändern.
Ist zwar nicht einwandfrei sauber gecodet, reicht aber zu Demonstrationszwecken:BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,0,1
SetBuffer BackBuffer()
HidePointer()
ClsColor 255,0,255

Global Anim

Dim UDFColor(2)
UDFColor(1) = $000000
UDFColor(2) = $FFFFFF

While Not KeyDown(1)
Cls
DrawBoxes
AnimateCursor
DrawPointer(MouseX(),MouseY())
Flip
Wend
End

Function AnimateCursor(r1=255,g1=255,b1=255,r2=0,g2=0,b2=0)
Anim = (Anim + 2) Mod 360
Anim2# = (Sin(Anim) + 1) / 2
r = r1 * Anim2 + r2 * (1 - Anim2)
g = g1 * Anim2 + g2 * (1 - Anim2)
b = b1 * Anim2 + b2 * (1 - Anim2)
UDFColor(1) = (255-r) * $10000 + (255-g) * $100 + (255-b) ; <-- kann auskommentiert werden!
UDFColor(2) = r * $10000 + g * $100 + b
End Function

Function DrawBoxes()
Color 255,0,0 Rect 50,50,50,100
Color 0,255,0 Rect 100,50,50,100
Color 0,0,255 Rect 150,50,50,100
Color 255,255,0 Rect 200,50,50,100
Color 255,0,255 Rect 250,50,50,100
Color 0,255,255 Rect 300,50,50,100
Color 0,0,0 Rect 350,50,50,100
Color 255,255,255 Rect 400,50,50,100
End Function

Function DrawPointer(x,y)
LockBuffer()
Restore MouseImage
Read Width,Height
For y1 = 0 To Height-1
LCol = 0
For x1 = 0 To Width-1
Read Col1
If (x+x1)>=0 And (y+y1)>=0 And (x+x1)<GraphicsWidth() And (y+y1)<GraphicsHeight() Then
If Col1 Then
LCol = 6
Col = UDFColor(Col1)
WritePixelFast x+x1,y+y1,Col
Else
If LCol > 0 Then LCol = LCol - 1
EndIf
If (LCol > 0) And (Col1 = 0) Then
LCol2 = ReadPixelFast(x+x1,y+y1)
R = (LCol2 And $FF0000) / $10000 * ((6-LCol) * 8 + 52) / 100 + 10
G = (LCol2 And $FF00) / $100 * ((6-LCol) * 8 + 52) / 100 + 10
B = (LCol2 And $FF) * ((6-LCol) * 8 + 52) / 100 + 10
WritePixelFast x+x1,y+y1,R * $10000 + G * $100 + B
EndIf
EndIf
Next
Next
UnlockBuffer()
End Function

End

.MouseImage
Data 15,21
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,2,1,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,2,2,1,0,0,0,0,0,0,0,0,0,0,0
Data 1,2,2,2,1,0,0,0,0,0,0,0,0,0,0
Data 1,2,2,2,2,1,0,0,0,0,0,0,0,0,0
Data 1,2,2,2,2,2,1,0,0,0,0,0,0,0,0
Data 1,2,2,2,2,2,2,1,0,0,0,0,0,0,0
Data 1,2,2,2,2,2,2,2,1,0,0,0,0,0,0
Data 1,2,2,2,2,2,2,2,2,1,0,0,0,0,0
Data 1,2,2,2,2,2,2,2,2,2,1,0,0,0,0
Data 1,2,2,2,2,2,2,1,1,1,1,1,0,0,0
Data 1,2,2,2,1,2,2,1,0,0,0,0,0,0,0
Data 1,2,2,1,1,2,2,1,0,0,0,0,0,0,0
Data 1,2,1,0,0,1,2,2,1,0,0,0,0,0,0
Data 1,1,0,0,0,1,2,2,1,0,0,0,0,0,0
Data 1,0,0,0,0,0,1,2,2,1,0,0,0,0,0
Data 0,0,0,0,0,0,1,2,2,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,1,2,2,1,0,0,0,0
Data 0,0,0,0,0,0,0,1,2,2,1,0,0,0,0
Data 0,0,0,0,0,0,0,0,1,1,0,0,0,0,0
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102
 

CodeMaster

BeitragDo, Apr 08, 2004 12:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Jaja, Doppelpost, ich weiß. Aber hier noch 'ne neue Version, diesmal mit 3 verschiedenen Mauszeigern und der Berücksichtigung von Hotspots, also den Positionen mit denen man eigentlich wirklich klickt:BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,0,1
SetBuffer BackBuffer()
HidePointer()
ClsColor 255,0,255

Const Cursor_Default = 1
Const Cursor_Hand = 2
Const Cursor_Wait = 3

Global Anim

Dim UDFColor(2)
UDFColor(1) = $000000
UDFColor(2) = $FFFFFF

While Not KeyDown(1)
Cls
DrawBoxes
AnimateCursor
If MouseX() < 800 Then Cursor = Cursor_Wait
If MouseX() < 540 Then Cursor = Cursor_Hand
If MouseX() < 270 Then Cursor = Cursor_Default
DrawPointer(MouseX(),MouseY(),Cursor)
Flip
Wend
End

Function AnimateCursor(r1=255,g1=255,b1=255,r2=0,g2=0,b2=0)
Anim = (Anim + 2) Mod 360
Anim2# = (Sin(Anim) + 1) / 2
r = r1 * Anim2 + r2 * (1 - Anim2)
g = g1 * Anim2 + g2 * (1 - Anim2)
b = b1 * Anim2 + b2 * (1 - Anim2)
UDFColor(1) = (255-r) * $10000 + (255-g) * $100 + (255-b) ; <-- kann auskommentiert werden!
UDFColor(2) = r * $10000 + g * $100 + b
End Function

Function DrawBoxes()
Color 255,255,255
Line 270,0,270,600
Line 540,0,540,600
Color 255,0,0 Rect 50,50,50,100
Color 0,255,0 Rect 100,50,50,100
Color 0,0,255 Rect 150,50,50,100
Color 255,255,0 Rect 200,50,50,100
Color 0,255,255 Rect 250,50,50,100
Color 0,0,0 Rect 300,50,50,100
Color 255,255,255 Rect 350,50,50,100
End Function

Function DrawPointer(x,y,Cursor=Cursor_Default)
LockBuffer()
Select Cursor
Case Cursor_Hand
Restore Cursor_Hand
Case Cursor_Wait
Restore Cursor_Wait
Default
Restore Cursor_Default
End Select
Read Width,Height
Read HotSpotX, HotSpotY
For y1 = -HotSpotY To -HotSpotY + Height-1
LCol = 0
For x1 = -HotSpotX To -HotSpotX + Width-1
Read Col1
If (x+x1)>=0 And (y+y1)>=0 And (x+x1)<GraphicsWidth() And (y+y1)<GraphicsHeight() Then
If Col1 Then
LCol = 6
Col = UDFColor(Col1)
WritePixelFast x+x1,y+y1,Col
Else
If LCol > 0 Then LCol = LCol - 1
EndIf
If (LCol > 0) And (Col1 = 0) Then
LCol2 = ReadPixelFast(x+x1,y+y1)
R = (LCol2 And $FF0000) / $10000 * ((6-LCol) * 8 + 52) / 100 + 10
G = (LCol2 And $FF00) / $100 * ((6-LCol) * 8 + 52) / 100 + 10
B = (LCol2 And $FF) * ((6-LCol) * 8 + 52) / 100 + 10
WritePixelFast x+x1,y+y1,R * $10000 + G * $100 + B
EndIf
EndIf
Next
Next
UnlockBuffer()
End Function

End

.Cursor_Default
Data 15,21,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,2,1,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,2,2,1,0,0,0,0,0,0,0,0,0,0,0
Data 1,2,2,2,1,0,0,0,0,0,0,0,0,0,0
Data 1,2,2,2,2,1,0,0,0,0,0,0,0,0,0
Data 1,2,2,2,2,2,1,0,0,0,0,0,0,0,0
Data 1,2,2,2,2,2,2,1,0,0,0,0,0,0,0
Data 1,2,2,2,2,2,2,2,1,0,0,0,0,0,0
Data 1,2,2,2,2,2,2,2,2,1,0,0,0,0,0
Data 1,2,2,2,2,2,2,2,2,2,1,0,0,0,0
Data 1,2,2,2,2,2,2,1,1,1,1,1,0,0,0
Data 1,2,2,2,1,2,2,1,0,0,0,0,0,0,0
Data 1,2,2,1,1,2,2,1,0,0,0,0,0,0,0
Data 1,2,1,0,0,1,2,2,1,0,0,0,0,0,0
Data 1,1,0,0,0,1,2,2,1,0,0,0,0,0,0
Data 1,0,0,0,0,0,1,2,2,1,0,0,0,0,0
Data 0,0,0,0,0,0,1,2,2,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,1,2,2,1,0,0,0,0
Data 0,0,0,0,0,0,0,1,2,2,1,0,0,0,0
Data 0,0,0,0,0,0,0,0,1,1,0,0,0,0,0
.Cursor_Hand
Data 21,22,6,1
Data 0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,2,2,1,1,1,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,2,2,1,2,2,1,1,0,0,0,0,0,0
Data 0,0,0,0,1,2,2,1,2,2,1,2,2,1,2,1,0,0,0,0,0
Data 1,1,1,0,1,2,2,1,2,2,1,2,2,1,2,2,1,0,0,0,0
Data 1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2,1,0,0,0,0
Data 1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0
Data 0,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0
Data 0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0
Data 0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0
Data 0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0
Data 0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0
Data 0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0
Data 0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0
Data 0,0,0,0,0,1,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0
Data 0,0,0,0,0,1,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0
Data 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0
.Cursor_Wait
Data 17,21,6,10
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0
Data 1,1,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0
Data 0,1,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0
Data 0,1,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0
Data 0,1,2,2,1,2,1,2,1,2,2,1,0,0,0,0,0
Data 0,1,2,2,2,1,2,1,2,2,2,1,0,0,0,0,0
Data 0,1,1,2,2,2,1,2,2,2,1,1,0,0,0,0,0
Data 0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,0,0
Data 0,0,0,1,1,2,1,2,1,1,0,0,0,0,0,0,0
Data 0,0,0,0,1,1,2,1,1,0,0,0,0,0,0,0,0
Data 0,0,0,0,1,1,2,1,1,0,0,0,0,0,0,0,0
Data 0,0,0,1,1,2,2,2,1,1,0,0,0,0,0,0,0
Data 0,0,1,1,2,2,1,2,2,1,1,0,0,0,0,0,0
Data 0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,0,0
Data 0,1,2,2,2,2,1,2,2,2,2,1,0,0,0,0,0
Data 0,1,2,2,2,1,2,1,2,2,2,1,0,0,0,0,0
Data 0,1,2,2,1,2,1,2,1,2,2,1,0,0,0,0,0
Data 0,1,2,1,2,1,2,1,2,1,2,1,0,0,0,0,0
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0
Data 1,1,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group