Code archives/Miscellaneous/Icon Type
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
This type will help create and manage icons for your BlitzMAX MAX2D program. You can use this code to test it with. Just find three images at 32x32 for the Duck.png, Goose.png, and Chicken.png images. Strict Include "IconType.bmx" Graphics 800,600 Local Choice:Int = 0 'Calls TIcon.Create() for each icon TIcon.Create(LoadImage("Duck.png"),10,10,1) TIcon.Create(LoadImage("Goose.png"),52,10,2) TIcon.Create(LoadImage("Chicken.png"),94,10,3) While Not KeyDown(KEY_ESCAPE) Cls ' Draw the icons to the screen TIcon.Draw() If MouseHit(1) 'If the Mouse button is pressed, check to see if it is over an icon ' and store the ID in the Choice variable Choice:Int = TIcon.Collide(MouseX(),MouseY()) End If 'Print which icon was just clicked Select Choice Case 1 DrawText "Duck",10,52 Case 2 DrawText "Goose",10,52 Case 3 DrawText "Chicken",10,52 End Select Flip Wend | |||||
'IconType.bmx Type TIcon Global IconList:TList = Null Field ID:Int Field X:Int Field Y:Int Field Width:Int Field Height:Int Field Image:TImage 'Call this function for each icon. Passing it an image, x and y location, and a unique ID Function create(Image:TImage,X:Int,Y:Int,ID:Int) Local Icon:TIcon = New TIcon If IconList = Null Then IconList = CreateList() Icon.X = X Icon.Y = Y Icon.Image = Image Icon.Width = ImageWidth(Image) Icon.Height = ImageHeight(Image) Icon.ID = ID ListAddLast(IconList,Icon) End Function 'Call this function in the main loop to draw the Icons to the screen Function Draw() If IconList = Null Then Return For Local Icon:TIcon = EachIn IconList DrawImage Icon.Image,Icon.X,Icon.Y Next End Function 'This function will return the ID of the icon located at X and Y. ' Usually you would pass the mouse pointer's X and Y location to the function ' Returns 0 if no icon is selected. Function Collide:Int(X:Int,Y:Int) If IconList = Null Then Return 0 For Local Icon:TIcon = EachIn IconList If X >= Icon.X And X < Icon.X+Icon.Width And Y >= Icon.Y And Y < Icon.Y+Icon.Width Return Icon.ID End If Next Return 0 End Function End Type |
Comments
None.
Code Archives Forum